import logging
import os

import requests

API_URL = "https://api.cloud.pupil-labs.com/v2"
TOKEN = "YOUR TOKEN"
WORKSPACE_ID = "YOUR_WORKSPACE ID"
ENDPOINT = f"/workspaces/{WORKSPACE_ID}/recordings:raw-data-export"
REC_IDS = [
    "YOUR REC ID 1",
    "YOUR REC ID 2",
]
FILES2EXCLUDE = ["scene_video"]
DOWNLOAD_PATH = "yourpath/recs.zip"

download_path = os.path.normpath(DOWNLOAD_PATH)

params = {"ids": REC_IDS, "exclude": FILES2EXCLUDE}
headers = {"api-key": TOKEN, "workspace_id": WORKSPACE_ID}


def download_url(chunk_size=128) -> None:
    url = f"{API_URL}/{ENDPOINT}"
    r = requests.get(url, stream=True, params=params, headers=headers)
    logging.info(r)
    with open(download_path, "wb") as fd:
        for chunk in r.iter_content(chunk_size=chunk_size):
            fd.write(chunk)
    return r.status_code


if __name__ == "__main__":
    download_url()