Create Job
Jobs
Create Job
Create a new download job
POST
Create Job
Overview
Creates a new download job. For single videos, returns ajob_id. For Spotify shows and YouTube playlists, automatically creates a batch and returns a batch_id with all episode/video job IDs.
Header Parameters
string
required
Your API key for authentication
Request
string
required
The video or show URL to download. If this URL contains a genuine YouTube playlist ID (
list=PL..., UU..., or OL...) or is a Spotify show, the request downloads the WHOLE playlist/show as a batch — see Playlist Auto-Detection.string
Output container format. Video:
mp4, mkv, webm, mov. Audio: m4a, mp3, ogg, opus. Default: mp4 (or m4a when audio_only is true)string
Video codec:
copy (no re-encode), h264, h265, vp9. Default: copystring
Audio codec:
copy (no re-encode), aac, opus, mp3. Default: copy with automatic fallback to aac if incompatiblestring
Audio bitrate when transcoding:
64k, 128k, 192k, 256k, 320k. Default: 192kinteger
Video quality CRF (0-51, lower = better quality). Only used when
video_codec is not copy. Default: 23string
Custom filename (without extension). Max 255 characters. Cannot contain
.., /, \, or null bytes.string
S3 folder prefix for organizing files. Max 200 characters. Cannot contain
.., start with / or \, or be empty/whitespace-only.string
URL to receive completion notification via POST request.
boolean
default:"false"
Extract audio track only. Outputs
m4a (native AAC, no re-encoding) by default. Set format to mp3, ogg, or opus for other audio formats. Supports audio_codec and audio_bitrate for transcoding control.boolean
default:"false"
Download subtitles if available. Returns subtitle URL in job response.
boolean
default:"false"
Download video thumbnail. Returns thumbnail URL in job response.
string
Quality preset that overrides
video_quality. Options: highest, high, medium, low, lowest.string
Maximum video resolution. Options:
best (default), 2160 (4K), 1440, 1080, 720, 480, 360. Works correctly for both horizontal and vertical (Shorts) videos by checking the shorter dimension.string
Start timestamp for video clipping. Format:
HH:MM:SS, MM:SS, or seconds (e.g., 00:01:30 or 90).string
End timestamp for video clipping. Format:
HH:MM:SS, MM:SS, or seconds (e.g., 00:05:00 or 300). Must be greater than clip_start.boolean
default:"false"
Enable live stream recording mode. Auto-detected for live URLs.
boolean
default:"false"
For live streams: record from the beginning (VOD mode) instead of the live point.
integer
Maximum recording duration in seconds. Recommended for live streams as a safety cap. Example:
7200 for 2 hours.boolean
default:"false"
Wait for scheduled/upcoming streams to start before downloading.
boolean
default:"false"
Enable progress webhooks during processing. Sends updates at each stage:
downloading, muxing, uploading.object
Inline storage credentials. Required for marketplace users (RapidAPI, Apify, Zyla). Optional for direct API users (overrides pre-configured storage). Supports 4 providers via the
provider field. See Inline Storage examples below.boolean
default:"false"
For Spotify show batches only. Creates the batch in paused mode: jobs are not enqueued for processing immediately. Use
PATCH /batch/{id}/jobs to rename episodes, then POST /batch/{id}/start to launch.Single Job Response
string
UUID of the created job
Response
Batch Response (Spotify Shows)
When the URL is a Spotify show, a batch is created automatically:string
UUID of the batch job
integer
Number of episodes in the show
boolean
Whether the batch was created in paused mode
array
List of episode details with job IDs, URLs, titles, descriptions, and release dates
array
List of job IDs for each episode (legacy field)
Response (default mode)
Response (paused mode)
Examples
Inline Storage
Thestorage field lets you provide cloud storage credentials directly in the request. This is required for marketplace users and optional for direct API users.
Inline storage credentials take priority over pre-configured storage, are validated before the job is accepted, and are never stored or logged.
Provider Fields
- S3 / S3-Compatible
- Azure Blob
- Google Cloud Storage
- Alibaba OSS
Success Response
Playlist Auto-Detection
POST /jobs inspects url and automatically creates a batch (one job per video) instead of a single job whenever it detects a genuine YouTube playlist. There is no separate “batch” endpoint or flag to opt into this — it happens automatically based on the URL you send.
Which URLs trigger it
Size limit
Even a genuine playlist (PL/UU/OL) is capped at 500 videos per request (configurable server-side via MAX_PLAYLIST_BATCH_SIZE). A playlist larger than that is rejected outright with a 413 Payload Too Large — it is never silently truncated. If you need to download a larger playlist, split it into smaller batches or contact support.
Response
string
UUID of the batch job
integer
Number of videos in the playlist
array
List of job IDs for each video
Genuine Playlist (downloads all videos)
Response
Radio/Mix URL (downloads only the one video)
Response
413 Payload Too Large (playlist exceeds the cap)
Error Responses
Notes
The
429 Too Many Requests and 503 Service Unavailable responses include a Retry-After header indicating how many seconds to wait before retrying.Codec auto-correction: Incompatible codec/format combinations are automatically corrected to ensure valid output:
webm+h264→ video codec changed tovp9webm+aac→ audio codec changed toopusogg/opus+aac→ audio codec changed toopusmp3+aac→ audio codec changed tomp3- Setting
audio_bitratewithoutaudio_codec→ audio codec defaults toaac
format values are silently replaced with mp4.