Repackage
API

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/bulk

Requires the Pro plan. Free orgs receive 403 feature_not_in_plan.

Headers

NameRequiredDescription
AuthorizationyesBearer rpk_...
Content-Typeyesapplication/json

Body

{
  "videos": [
    "dQw4w9WgXcQ",
    "https://www.youtube.com/watch?v=oHg5SJYRHA0"
  ]
}
FieldTypeRequiredDescription
videosstring[]yesMix 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, or videos is empty.
  • 400 too_many_videosvideos.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.

On this page