Media Caption API v1

Bulk Public Transcripts

Create an async job for multiple public YouTube transcript lookups.

Endpoint

POST/v1/transcripts/bulk

Request

  • items: 1 to 100 transcript requests.
  • items[].externalId: optional customer ID returned in job results and webhooks.
  • webhookId: optional active webhook ID from the platform dashboard.

Example

curl https://api.mediacaption.io/v1/transcripts/bulk \
  -H "Authorization: Bearer mc_live_xxx" \
  -H "Content-Type: application/json" \
  -d '{
    "items": [
      {
        "externalId": "lesson-001",
        "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
      },
      { "externalId": "lesson-002", "videoId": "aqz-KE-bpKQ", "language": "en" }
    ],
    "webhookId": "wh_01jz7m8a3yk9pnx2g6bc8n4a8m"
  }'

Accepted response

{
  "jobId": "job_01jz7m91bxkpbqha0wt8whm76r",
  "type": "public_transcripts_bulk",
  "status": "queued",
  "itemCount": 2,
  "creditsFrozen": 2
}

Lifecycle

  • Jobs move through queued, processing, completed, completed_with_errors, failed, or canceled.
  • Each item moves through queued, processing, completed, or failed.
  • Poll GET /v1/jobs/{id}; use nextCursor when present.
  • Webhook delivery, when configured, sends exactly one final job-level event.
Next: Transcriptions