Product Update: Async Download API (v2) for Long Videos
TL;DR: The synchronous download endpoints are great for short clips but time out on long videos. So we added a v2 async download API: you submit a job, get a jobId back immediately, then poll until it's ready and download from the URL. It works for YouTube, TikTok, Instagram, and Facebook, downloads at up to 720p and 2 GB per file, and is billed 1 credit per minute of video. Read the docs.
Why v2
The existing download endpoints (/youtube/download, /tiktok/download, /instagram/download) return the download URL in a single request. That's perfect for short videos. But a long podcast, stream, or lecture can take too long to fetch inside one HTTP request, so the call times out before it finishes.
v2 fixes that by making the download a job you poll, instead of one long-running request. The heavy lifting happens in the background, and your request returns in milliseconds.
How it works
Three steps:
- Submit a download job. You get a
jobIdback right away. - Poll the job until its status is
ready. - Download from the temporary URL in the ready response.
1. Start a job
curl -X POST "https://api.socialkit.dev/v2/youtube/download?access_key=YOUR_KEY&url=https://youtube.com/watch?v=VIDEO_ID&quality=720p"
{
"success": true,
"data": {
"jobId": "6a5b42b474b3bc25582a1051",
"status": "queued",
"statusUrl": "/v2/downloads/6a5b42b474b3bc25582a1051"
}
}
2. Poll until ready
curl "https://api.socialkit.dev/v2/downloads/6a5b42b474b3bc25582a1051?access_key=YOUR_KEY"
While it's working you'll see status: "processing". When it's done:
{
"success": true,
"data": {
"status": "ready",
"downloadUrl": "https://socialkit-downloads.s3.amazonaws.com/...",
"expiresIn": 3600,
"durationSeconds": 1631,
"fileSizeMB": "117.05 MB",
"creditsCost": 28,
"title": "Video Title",
"thumbnail": "https://i.ytimg.com/vi/.../maxresdefault.jpg"
}
}
The downloadUrl is valid for an hour. Fetch it and you're done.
The same shape you already know
The request looks just like the v1 download call, only the path changes to /v2/{platform}/download. So platform is one of youtube, tiktok, instagram, facebook, and you can pass the same url, quality, format, and country params.
Limits and pricing
- Quality: up to 720p (higher requests are clamped to 720p).
- File size: up to 2 GB per download.
- Formats:
mp4andm4aeverywhere;mp3,webm,avi,ogg,wavwhere transcoding is available. - Credits: 1 per minute of video (minimum 1), charged once when the job completes. Failed jobs are not charged.
Try it
- Docs: Async Download API (v2)
- Playground: open any download endpoint in the dashboard playground and flip the Async v2 toggle to submit and poll a job live.
- Free tools: the YouTube video downloader now has a "Long video (v2)" option.
If you're pulling long-form content, switch those calls to v2 and stop worrying about timeouts.