TRANSCRIPTION · HOW-TO · 2026
How to transcribe a YouTube video
Three methods actually work in 2026, and they are not interchangeable. If the video has a caption track, copying it takes ten seconds and costs nothing — but the track you inherit may be machine-made, unpunctuated, and wrong about every name in the talk. If the captions are missing or unusable, no extractor can help: someone has to listen to the audio, and that job belongs to a speech-recognition engine running either in someone's cloud or on your own machine. This page is the decision guide: which method for which video, the exact commands, and what to do with the text after.
First, a 30-second decision
Open the video and turn captions on (the CC button). One of three things happens, and it picks your method for you:
- Captions play and the label says the language without “auto-generated”. The creator uploaded a track. Copy it — Method 1 — and you already hold the best transcript that exists for this video.
- Captions play with an “English (auto-generated)” label. YouTube's speech recognition made the track. Good enough to skim, risky to quote: it typically runs 85–95% on clean English, drops most punctuation, and clusters its errors on proper nouns. Decide by use case below.
- CC does nothing. No track exists — captions disabled, upload too new, music-blocked audio, or an unsupported language. Skip straight to Method 3; every extraction tool will come back empty.
The label check matters because the two track types are different products. Manual captions were made by someone who watched the video; auto captions were made by a model optimized to cover millions of hours of upload per day, not to get your quote right.
Method 1 — captions exist: copy the track
Since YouTube's October 2025 layout update the transcript panel lives inside the expanded description: click “…more” under the title, scroll to the bottom, and open Show transcript. Click inside the panel, Ctrl+A, Ctrl+C — the whole transcript is yours. Toggle timestamps off in the panel's three-dot menu first if you want clean prose (some browsers paste them anyway; a one-line cleanup fixes it).
Paste-URL generators do the same fetch and hand you a file: TXT for notes and LLM prompts, SRT for Premiere/DaVinci/CapCut, VTT for web players, JSON for pipelines. They are free because there is no speech recognition in them — they read the track YouTube already published.
What this method cannot do: produce punctuation, fix a garbled name, or handle a video with no track. Auto-caption text arrives as display-sized chunks with sentence boundaries missing — independent 2026 measurements found roughly one in five auto-caption transcripts contains no sentence punctuation at all. Skim it, quote-check it against the audio, and if the text is going anywhere public, weigh re-transcribing from the audio.
Method 2 — yt-dlp: the track as a file, or the audio for transcription
yt-dlp is the reliability route. It talks to the same caption
endpoints the player uses instead of scraping whatever the transcript panel happens to render this
week, and it does both jobs: grabbing the caption track and pulling the audio when you need
to transcribe for real.
# The caption track itself (no video download):
yt-dlp --write-sub --sub-lang en --convert-subs srt --skip-download "VIDEO_URL" # creator track, preferred yt-dlp --write-auto-sub --sub-lang en.* --convert-subs srt --skip-download "VIDEO_URL" # auto track fallback yt-dlp --list-subs "VIDEO_URL" # see what exists before anything else
# The audio, for Method 3 (16 kHz mono WAV — the format Whisper wants):
yt-dlp -x --audio-format wav --postprocessor-args "-ar 16000 -ac 1" -o "audio.%(ext)s" "VIDEO_URL"
Read --list-subs output before anything else: it separates
creator-uploaded from auto-generated tracks per language. If both flags come back empty, the video
genuinely has no captions — no flag combination will conjure one, and that is your cue for
Method 3.
One warning from production use: extraction works fine from a residential laptop, then throttles or blocks at volume from datacenter IPs — the open-source tooling around yt-dlp deals with cookie/JS-challenge walls that move every few months. Keep yt-dlp current; the subtitle endpoints do shift.
Method 3 — no captions: transcribe the audio with Whisper
When there is no track, the only honest path is speech recognition. Whisper-class models run on your own machine, free, with no per-minute meter — and for jargon-dense English they usually beat YouTube's auto-track on the words that matter (names, products, technical terms). The whole pipeline is two commands once yt-dlp has handed you the audio:
# 1. audio is already on disk from Method 2 (or extract from any local file): ffmpeg -i video.mp4 -ar 16000 -ac 1 -c:a pcm_s16le audio.wav # 2. transcribe locally with whisper.cpp (CPU or GPU, nothing uploads): whisper-cli -m ggml-large-v3-turbo.bin -f audio.wav -l en -osrt
Model choice is the lever: large-v3/turbo
for jargon and quotes, small/medium
for fast drafts. The faster-whisper implementation claims up to 4×
the speed of the reference model at the same accuracy; GPU turns a 30-minute video into a couple of
minutes, CPU runs roughly a third of real time. Whisper alone doesn't label speakers — add
whisperX or pyannote when the video has multiple voices. Expect a hallucination guard on silent or
music-only stretches ( Whisper invents fluent nonsense on silence; VAD filtering is the standard fix).
Prefer an app to a pipeline? VocalFuse runs a Whisper-class engine locally on Windows: drop the downloaded audio (or any audio/video file) into it and get a timestamped, punctuated transcript with speaker labels, exportable as 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). Same trick works on the video files the download leaves behind: see the video transcription guide.
Method comparison: which one for your job
| Copy the track | yt-dlp + Whisper | Cloud transcriber | |
|---|---|---|---|
| Needs captions? | Yes — track or nothing | No — listens to audio | No |
| Cost | $0 always | $0 always, your hardware | Per-minute or subscription (Sonix $10/hr, Rev human $1.99/min) |
| Punctuation / names | Whatever the track has (auto tracks: usually neither) | Punctuated, best-in-class on jargon | Good — but your audio uploads |
| Privacy | Track is already public | Nothing leaves your machine | Audio uploads to the vendor |
| Scales to | One video at a time, copy-paste | Playlists — script the loop | Bulk, if you pay |
| Best for | Quick reading, notes, LLM summaries | Quotes, publishing, no-caption videos, anything sensitive | Bulk jobs on other people's hardware |
The honest default: copy the track when you just need the gist, transcribe locally when the words have to be right or the video has no track at all. Cloud tools sit in the middle — accurate, metered, and your audio on their servers.
After the transcript: notes, summaries, publishing
- Feed it to an LLM. A clean transcript is the input every summarizer wants — paste-a-URL tools and Gemini Notebook both read videos through their caption tracks, which is exactly why caption-less videos defeat them. Transcribe first (Method 3), then paste the text into any model. The YouTube summary guide compares every 2026 method, from Gemini's Ask button to the private local pipeline.
- Study from it. Lectures read several times faster than watching, and timestamps turn every claim citable.
- Write from it. Show notes, blog posts, newsletters — the video is already written; the transcript is the first draft.
- Publish it. For your own videos, the visible transcript on the page is what makes the content searchable — the transcript publishing guide covers the on-page rules.
- Caption it. An SRT from Method 3 drops straight into the YouTube Studio caption editor, giving viewers a properly punctuated track the auto-captions never had.
Quote discipline: transcripts — copied or generated — are drafts. Verify wording and proper nouns against the audio before anything ships publicly; auto-tracks cluster exactly the errors (names, numbers, jargon) that a quote can't survive.
Related reading
YouTube transcript formats & the API
Every way to get, copy, and download a YouTube transcript — the panel, generators, export formats, and youtube-transcript-api.
YouTube transcript guideYouTube to text — the full 2026 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 guideExplore related AI note taking guides
Transcribing a YouTube video — FAQ
How do I transcribe a YouTube video?
If the video has captions, open the watch page, click "…more" under the title, and select "Show transcript" in the expanded description — then Ctrl+A and Ctrl+C inside the panel. If the captions are missing or unusable, download the audio with yt-dlp and transcribe it with a Whisper-class engine running locally: two commands, free, nothing uploads.
Can I transcribe a YouTube video for free?
Yes, both routes are free. Copying the built-in caption track costs nothing and takes seconds when a track exists. When it doesn't, the yt-dlp + whisper.cpp pipeline is also free and unlimited on your own hardware — the only costs are a model download (~1.5 GB for large-class models) and your CPU/GPU time. Cloud transcribers meter the same job per minute.
How do I transcribe a YouTube video that has no captions?
Extract the audio and run speech recognition on it: yt-dlp -x --audio-format wav --postprocessor-args "-ar 16000 -ac 1" downloads a Whisper-ready WAV, then whisper-cli -m ggml-large-v3-turbo.bin -f audio.wav -l en -osrt transcribes it locally. No extractor can conjure a caption track that doesn't exist — the audio is the only source of truth.
Are YouTube's auto-generated captions accurate enough to use as a transcript?
For skimming, usually; for quoting, no. Independent 2026 measurements put auto-captions around 85-95% word accuracy on clean English, with errors clustered on names and technical terms — and roughly one in five auto-caption transcripts contains no sentence punctuation at all. Use them for notes and drafts; verify any quote against the audio or re-transcribe with a local Whisper-class engine.
How do I convert a YouTube video to text with timestamps?
yt-dlp writes the caption track as a timed file directly: yt-dlp --write-auto-sub --sub-lang en --convert-subs srt --skip-download "URL" gives you an SRT without downloading the video. For timestamped text of a caption-less video, whisper-cli -osrt produces timestamps from the audio. SRT works in video editors, VTT in web players, and the built-in transcript panel copies with timestamps you can toggle off.
Can Gemini Notebook or ChatGPT transcribe a YouTube video?
Only through the caption track. Gemini Notebook (formerly NotebookLM) reads a YouTube video's transcript when captions exist and errors out with "transcript not available" when they don't — it never processes the audio. ChatGPT can't fetch videos at all. The reliable pattern: transcribe the audio yourself (Method 3), then paste the text into whichever model you use.
Is it legal to transcribe someone else's YouTube video?
For personal use — study notes, research, accessibility, your own reference — extracting captions or transcribing audio is broadly treated as normal use. Republishing someone else's transcript as your own content, or bulk-scraping captions, violates YouTube's Terms of Service and possibly copyright. Keep transcriptions for your own use unless you have the creator's permission or you own the video.
Does VocalFuse transcribe YouTube videos?
Yes — download the audio with yt-dlp first, then drop the file into VocalFuse: a Whisper-class engine runs locally on Windows, producing a timestamped, punctuated transcript with speaker labels, exportable as TXT/SRT/VTT. Nothing uploads and there is no per-minute meter because the engine runs on your PC. The free tier covers transcription; Pro adds AI notes and summaries.