Batch Downloads: Download Entire Spotify Shows with a Single API Call
Downloading hundreds of podcast episodes one by one is tedious and error-prone. Tornado's batch download feature lets you download an entire Spotify show or YouTube playlist with a single API call.
How Batch Downloads Work
- Submit the show/playlist URL — Send a Spotify show or YouTube playlist URL to the
/jobsendpoint. - Episode extraction — Tornado extracts all episode URLs (this can take 30-120 seconds for large shows).
- Batch creation — A batch job is created with individual jobs for each episode.
- Parallel processing — Episodes download in parallel for maximum speed (10-50 episodes/minute).
- Progress tracking — Monitor overall progress via the batch status endpoint.
Create a Batch Job
Spotify Podcast Show
curl -X POST "https://api.tornadoapi.io/jobs" \
-H "x-api-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://open.spotify.com/show/7iQXmUT7XGuZSzAMjoNWlX",
"folder": "huberman-lab-2024",
"webhook_url": "https://myapp.com/batch-complete"
}'YouTube Playlist
curl -X POST "https://api.tornadoapi.io/jobs" \
-H "x-api-key: sk_your_api_key" \
-H "Content-Type: application/json" \
-d '{
"url": "https://youtube.com/playlist?list=PLrAXtmErZgOe...",
"folder": "my-playlist-2024"
}'Batch Response
When you submit a show URL, you receive a batch response:
{
"batch_id": "550e8400-e29b-41d4-a716-446655440001",
"total_episodes": 142,
"episode_jobs": ["job-uuid-1", "job-uuid-2", "..."]
}Check Batch Progress
curl -X GET "https://api.tornadoapi.io/batch/550e8400-..." \
-H "x-api-key: sk_your_api_key"Response:
{
"id": "550e8400-e29b-41d4-a716-446655440001",
"status": "processing",
"total_episodes": 142,
"completed_episodes": 45,
"failed_episodes": 2
}Folder Structure
All episodes are saved with the folder prefix you specify:
huberman-lab-2024/
├── Episode 1 - Introduction.mp4
├── Episode 2 - Sleep Optimization.mp4
├── Episode 3 - Focus & Productivity.mp4
└── ...Batch Webhook
When all episodes finish (completed + failed = total), you receive a webhook:
{
"type": "batch_completed",
"batch_id": "550e8400-...",
"completed": 140,
"failed": 2,
"total": 142
}Performance
| Metric | Value |
|---|---|
| Max episodes per batch | Unlimited |
| Concurrent downloads | ~100 per batch |
| Typical speed | 10-50 episodes/minute |
| Average job time | Under 2 minutes |
| Failure rate | Below 0.1% |
Use Case: AI Short-Form Video Pipeline
One of the most common batch download use cases is AI-powered short-form video creation. These platforms analyze long YouTube videos to automatically identify the most engaging moments and generate viral clips. Here's how a typical pipeline works:
- Batch ingest — Download an entire YouTube channel or playlist with a single Tornado API call
- AI analysis — Your models analyze the downloaded videos for hooks, key moments, and viral potential
- Clip generation — Automatically extract the best segments using Tornado's clipping feature
- Distribution — Publish short clips across social platforms
With batch downloads, you can ingest an entire channel (hundreds of videos) in minutes instead of hours, keeping your AI pipeline fed with fresh content.
Why Not yt-dlp for Batch Downloads?
yt-dlp supports playlist downloads, but at scale you'll hit serious problems:
- Rate limiting — After 50-100 videos, YouTube throttles or blocks your IP entirely
- No cloud delivery — Files download to local disk, requiring a separate upload pipeline
- No progress tracking — No webhook notifications, no batch status endpoint
- Single-threaded — One video at a time without complex scripting
Tornado processes up to 100 videos concurrently per batch, with automatic anti-bot bypassing and direct cloud delivery. Zero 403 errors, even at TB/hour throughput.
Monitoring Batches in the Dashboard
Track all your batch downloads in real-time at dash.tornadoapi.io. The dashboard shows batch progress, individual job statuses, and overall usage statistics.
Next Steps
- Set up webhooks for async batch notifications
- Configure cloud storage for direct delivery
- Build AI training datasets with batch downloads