How to extract a YouTube transcript
Get the full available caption text from a public YouTube video — no sign-up needed for your first 25 videos each month.
The 30-second version
- Copy the video URL from YouTube (regular watch links,
youtu.beshort links, Shorts, live replays, and embeds all work). - Paste it into the box on the VidWords homepage and hit Get transcript.
- Read it as clean paragraphs with chapter headings, or switch to timestamped lines / plain text.
- Copy it, or Download as
.txt,.srt,.vtt,.csv, or.json.
Why the output looks better here
YouTube stores captions as 1–5 second fragments. VidWords merges them into readable paragraphs, adds one clickable timestamp per paragraph (it opens the video at that exact moment), and inserts the video's chapter headings where they belong. There's also an in-transcript search, a profanity filter, and word/character counts.
Switching languages
If a video has captions in several languages, the language dropdown lists all of them — both author-uploaded and auto-generated tracks. Pick one and the transcript reloads instantly.
Auto-generated vs. manual captions
Auto-generated captions (marked auto) are produced by YouTube's speech recognition. YouTube's own guidance says quality can vary with accents, dialects, and background noise and recommends review. Important quotations should therefore be checked against the timestamped source. VidWords prefers author-uploaded captions when both kinds exist.
Choosing an export format
All five formats come from the same extraction — you can download any of them without spending another credit.
| Format | What you get | Reach for it when |
|---|---|---|
.txt | Plain paragraphs, no timing data | Reading, quoting, or pasting into an LLM |
.srt | Numbered subtitle cues with start/end times | Re-uploading subtitles to a video editor or player |
.vtt | WebVTT cues (the format YouTube itself serves) | Captioning HTML5 video on the web |
.csv | One row per caption line, with start and duration | Spreadsheets, or filtering lines by timestamp |
.json | Structured segments plus video metadata | Feeding a script, pipeline, or RAG index |
When a transcript won't load
Not every video can be read, and the reasons are worth separating — most "failures" are the video's settings rather than a fault in the extractor. A lookup that returns no transcript never costs a credit.
- The video has no captions at all. If the creator disabled captions and YouTube's speech recognition never produced an auto track, there is nothing to fetch. On a paid plan VidWords falls back to its own speech-to-text for these, which costs 2 extra credits; on the free plan you get a clear message instead of a charge.
- Private, deleted, or unlisted videos. Extraction only ever sees what a signed-out visitor can see, so private and deleted videos return nothing. An unlisted video works if you have its real link.
- Age-restricted and members-only videos. Both require an authenticated session that VidWords deliberately does not use, so their captions are unreachable.
- A live stream that is still running. Wait for the replay to finish processing — captions for a live broadcast are usually only complete once YouTube has published the archived video.
- A temporary upstream failure. Occasionally YouTube refuses a request that succeeds moments later. These surface as a retryable service error rather than "no captions", and retrying once is normally enough.
If a video plays for you signed-out and has a visible CC button but still won't extract, that combination is worth reporting — send us the link.
Doing it at scale
For more than a handful of videos, use bulk extraction — up to 500 videos from a playlist or channel, or 200 pasted or uploaded URLs. Resolving a channel or playlist into its video list is free; you only spend credits on transcripts you actually extract, and per-video failures are itemised instead of sinking the whole batch.
For automation, the REST API accepts up to 50 video IDs per request and is rate-limited to 5 requests every 10 seconds per token. An API token is included on every plan, including Free.
FAQ
Is it free?
Yes — 3 transcripts per month free with no account, or 25 a month with a free account. Registered plans go up to 10,000/month.
What if a video has no captions?
If the author disabled captions and YouTube generated none, there's no transcript to fetch — you'll see a clear error instead of a charge.
Can I use transcripts commercially?
The transcript text belongs to the video's creator. Quoting and analysis are generally fine; republishing whole transcripts may require permission.
Do I need an account?
No. The first 25 videos each month work signed-out. An account adds history, bulk extraction, and higher monthly limits.
Does it work with Shorts and live replays?
Yes. Shorts, finished live replays, youtu.be short links, and embedded player URLs all resolve to the same video ID. A live stream still in progress usually needs to finish first.
Can I keep the timestamps?
Yes. The paragraph view shows one clickable timestamp per paragraph, and the timestamped-lines view keeps every cue. Exporting as .srt, .vtt, or .csv preserves the timing data; .txt deliberately drops it.
Which language do I get?
Author-uploaded captions are preferred when they exist, otherwise the auto-generated track. If a video carries several languages, the dropdown lists all of them and switching reloads the transcript without spending another credit.
How accurate is it?
VidWords reproduces YouTube's caption track rather than re-transcribing it, so on author-uploaded captions the text is exactly what the creator published. Auto-generated tracks inherit YouTube's own speech-recognition errors — check any quotation against the timestamped source before publishing it.