Skip to main content
This guide builds a small sync job. Each run downloads only the videos accepted since the previous run. Run it from cron, Airflow or a step at the start of each training run.
1

Pick the dataset

Find the dataset ID for your mission with GET /datasets, or copy it from the dataset page in the platform (for example DS-301).
2

Page through new videos

created_after limits results to videos newer than your last sync. The API returns pages of up to 100. Follow next_cursor until has_more is false.
sync.py
download_url is signed and expires after an hour. Download each video while you process its page, rather than saving the URLs for later.
3

Or export a full snapshot

For a complete, versioned copy in a standard format, create an export and poll it until it’s ready:
Rather than polling, you can subscribe to the export.ready webhook.

Going real time

If you need videos within minutes of acceptance, subscribe to video.accepted instead of polling. Each event includes the full video object with a fresh download_url. Keep the scheduled sync as a backstop, since it also picks up anything your endpoint missed during downtime.