YouTube Transcript API

REST API for YouTube transcripts: extract captions, transcribe audio, translate to 100+ languages, batch up to 25 videos. Bearer-key auth, credit pricing.

The same engine that powers the free web tool is available as a plain REST API — no YouTube Data API key, no OAuth setup, no quota management on your side. One Authorization: Bearer header and you are in.

Why this instead of the official YouTube Data API?

The official YouTube Data API v3 caption endpoints are limited to videos you own. For everyone else, the options are brittle scraping of YouTube's innertube endpoints or a hosted transcript service. This API does the innertube work for you — reliably, at scale, and with a fallback to AI transcription when captions do not exist.

Quick start

  1. Create a free account and generate a Bearer key in the API dashboard (shown once — store it).
  2. Call the transcript endpoint:
    curl "https://<host>/api/transcript?url=https://youtu.be/dQw4w9WgXcQ&format=srt" \
      -H "Authorization: Bearer ***"
  3. Swap format for txt, vtt, csv, bi-srt, or json; add lang=fi to translate.

Endpoints at a glance

EndpointWhat it doesCost
GET /api/transcriptFetch one transcript (captions or ASR)1 credit
GET /api/asr/jobPoll an ASR job until donefree
POST /api/batchUp to 25 videos, or a playlist URL1 / success
GET /api/batch/statusBatch progressfree
GET /api/batch/downloadCombined or per-video filesfree
GET/POST/DELETE /api/keysManage your Bearer keysfree

Pricing

ActionCost
Caption fetch / ASR job start1 credit
Translation1 credit / 2,500 chars
ASR1 credit / 90 s of audio
Batch item (success only)1 credit

Plans: Basic €9/mo (1,200 credits), Pro €29/mo (4,000 credits), Business €79/mo (unlimited). Every failed fetch is free — you only pay for transcripts you actually get.

Typical integrations

  • LLM pipelines — transcript → summarize, quote, or RAG-index, without touching audio. Walkthrough on the transcripts for LLMs page (REST + MCP).
  • Content repurposing — video to blog post to social thread, automated nightly.
  • Research tooling — bulk-transcribe a corpus of talks for analysis.
  • Accessibility — generate SRT/VTT for videos that lack captions, in the languages you need.

Full reference — parameters, error codes, and the key manager — lives on the API docs page.

Frequently asked questions

Do I need a Google/YouTube Data API key?

No. The API reads caption tracks directly from YouTube's own data — there is no Google Data API quota, no project setup, and no OAuth dance on your side. You only need a key for our API.

How is pricing structured?

Credit-based: 1 credit per transcript fetch, 1 credit per 2,500 translated characters, 1 credit per 90 seconds of ASR audio, and 1 credit per successful batch item. Failed fetches are never charged. Plans start at €9/month.

What formats can the API return?

JSON (segments with start/duration/text) by default, or TXT, SRT, VTT, CSV, and bilingual SRT (original + translated two-line cues, format=bi-srt&lang=TARGET) rendered server-side. Same output whether you call from the web UI or the API.

Does it handle videos without captions?

Yes — pass source=asr (or auto) and the audio is transcribed with a Whisper-class model. ASR is async: the call returns a 202 with a job ID, you poll the job endpoint until it is done.

Can I bias the transcription toward specific terms (jargon, product names)?

Yes. For local-file ASR (POST /api/upload), send an X-Initial-Prompt header with your word list — comma- or newline-separated, up to ~50 terms. It's passed to Whisper as an initial prompt, which nudges the model to keep your exact spelling for technical terms.

Can I batch videos?

Yes — POST /api/batch with up to 25 URLs or a playlist link. Failed items are isolated and free; results persist for 24 hours.

Get a transcript right now

Paste any YouTube URL — 25 free credits, no sign-up, no card.

Extract a transcript →