Developer API
Use the REST API to fetch individual YouTube transcripts synchronously, or submit bulk jobs for full channels and playlists.
Quickstart
Fetch a transcript in three steps:
- Create an account and go to API keys.
- Generate a key. It starts with
yvt_live_and is shown exactly once. Store it in your password manager or project secrets. - Send a request:
bash
curl -H "Authorization: Bearer yvt_live_..." \
"https://api.youtubevideotranscript.io/api/v1/transcript/dQw4w9WgXcQ"You'll get back a JSON object with the transcript array, detected language, and video metadata. See GET /transcript/:id for the full response shape.
Core flows
- Fetch single transcripts in 6 formats: JSON, plain text, SRT, CSV, DOCX, Markdown
- Submit bulk jobs from a channel or playlist URL, poll for progress, download the result as a ZIP
- Resolve any YouTube URL into a video list before submitting
- Check your remaining quota at any time
Endpoints
GET /api/v1/usagechecks quota state.GET /api/v1/resolvepreviews a channel or playlist.GET /api/v1/transcript/:videoIdfetches one transcript synchronously.POST /api/v1/jobsstarts the bulk-job lifecycle.
Conventions
- Base URL:
https://api.youtubevideotranscript.io/api/v1. - All endpoints require a Bearer token. See Authentication.
- Errors use a stable envelope:
{ error: { type, message, details? }, request_id }. See Errors. - Every response carries
X-Request-Id. Log it with failed requests so you can trace them later. - API and web UI share the same monthly quota. See Quotas & credits.
Next steps
- Authentication: Bearer token, key rotation, lost-key flow
- Quotas & credits: how transcripts are deducted and refunded
- Errors: every error type your client should handle
- Bulk jobs: full async pattern with idempotency and polling