Overview
Creates a new download job. For single videos, returns a job_id. For Spotify shows, automatically creates a batch and returns a batch_id with all episode job IDs.
Request
The video or show URL to download
Output container format: mp4, mkv, webm, mov. Default: mp4
Video codec: copy (no re-encode), h264, h265, vp9. Default: copy
Audio codec: copy (no re-encode), aac, opus, mp3. Default: copy with automatic fallback to aac if incompatible
Audio bitrate when transcoding: 64k, 128k, 192k, 256k, 320k. Default: 192k
Video quality CRF (0-51, lower = better quality). Only used when video_codec is not copy. Default: 23
Custom filename (without extension). Will be sanitized.
S3 folder prefix for organizing files. Cannot contain .. or start with /.
URL to receive completion notification via POST request.
Single Job Response
{
"job_id" : "550e8400-e29b-41d4-a716-446655440000"
}
Batch Response (Spotify Shows)
When the URL is a Spotify show, a batch is created automatically:
Number of episodes in the show
List of job IDs for each episode
{
"batch_id" : "550e8400-e29b-41d4-a716-446655440001" ,
"total_episodes" : 142 ,
"episode_jobs" : [
"job-uuid-1" ,
"job-uuid-2" ,
"job-uuid-3"
]
}
Examples
Single Video
With Webhook
Custom Encoding
Spotify Show (Batch)
curl -X POST "https://tornado.velys.software/jobs" \
-H "x-api-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"format": "mp4",
"filename": "my-video"
}'
Success Response
200 OK (Single Video)
200 OK (Spotify Show Batch)
{
"job_id" : "550e8400-e29b-41d4-a716-446655440000"
}
Error Responses
400 Bad Request
400 Bad Request
400 Bad Request
401 Unauthorized
504 Gateway Timeout
{
"error" : "Folder name too long (max 200 characters)"
}