timedtext endpoint from a chat. They have no live web access to your specific video, no way to enumerate the available caption tracks, and no way to download the timed JSON. This tool does the fetch + parse + format conversion in one click and gives you the raw transcript in machine-readable formats (SRT, VTT, JSON) you can actually use.
1. Paste YouTube URL
Bulk Mode — Multiple URLs
About this tool
This free YouTube Transcript Extractor fetches the official caption track that YouTube already stores for every video on its platform and returns it to you in the format you need. No signup, no API key, no daily limit, no watermark. The Cloudflare Function on this site is a stateless CORS proxy: it forwards your request to YouTube, parses the public ytInitialPlayerResponse JSON that every watch page exposes, then returns the transcript to your browser. Nothing is stored on any server.
What you can do with it
SEO content writing
Turn a YouTube video into a blog post, article, or social caption without re-watching the video.
Search inside long videos
Find a quote, fact, or timestamp in a 2-hour podcast without scrubbing the timeline.
Translation workflows
Extract the original captions, run them through your favorite translator, and re-burn them as SRT.
Research & citations
Quote a video accurately with timestamps you can verify against the source.
Accessibility edits
Download captions, fix typos, and re-upload corrected SRT/VTT to your own videos.
Study notes
Pull lecture or tutorial transcripts and import them into Notion, Obsidian, or Anki.
Supported URL formats
youtube.com/watch?v=VIDEO_ID— the canonical watch linkyoutu.be/VIDEO_ID— the short share linkyoutube.com/shorts/VIDEO_ID— YouTube Shortsyoutube.com/embed/VIDEO_ID— embed iframe URLyoutube.com/live/VIDEO_ID— live stream replayyoutube.com/v/VIDEO_ID— legacy v= URL- Bare 11-character video ID pasted directly
How the transcript is fetched
YouTube embeds a large JSON blob called ytInitialPlayerResponse in every watch page. Inside it, captions.playerCaptionsTracklistRenderer.captionTracks lists every available caption track — manual uploads, translations, and auto-generated captions — each with a baseUrl pointing to YouTube’s public timedtext endpoint. This tool requests that endpoint with fmt=json3 and converts the timed event array into the format you picked. Because the data is fetched server-side through Cloudflare’s edge, your browser never talks to YouTube directly, so the usual CORS block does not apply.
Frequently asked questions
Does this work on age-restricted or private videos?
No. YouTube does not expose caption tracks for videos you cannot watch without signing in. If the video is public and has captions (manual or auto-generated), this tool will find them. If it returns no tracks, the video is likely age-restricted, private, members-only, or has captions disabled by the creator.
Can I extract auto-generated captions in another language?
Yes, as long as YouTube generated them. Many creators only enable English auto-captions. The language list reflects what YouTube exposes on the public watch page; if a track does not appear there, YouTube does not store it.
Will this break YouTube’s Terms of Service?
The tool only fetches the public caption data that YouTube already serves to any browser visiting the watch page. It does not bypass paywalls, log in as you, or scrape private content. Re-using the transcripts you extract is your responsibility — respect the original creator’s copyright and fair-use guidelines.
What about very long videos (lectures, podcasts)?
There is no fixed cap. The Cloudflare Function streams the response back and the browser renders the full transcript. A 4-hour podcast at ~180 words per minute is roughly 43,000 words or ~250 KB of plain text, which loads in under a second.
Why is the YouTube oEmbed thumbnail sometimes missing?
The thumbnail is fetched from YouTube’s free oEmbed endpoint, which occasionally rate-limits high-volume callers. If the thumbnail does not appear, the rest of the transcript extraction still works.
Can I save transcripts to read later?
Yes. Every output format (plain text, timestamped text, SRT, VTT, JSON) is downloadable with one click. For bulk mode, the “Download All” button writes every transcript into a single text bundle with separators.
Comments & Ratings