Tutorial
January 18, 20255 min read

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

  1. Submit the show/playlist URL — Send a Spotify show or YouTube playlist URL to the /jobs endpoint.
  2. Episode extraction — Tornado extracts all episode URLs (this can take 30-120 seconds for large shows).
  3. Batch creation — A batch job is created with individual jobs for each episode.
  4. Parallel processing — Episodes download in parallel for maximum speed (10-50 episodes/minute).
  5. 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

MetricValue
Max episodes per batchUnlimited
Concurrent downloads~100 per batch
Typical speed10-50 episodes/minute
Average job timeUnder 2 minutes
Failure rateBelow 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:

  1. Batch ingest — Download an entire YouTube channel or playlist with a single Tornado API call
  2. AI analysis — Your models analyze the downloaded videos for hooks, key moments, and viral potential
  3. Clip generation — Automatically extract the best segments using Tornado's clipping feature
  4. 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

Ready to Get Started?

Request your API key and start downloading in minutes.

View Documentation