How to extract a YouTube transcript
Get the full available caption text from a public YouTube video — no sign-up needed for your first 3 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 Cloud Request.
| 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 Cloud Request.
- The video has no captions at all. If the creator disabled captions and YouTube's speech recognition never produced an auto track, VidWords can offer audio transcription when your account has enough AI Processing Units. If no transcript is delivered, no Cloud Request or AI Units are kept.
- 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 in Bulk; each successful transcript uses one Cloud Request, 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 Cloud transcripts per month signed out, 25 monthly Cloud Requests on Free, or unlimited browser transcripts through Chrome. Paid plans include up to 10,000 Cloud Requests per 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 3 Cloud-processed videos each month work signed out. A free account adds 25 monthly Cloud Requests, history and 100 Developer Requests; Chrome provides unlimited browser extraction.
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. Browser extraction remains free; Cloud retrieval and translation follow the usage rates shown before the request.
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.