# YouTube Transcript Extractor

> Pull captions from any YouTube URL &mdash; plain text, SRT, VTT, JSON &mdash; free, no signup, no limits

Free YouTube transcript extractor. Pull captions from any YouTube URL as plain text, SRT, VTT, or JSON. 30+ languages, bulk mode, oEmbed metadata. 100%.

URL: https://tools.scoreroute.com/tools/youtube-transcript-extractor/

Markdown: https://tools.scoreroute.com/tools/youtube-transcript-extractor/.md

## 1. Paste YouTube URL


## 2. Video Info


## 3. Choose Language


## 4. Transcript


## Bulk Mode &mdash; 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` &mdash; the canonical watch link
- `youtu.be/VIDEO_ID` &mdash; the short share link
- `youtube.com/shorts/VIDEO_ID` &mdash; YouTube Shorts
- `youtube.com/embed/VIDEO_ID` &mdash; embed iframe URL
- `youtube.com/live/VIDEO_ID` &mdash; live stream replay
- `youtube.com/v/VIDEO_ID` &mdash; 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 &mdash; manual uploads, translations, and auto-generated captions &mdash; each with a `baseUrl` pointing to YouTube&rsquo;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&rsquo;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&rsquo;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 &mdash; respect the original creator&rsquo;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&rsquo;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 &ldquo;Download All&rdquo; button writes every transcript into a single text bundle with separators.


### Related tools on DevTools Hub

## References

- [MDN — Canvas API](https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API)
- [MDN — HTMLMediaElement](https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement)

