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.
One credit per call.
Every successful API request uses 1 credit — whether it's a 60-second Short or a 4-hour livestream replay. View the full plan breakdown and annual pricing on the pricing page.
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 [email protected] — 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 [email protected].
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.