POST /transcripts/bulk
Fetch many transcripts in one call. Pro plan required.
Send up to 100 video IDs or URLs in a single request. Each one is processed concurrently with a server-side cap so you don't have to manage parallelism in your client.
POST https://api.repackage.app/transcripts/bulkRequires the Pro plan. Free orgs receive 403 feature_not_in_plan.
Headers
| Name | Required | Description |
|---|---|---|
Authorization | yes | Bearer rpk_... |
Content-Type | yes | application/json |
Body
{
"videos": [
"dQw4w9WgXcQ",
"https://www.youtube.com/watch?v=oHg5SJYRHA0"
]
}| Field | Type | Required | Description |
|---|---|---|---|
videos | string[] | yes | Mix of 11-character IDs and YouTube URLs. Capped at the plan's maxBulkSize (Pro: 100). |
Example
curl https://api.repackage.app/transcripts/bulk \
-H "Authorization: Bearer rpk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"videos":["dQw4w9WgXcQ","oHg5SJYRHA0"]}'Response
200 OK
{
"results": [
{
"videoId": "dQw4w9WgXcQ",
"ok": true,
"metadata": { "...": "..." },
"transcript": { "en": [] },
"cached": true
},
{
"videoId": "oHg5SJYRHA0",
"ok": false,
"error": {
"code": "transcript_unavailable",
"message": "Video exists but has no transcript.",
"retryable": false
}
}
],
"summary": {
"total": 2,
"succeeded": 1,
"failed": 1,
"cached": 1,
"fetched": 0
}
}A bulk call always returns 200, even when some items fail. Inspect each result's ok field. The whole call only fails (400 / 403 / 429) if every item is rejected before fetching (e.g. invalid IDs) or you've exceeded a hard limit.
Quota
Each successful, non-cached transcript counts against your org's monthly quota. Cached hits are free.
If a bulk call would push you past your limit, the call is rejected up front with 402 plan_limit_exceeded — the API doesn't process a partial bulk.
Errors
400 invalid_request— Body shape is wrong, orvideosis empty.400 too_many_videos—videos.length > plan.maxBulkSize.402 plan_limit_exceeded— Insufficient quota to fulfill the whole batch.403 feature_not_in_plan— Free plan calling bulk.429 rate_limited— Too many bulk calls in the window.