← Back to blog

9 min read

How to Download YouTube Captions: Four Methods Compared

YouTube stores captions as timed text tracks attached to the video, so downloading captions means fetching a file that already exists rather than transcribing audio. Four methods reach that file: an online caption downloader, the command-line tool yt-dlp, a browser extension, or YouTube's own transcript panel. Which one fits depends on how many videos you need and what format the next step in your workflow expects.

One limit applies to every method on this page, including ours. A caption downloader reads the track YouTube already holds. If a creator disabled captions and YouTube generated none, there is nothing on the servers to fetch and no tool can invent it. YouTube Video Transcript marks those videos failed in the job and returns the credit rather than charging for an empty file.

If you want the plain text without timings, see how to download a YouTube video transcript.

What is a YouTube caption track?

A YouTube caption track is a timed text file stored alongside the video, holding each line of speech with a start time and a duration. YouTube carries two kinds. A manual track is the file the creator or their captioner uploaded. An automatic track is the output of YouTube's speech recognition, shown as "(auto-generated)" in the caption menu and produced only for the languages that system covers. A video can have both, one, or neither.

Captions, subtitles, and transcripts all come out of that same track. Captions are the timed text shown over the video for accessibility. Subtitles are the same timed text framed for translation. A transcript is the text with the timings flattened or stripped. The word you use describes the intent; the file format decides what you actually get. SRT and WebVTT keep timings, TXT usually does not.

How do I download captions from a whole channel or playlist?

Paste the channel or playlist URL into YouTube Video Transcript, pick a format, and download. It resolves the URL into its video list, pulls the caption track for each video, and returns one ZIP holding a file per video. A single video URL skips the ZIP and returns the file on its own. The input accepts video URLs, playlist URLs, and channel URLs in the youtube.com/@channelname form.

Each video costs one credit, and a video whose captions are missing costs nothing: it is marked failed in the job with the reason, and the credit goes back on your balance when the job finishes. Cancel a running job and the credits for the videos it had not reached yet come back the same way. The quota documentation walks through the arithmetic on a 500-video channel.

The largest single job YouTube Video Transcript has handled pulled 3,713 videos from one channel, and 16,279 transcripts have gone through the service so far, at a median of 2.0s per transcript. Figures as of September 2026.

The cheapest way to judge whether this fits your workflow is to run it. Sign in with Google and the first 30 transcripts each month are free, with no card. That is enough to download a short playlist, open the SRT in your editor, and see whether the timings land where you expect before any money changes hands.

How do I download YouTube captions with yt-dlp?

yt-dlp is a free command-line downloader that writes caption files without downloading the video, and it is the better tool when you are comfortable in a terminal and need a handful of videos. It costs nothing, it has no account, and it runs on your own machine. It also expects you to install Python and read option documentation, which is the trade.

To write the English captions for one video and skip the video itself:

yt-dlp --write-subs --write-auto-subs \
--sub-langs en --skip-download \
"https://www.youtube.com/watch?v=VIDEO_ID"

--skip-download leaves the video file alone. --write-subs asks for the creator-uploaded track and --write-auto-subs asks for the speech-recognition one. --sub-langs en picks the language, and --list-subs prints every track a video actually has before you commit to one.

That command writes a .vtt file, not SRT. YouTube serves caption tracks in WebVTT, TTML, and its own srv1, srv2, srv3, and json3 formats, and yt-dlp saves whichever of those it received. To get SRT out of it, add --convert-subs srt, which hands the file to ffmpeg for conversion and therefore needs ffmpeg installed. Full option documentation lives in the yt-dlp repository.

Swap the video URL for a playlist URL and yt-dlp walks every entry, writing one caption file per video. On a channel with thousands of videos, --lazy-playlist starts processing entries as they arrive instead of enumerating the whole list first.

Do browser extensions download YouTube captions?

Browser extensions such as Tactiq and Glasp add a caption button to the YouTube page itself, so you copy the text without leaving the tab. For one video that you are already watching, that is the shortest path there is.

The ceiling arrives quickly. An extension works on the video currently open, so there is no channel or playlist mode, and the output is usually plain text rather than a subtitle file you can import into Premiere Pro or DaVinci Resolve. Chrome on Android supports no extensions at all, so the workflow ends when you pick up your phone.

How do I copy captions from YouTube's own transcript panel?

Open the video, click the three-dot menu under the player, and choose Show transcript. A panel opens beside the video listing every caption line with its timestamp. Select the lines, copy, and paste into a text file. YouTube charges nothing for this and asks for no account.

What you get back is text on the clipboard, so there is no SRT file and no WebVTT file, and the timestamps arrive as visible text rather than as machine-readable cues. There is also no way to batch it: ten videos means ten rounds of open, expand, select, copy, save. For one video it is the right answer, and it is the reason a paid tool has to earn its place on volume rather than on a single download.

Which caption format should I download?

YouTube Video Transcript exports six formats. Pick SRT if the captions are going into a video editor, and TXT for everything else.

FormatTimestampsBest forOpens in
SRTYesSubtitle import, video editingPremiere Pro, DaVinci Resolve, Final Cut Pro, VLC
TXTOptionalReading, search, AI model inputAny text editor
JSONYesCode, data pipelinesAny programming language
CSVYesSorting and filtering caption linesExcel, Google Sheets, pandas
DOCXOptionalSharing and printingWord, Google Docs, Pages
MarkdownOptionalNotes and documentationObsidian, Notion, any Markdown editor

WebVTT is not on that list, and that is a real gap if your target is an HTML5 player, where WebVTT is the format the W3C WebVTT specification defines for the <track> element. Two ways around it: take the .vtt yt-dlp writes, or convert an SRT export. The formats are close relatives. WebVTT opens with a WEBVTT line and separates milliseconds with a period, while SRT numbers each cue and separates milliseconds with a comma.

What do I do when captions will not download?

The video has no caption track

Some creators turn captions off, and YouTube's automatic captioning does not cover every language, so a video can genuinely carry no track at all. Check by opening the video and looking for the CC button. If it is absent, no downloader can help, because there is no file on YouTube's side to fetch. In a bulk job, YouTube Video Transcript lists those videos with the reason and refunds their credits, so a channel that is half uncaptioned costs you half as much.

The captions come back in the wrong language

A video can carry several caption tracks, and multilingual channels often have the wrong one flagged as primary. In yt-dlp, run --list-subs to see every available track, then name the one you want with --sub-langs. Through the YouTube Video Transcript API, pass the lang parameter on a single-video request; the response reports the language it actually served, and it lists the other tracks the video carries.

The SRT file will not import into my editor

Check the encoding and the extension first. The file needs to be UTF-8 and named .srt rather than .srt.txt, which is what happens when a text editor appends its own extension on save. If the editor loads the file but the timings are ignored, look at a timestamp line: SRT wants 00:00:01,000 --> 00:00:04,000, with a comma before the milliseconds and a space on each side of the arrow. A period there is WebVTT syntax, and most editors reject the file rather than guess.

Can I download captions in another language?

For a single video, yes: the YouTube Video Transcript API takes a lang parameter, returns the track for that language when the video has one, and tells you which languages are available when it does not. The single-transcript endpoint documents the parameter and the error you get back.

Bulk jobs have no language picker today. A channel or playlist job takes the video's English track when there is one, preferring a creator-uploaded track over an automatic one, and falls back to the first track the video carries otherwise. Every downloaded file records the language it holds, so a mixed-language channel is sortable after the fact. yt-dlp is the better tool if you need one specific language across a large playlist: --sub-langs "es,fr" pulls both at once.

No method here translates anything. YouTube can auto-translate a caption track on the fly during playback, but what downloads is the stored track in its original language. If you need Spanish captions for an English video, download the English track and run it through a translation step of your own.

What does bulk caption download cost?

YouTube Video Transcript is free for 30 transcripts a month after a Google sign-in, with no card. Paid plans are monthly subscriptions with no credit packs and no per-download surcharge.

PlanPriceTranscripts
Free$030 a month
Starter$9 / month1,000 per month
Pro$19 / month5,000 per month
Business$49 / month20,000 per month

Unused transcripts do not roll over. The allowance resets on your billing anniversary, an upgrade resets it immediately, and letting a subscription lapse drops you back to the free 30 a month. If your work comes in one annual burst rather than monthly, that is worth pricing against yt-dlp before you subscribe. Current numbers are on the pricing page.

Concretely: paste a channel URL such as youtube.com/@channelname into YouTube Video Transcript, pick SRT, and you get back one ZIP with an SRT file per video, one credit per video, missing captions refunded. The first 30 each month are free.

Related reading

For the same ground from the subtitle angle, see downloading YouTube subtitles, and for bulk transcript work specifically, see how to download YouTube transcripts in bulk.

Frequently asked questions

How do I download YouTube captions as SRT?

Paste the YouTube URL into YouTube Video Transcript, choose SRT, and download. SRT is one of six formats it exports, alongside TXT, JSON, CSV, DOCX, and Markdown. An SRT file carries a numbered cue and a timestamp range for every caption line, which is what Premiere Pro, DaVinci Resolve, Final Cut Pro, and VLC read when you import subtitles.

Can I download YouTube captions as VTT?

Not from YouTube Video Transcript, which exports TXT, SRT, JSON, CSV, DOCX, and Markdown. yt-dlp does produce WebVTT, because WebVTT is one of the formats YouTube itself serves caption tracks in. If your target is an HTML5 player, either take the VTT yt-dlp writes or convert an SRT file, since the two formats differ mainly in the WEBVTT header line and in whether milliseconds follow a comma or a period.

Can I download YouTube captions without signing up?

Yes. YouTube's own Show transcript panel is free and needs no account. YouTube Video Transcript previews one transcript with no account at all, then gives 30 transcripts a month after a Google sign-in, with no card. Bulk channel and playlist downloads run on those free credits too, and paid plans start at $9 a month for 1,000 transcripts.

How do I download auto-generated captions?

Auto-generated captions download exactly like manual ones, because YouTube stores both as timed text tracks on the video. YouTube Video Transcript takes whichever track the video carries and labels the language it served. In yt-dlp, --write-subs requests creator-uploaded tracks and --write-auto-subs requests the speech-recognition track.

What is the difference between captions, subtitles, and transcripts?

All three come from the same timed text data on the video; the packaging differs. Captions are timed text shown over the video for accessibility. Subtitles are timed text meant for translation. A transcript is the same text with the timings flattened or dropped. Downloading SRT gives you captions, downloading TXT gives you a transcript, and both come from the same track.

Can I download closed captions from a private YouTube video?

No. A caption downloader can only reach what YouTube serves publicly, so private and unlisted videos are out of reach. If you own the video, sign in to YouTube Studio and export the caption file from the Subtitles section of that video.

Do YouTube caption downloaders work on mobile?

YouTube Video Transcript runs in a mobile browser with nothing to install. Browser extensions such as Tactiq and Glasp are a desktop workflow, and Chrome on Android supports no extensions at all. yt-dlp runs under Termux on Android and iSH on iOS, but both need a terminal setup first.

How do I download YouTube captions in bulk?

Paste a playlist or channel URL into YouTube Video Transcript. It resolves the URL to its video list, pulls the caption track for each video, and returns one ZIP with a file per video in the format you chose. yt-dlp does bulk too: point it at a playlist URL with --write-subs and it writes one caption file per entry.

We use Google Analytics cookies and note which site referred you, so we know how people find us. Nothing personal, nothing sold. See our Privacy Policy.