📺

YouTube Batch Transcript Extractor

Submit multiple YouTube URLs for batch transcript extraction

POST 1 credit /v1/youtube/transcript/batch
curl -X POST "https://youtube.toolkitapi.io/v1/youtube/transcript/batch" \
  -H "Content-Type: application/json" \
  -d '{"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://www.youtube.com/watch?v=jNQXAC9IVRw"], "lang": "en"}'
import httpx

resp = httpx.post(
    "https://youtube.toolkitapi.io/v1/youtube/transcript/batch",
    json={"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://www.youtube.com/watch?v=jNQXAC9IVRw"], "lang": "en"},
)
print(resp.json())
const resp = await fetch("https://youtube.toolkitapi.io/v1/youtube/transcript/batch", {
  method: "POST",
  headers: {
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"urls": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://www.youtube.com/watch?v=jNQXAC9IVRw"], "lang": "en"}),
});
const data = await resp.json();
console.log(data);
# See curl example
Response 200 OK
{
  "jobId": "f47ac10b-58cc-4372-a567-0e02b2c3d479"
}

Try It Live

Live Demo

Description

Submit multiple YouTube URLs for batch transcript extraction

How to Use

1

1. Send a POST request with a JSON body containing a `urls` array (1–20 YouTube video URLs or IDs) and an optional `lang` preference.

2

2. The API returns a `jobId` with a 202 status. Processing runs asynchronously.

3

3. Poll `GET /v1/youtube/transcript/batch/{jobId}` to check progress. Status transitions from `queued` → `active` → `completed`.

4

4. Once completed, iterate over the `results` array. Each item includes the video ID, status (`succeeded` or `failed`), and either transcript content or an error message.

About This Tool

The Batch Transcript Extractor lets you submit up to 20 YouTube video URLs in a single request for asynchronous transcript extraction. The API returns a job ID immediately, and you poll the status endpoint to retrieve results as they complete.

Use this when you need transcripts from multiple videos and want to avoid making individual API calls for each one. It's ideal for batch processing workflows like indexing a playlist, building a training dataset, or bulk-extracting captions for a content library.

Each video in the batch is processed independently — failures on individual videos don't affect the others. The status response includes per-video success/failure details and aggregate statistics.

Why Use This Tool

Frequently Asked Questions

What's the maximum batch size?
You can submit up to 20 video URLs per batch request. For larger batches, split them into multiple requests.
What happens if some videos fail?
Each video is processed independently. Failed videos (no captions, invalid URLs) are marked with `status: "failed"` and an error message. Successfully processed videos are unaffected.
How long does a batch job take?
Processing time scales roughly linearly with the number of videos. A 20-video batch typically completes in 15–60 seconds depending on caption availability and size.
How long are batch results retained?
Job results are stored temporarily and expire after a short retention period. Poll and save your results promptly after completion.

Start using YouTube Batch Transcript Extractor now

Get your free API key and make your first request in under a minute.