TRANSCRIPTION · YOUTUBE · 2026
YouTube transcript: get, copy, and download any video's text
A YouTube transcript is the caption text of a video, displayed as readable text. Getting one takes seconds when the video has captions — but the copy you get is only as good as the track, the built-in panel has no download button, and roughly one video in ten has no captions at all. This guide covers every route: the built-in panel, the paste-a-URL generators and their export formats, what SRT/VTT/TXT/JSON each buy you, the developer API, and a local pipeline that transcribes the audio itself when captions don't exist.
Get a transcript straight from YouTube
YouTube's watch page has a built-in transcript panel. Since the October 2025 layout update it lives inside the expanded description, not under the video: click “…more” under the title, scroll to the bottom of the expanded description, and select Show transcript. The panel opens beside the player with timestamped, clickable lines — click a line and the player jumps to that moment. On the mobile app the transcript replaces the description below the player, with manual selection only.
Copying the whole transcript: click anywhere inside the panel, press Ctrl+A (Cmd+A on Mac), then Ctrl+C. To strip timestamps, use the panel's three-dot menu Toggle timestamps before copying — though in some browsers timestamps come along anyway and need a cleanup pass in your editor.
When the button is missing, the fast diagnosis is the CC button: if captions play on screen a track exists and the control is somewhere in the description; if CC does nothing, the video has no caption track and no extraction tool can conjure one. Brand-new uploads (captions still processing), music videos, and creators who turned captions off are the usual cases — skip to transcribing the audio.
If you own the video, YouTube Studio's captions editor is the official source: it lists auto-generated captions for download as .srt/.vtt, and it is where you upload or fix tracks. Auto-captions generate in the video's default language only.
Transcript generators: what the free tools actually do
Search “youtube transcript” and the SERP is wall-to-wall paste-a-URL generators — youtube-transcript.io (25 free extractions), NoteLM (9 export formats), MeetWave, fbutube, VexaScribe, and dozens of clones. They all do the same job: fetch the caption track YouTube already published and reformat it. That's why the extraction ones are genuinely free — there is no speech recognition to pay for. The fine print lives at the edges:
| Tool | Free reality (2026) | The catch |
|---|---|---|
| youtube-transcript.io | 25 free transcript extractions, no signup | Extraction only — captions or nothing |
| VexaScribe | Free 200-word preview, full text after free signup | DOCX/PDF export locked behind the account |
| MeetWave | Free unlimited extraction, 7 formats, client-side | AI summary is the paid hook (1 free credit) |
| fbutube | Free, no length limit, TXT/SRT/JSON | Same caption-extraction engine underneath |
| Whisper-upload tools | Transcribe videos with no captions — after signup, metered | Your video uploads to their cloud to run Whisper |
Two structural facts the tool landing pages don't print. First, extraction inherits YouTube's failures: when the tool says “no transcript available,” that is YouTube answering — the track doesn't exist. Second, every one of these tools processes the video on their servers, which matters when the footage is unreleased, internal, or otherwise not something you'd paste into a public form.
Download formats: TXT, SRT, VTT, JSON — which to pick
The built-in panel gives you copy-paste text only — no file, no format choice. That gap is what the generator tools sell. Each format has a real job:
| Format | What it is | Use it for |
|---|---|---|
| TXT | Plain text, timestamps optional | Reading, quoting, pasting into an LLM, show notes |
| SRT | SubRip subtitle file, numbered cues with timestamps | Video editors (Premiere, DaVinci, CapCut), re-uploading captions |
| VTT | WebVTT, W3C caption format | HTML5 web players, styled web captions |
| JSON | Structured cues with per-segment timestamps | Developer pipelines, RAG/LLM ingestion, analysis |
| CSV / Markdown | Sortable rows / notes format | Qualitative research (NVivo, ATLAS.ti), Notion/Obsidian |
One nuance worth knowing before you pay for a converter: the SRT/VTT already exist. Every caption track YouTube serves is a timed subtitle file under the hood — the generator is reformatting a track that ships in exactly these formats, which is why conversion is instant and free. For your own videos, YouTube Studio downloads the original caption files directly.
Where formats actually matter for quality: auto-generated tracks carry no punctuation and mishear proper nouns, so an SRT built from the auto-track bakes those errors into your video editor. Creator-uploaded captions are markedly better. If the source track is auto-generated and the text is going anywhere public, expect a cleanup pass.
No captions? Transcribe the audio itself
About one video in ten has no usable caption track — fresh uploads, disabled captions, languages auto-captions doesn't cover. No extractor works there; a speech-recognition engine has to listen to the audio. Two routes:
Route A — a cloud transcriber. Paste the URL into one of the tools above that runs Whisper server-side (or extract the audio and upload it). Fast for a one-off public video; the costs are a meter (free trials sized at 2–3 transcriptions, then per-minute pools) and the upload itself.
Route B — the local pipeline. Download the audio and transcribe on your own machine. Nothing uploads, no meter, no caps:
# 1. pull just the audio, 16 kHz mono WAV (what Whisper-class engines expect) yt-dlp -x --audio-format wav --postprocessor-args "-ar 16000 -ac 1" \ -o "audio.%(ext)s" "https://www.youtube.com/watch?v=VIDEO_ID" # 2. transcribe locally with whisper.cpp (free, CPU or GPU) whisper-cli -m ggml-large-v3-turbo.bin -f audio.wav -l en -osrt
GPU transcribes a 30-minute video in a couple of minutes; CPU runs ~0.3× real-time. Pick
large-v3 for jargon-dense content, small
or medium for drafts. This two-command pipeline is the entire
product behind the open-source “local caption” wrappers.
Prefer an app to a pipeline? VocalFuse runs a Whisper-class engine locally on Windows: drop in any audio or video file (download the audio with yt-dlp first for YouTube), get a timestamped, punctuated transcript with speaker labels, and export TXT/SRT/VTT. Nothing uploads — there is no per-minute meter because the engine runs on your PC (free tier, Basic $5/mo dictation, Pro $10/mo adds AI notes and summaries).
For developers: the transcript API landscape
There is no official YouTube transcript API — Google has never shipped one.
The de-facto standard is the open-source Python library youtube-transcript-api
(MIT, v1.2.x), which calls the same caption endpoint the browser uses. Pin 1.2.x and use the
fetch()/list() instance methods
with cue objects — the pre-1.0 get_transcript() static call
still printed in older tutorials raises AttributeError on current
installs. Formatters output plain text, JSON, SRT, and VTT.
The production wall is IP-based: extraction works fine from a residential laptop for hundreds of
requests, then cloud IPs start hitting RequestBlocked /
IpBlocked — AWS Lambda, Cloud Run, and serverless functions
almost always fail without residential proxies. That wall is why the hosted-wrapper industry
exists. Newer alternatives ride YouTube's internal innertube API instead (the
ytranscript CLI also ships an MCP server so coding agents can
pull transcripts directly), and yt-dlp can write subtitle files with
--write-auto-subs --sub-format srt when you just want the track
as a file.
Error set worth handling: TranscriptsDisabled (creator turned
captions off), NoTranscriptAvailable,
VideoUnavailable (private, deleted, region-locked); age-restricted
videos need authentication. Caption extraction rides YouTube's internal timedtext endpoint, which
sits in a legal gray zone at volume — architect for breakage.
What the transcript is good for
- Feed it to an LLM. Summaries, notes, quote extraction — or drop the URL into Gemini Notebook (formerly NotebookLM, rebranded July 16 2026), which analyzes YouTube videos from their transcripts. A pasted transcript is the same trick with any model.
- Write from it. Show notes, blog posts, newsletters, thread drafts — the video is already written; the transcript is the first draft.
- Study from it. Lectures read 5–10× faster than watching at 1×, and timestamps make every claim citable.
- Clip with it. Timestamped text is how editors find the moment to cut — and SRT export drops straight into Premiere, DaVinci, or CapCut.
- Index with it. For your own videos, the visible transcript on the page is what makes the content searchable — see our transcript publishing guide.
Quality caution: auto-captions cluster mishears around proper nouns and ship with no punctuation. If the text is going anywhere public — a quote in an article, a name in show notes — verify against the audio before it ships.
Related reading
YouTube to text — the full 2026 guide
The parent guide: caption extraction vs real transcription, tool fine print, and the local pipeline in depth.
YouTube to textWhisper for podcasts
Model size vs accuracy, VAD flags, and batch workflows for local Whisper-class transcription.
Whisper guideFree transcription, compared
The four kinds of “free” in transcription tools — monthly pools, daily caps, trials, and actually-free local engines.
Free transcription guideMeeting transcription without bots
Local, bot-free meeting transcription for Teams, Zoom, and Meet.
Meeting transcriptionExplore related AI note taking guides
YouTube transcript — FAQ
How do I get a transcript of a YouTube video?
On the watch page, click "…more" under the title to expand the description, scroll to the bottom, and select "Show transcript" — that is where the panel lives since YouTube's October 2025 layout update. It opens beside the player with timestamped, clickable lines. Click inside the panel, Ctrl+A, Ctrl+C to copy all of it; toggle timestamps off in the panel's three-dot menu if you want clean text.
How do I download a YouTube transcript as a file (TXT, SRT, VTT, JSON)?
YouTube's built-in panel is copy-paste only — no download button. The paste-a-URL generator tools reformat the same caption track into files: TXT for reading and LLM input, SRT for video editors (Premiere, DaVinci, CapCut), VTT for HTML5 web players, JSON for developer pipelines. The conversion is instant because every caption track YouTube serves is already a timed subtitle file under the hood. For your own videos, YouTube Studio downloads the original caption files directly.
Can I get a YouTube transcript without timestamps?
Yes. In the built-in panel, use the three-dot menu's "Toggle timestamps" before copying (some browsers paste them anyway). In the generator tools, both modes are a checkbox. And yt-dlp can strip them server-side: pull the track with --write-auto-subs and reformat, or run the text through any timestamp-stripping one-liner after download.
Why does a video say "transcript not available"?
Because no caption track exists — that message is YouTube answering, not the tool failing. Roughly one video in ten has no track: brand-new uploads while captions are still processing, music videos, region-locked content, or creators who turned captions off. No extractor can conjure a track that does not exist; the only route is transcribing the audio with a speech-recognition engine — locally with Whisper after a yt-dlp download, or through a cloud transcriber that meters you.
Is there an official YouTube transcript API?
No — Google has never shipped one. The de-facto standard is the open-source Python library youtube-transcript-api (MIT, v1.2.x): pin 1.2.x and call fetch()/list() on an instance (the pre-1.0 get_transcript() static raises AttributeError). It works from residential IPs and breaks at scale on cloud IPs (RequestBlocked/IpBlocked), which is why hosted paid wrappers exist. yt-dlp --write-auto-subs and innertube-based CLIs are the alternatives.
Are the free YouTube transcript generators safe to use?
For caption extraction, mostly — they read a track YouTube already published and reformat it, no account needed on most. The honest caveats: every one processes the video on their servers (fine for public videos, not for unreleased or internal footage), the tools that promise transcription without captions meter you after a 2-3 free trial, and quality is capped by the source track — auto-generated captions carry no punctuation and mishear names. For sensitive audio, transcribe locally instead.
Can I get a transcript of a YouTube video with no captions?
Yes — transcribe the audio instead of reading captions. Download the audio with yt-dlp (yt-dlp -x --audio-format wav) and run it through Whisper locally (whisper-cli with a large-v3-turbo model), or paste the URL into a cloud transcriber and pay per minute. The local route is free, unlimited, and nothing uploads. Local Whisper-class runs with punctuation and speaker labels usually beat the auto-track on names and jargon.
How accurate are YouTube transcripts?
Depends entirely on the track. Creator-uploaded captions are good. Auto-generated captions run roughly 90-95% on clean English but ship with no punctuation, lowercase formatting, and clustered mishears around names, brands, and jargon — fine to skim, not to quote. If the text is going anywhere public, verify proper nouns against the audio, or run the audio through a local Whisper-class engine with a custom vocabulary for the same words.