Overview
Create up to 100 download jobs in a single API request. All jobs share the same encoding options but can have individual filenames. Returns a batch ID for tracking all jobs together.
Your API key for authentication
Request
Array of job items (max 100)
Job Item
Custom filename for this specific job
Shared Options
S3 folder prefix for all jobs
Output format for all jobs: mp4, mkv, webm, mov
Video codec for all jobs: copy, h264, h265, vp9
Audio codec for all jobs: copy, aac, opus, mp3
Audio bitrate for all jobs: 64k, 128k, 192k, 256k, 320k
Video quality CRF for all jobs (0-51)
Extract audio only for all jobs
Download subtitles for all jobs
Download thumbnails for all jobs
Quality preset for all jobs: highest, high, medium, low, lowest
Response
Batch ID for tracking all jobs
List of individual job IDs
Examples
Bulk Create
Node.js
Python
Audio Extraction
curl -X POST "https://tornado.velys.software/jobs/bulk" \
-H "x-api-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"jobs": [
{"url": "https://youtube.com/watch?v=video1", "filename": "my-first-video"},
{"url": "https://youtube.com/watch?v=video2", "filename": "my-second-video"},
{"url": "https://youtube.com/watch?v=video3"}
],
"folder": "my-downloads",
"format": "mp4"
}'
Success Response
{
"batch_id" : "550e8400-e29b-41d4-a716-446655440001" ,
"total_jobs" : 3 ,
"job_ids" : [
"660f9511-f30c-52e5-b827-557766551111" ,
"660f9511-f30c-52e5-b827-557766551112" ,
"660f9511-f30c-52e5-b827-557766551113"
]
}
Error Responses
400 Bad Request
400 Bad Request
400 Bad Request
401 Unauthorized
{
"error" : "No jobs provided"
}
Notes
Maximum 100 jobs per bulk request
All jobs share the same encoding options and folder
Each job can have a unique filename
Webhooks are not supported in bulk requests (use individual job creation for webhooks)
Use /jobs/{id} to poll individual job status
The batch_id is for reference only - jobs are processed independently