YouTube Transcript API —
one REST call.
POST any YouTube URL — watch?v=, youtu.be, /shorts/, or m.youtube.com — and get back a JSON transcript as an array of timed segments. Built for production pipelines.
/api/youtube/transcript What the API handles.
Every YouTube URL format below resolves to the same JSON response shape — no branching logic needed in your client code.
youtube.com/watch?v=… — from 30-second clips to multi-hour lectures.youtube.com/shorts/…. Ideal for viral hook analysis and cross-posting to TikTok or Reels.youtu.be/… share URLs and m.youtube.com mobile links work out of the box — no need to expand before calling the API.Full docs at docs.transcriptmagic.com.
Per-platform response schemas, language-specific code samples (cURL, Python, JavaScript, Go, PHP), error catalog, and rate-limit headers all live on the docs subdomain. Built for both humans and agents.
Pay for what you use, from 2¢ a transcript.
1 credit = 1 video transcript. Every successful API request uses 1 credit — whether it's a 60-second Short or a 4-hour livestream replay.
- 01 Try it free
3 transcripts a month, no card.
- 02 Pick any plan
From $9 a month. The API, MCP and n8n work on all of them.
- 03 Add credits whenever you need them, on any paid plan
- 250 credits $10 4¢ each
- 1,000 credits $35 3.5¢ each
- 5,000 credits $99 2¢ each
No plan change, and they never expire.
Steady volume? Pro includes 2,500 a month for $49, or 1.6¢ each billed yearly.
Free to start: sign in with Google, no card needed.
What devs build with it.
Real pipelines shipping real revenue. If you're doing something new, email us — we love hearing what teams are building.
Questions devs ask.
The short answers. For anything else, email hello@transcriptmagic.com — same-day reply.
Does it work on YouTube Shorts?
Yes. Any public YouTube URL works — Shorts (youtube.com/shorts/…), long-form videos, live replays, mobile links, and youtu.be short links are all accepted. Just POST the full URL to /api/youtube/transcript.
What about age-restricted or unlisted videos?
Unlisted videos work as long as you provide the full URL. Age-restricted videos that require sign-in are not supported — the API can only fetch publicly viewable captions.
Which languages does the API support?
The API returns whichever caption track YouTube exposes — that covers 100+ languages for auto-generated captions and every language creators manually publish. The language field tells you which track was returned, and captionTracks lists every available track. Translation is a separate step you run after fetching.
Do I get timestamps I can use for subtitles?
Yes. Each item in the transcript array includes startMs, endMs, and startTimeText — build SRT/VTT, chaptered summaries, or jump-to-moment UI directly from the response. YouTube is the only platform on this API that returns per-line timing.
How accurate is the transcript?
When the creator has uploaded manual captions, accuracy is essentially 100%. When only YouTube auto-captions exist, accuracy matches YouTube's own ASR — very good for clear speech, weaker on heavy music.
What are the rate limits?
120 requests per minute per API key. X-RateLimit-Remaining, X-RateLimit-Reset, and Retry-After headers are returned on 429 responses (not on every response — track your own request rate client-side). Need more throughput? Email hello@transcriptmagic.com.
Other platforms & references.
Start building — under five minutes.
Free credits included. No credit card required. Same auth on every platform endpoint — the response shape varies.