YouTube video transcripts: the complete guide for 2026
Transcripts turn a video into text you can search, summarize, quote and feed to a language model. YouTube has captions on most videos, either uploaded by the creator or generated automatically. Getting them out is the tricky part. This guide covers every method and when each one is the right one.
Manual captions vs auto-generated
- Uploaded captions are written or edited by the creator. They are the most accurate.
- Auto-generated captions come from speech recognition. They are usually good for clear speech and weaker with names, jargon, music and strong accents.
- Some videos have no captions at all, usually when the creator turned them off or the audio is music only. Then the only route is to transcribe the audio yourself with a speech model.
Method 1: the transcript panel on youtube.com
Open the video, expand the description, and click "Show transcript". You can copy the text. This is fine for one video and fails for a hundred.
Method 2: the official captions API
The YouTube Data API has a captions resource, but it is built for creators managing their own videos. captions.list costs 50 units. captions.download costs 200 units, needs OAuth, and requires the user to have permission to edit the video. Google quota table In practice you cannot download captions for other people's videos with it.
Method 3: yt-dlp
yt-dlp --skip-download --write-subs --write-auto-subs --sub-langs "en.*" \
"https://www.youtube.com/watch?v=VIDEO_ID"
This writes subtitle files next to where the video would go, without downloading the video. --sub-langs takes a comma list or regex. source It is free and handles whole playlists, but you run it locally and keep it updated.
Method 4: open-source libraries
- Python:
youtube-transcript-api(MIT).YouTubeTranscriptApi().fetch(video_id, languages=["de", "en"])tries languages in order. The README warns that YouTube blocks most cloud provider IPs and that the library relies on an undocumented part of YouTube. source - Node.js:
youtube-transcript(MIT) hasfetchTranscript(videoIdOrUrl). Its README says it uses an unofficial API and may break. source
Method 5: transcript APIs
Hosted APIs fetch transcripts for you and return JSON, which is what you want on a server. Supadata, for example, charges 1 credit per transcript with a free plan of 100 credits a month; its credits do not roll over. source Multi-platform APIs such as ScrapeIO also return TikTok and Instagram transcripts in the same shape.
Picking the language
Many videos have several tracks: the creator's upload in one language, an auto-generated track, and sometimes translations. Ask for the language you want first and fall back in order, for example German, then English. The Python library above takes a list of languages for this, and can also translate a transcript. source Always store which track you got, because an auto-translated transcript is a weaker source than the original.
Comparison
| Method | Other people's videos | Works on a server | Cost |
|---|---|---|---|
| Transcript panel | Yes | No | Free |
| Official captions API | No, edit permission needed | Yes | 200 units a download |
| yt-dlp | Yes | You maintain it | Free |
| Open-source libraries | Yes | Often blocked on cloud IPs | Free |
| Transcript APIs | Yes | Yes | Per call |
Working with the text
- Keep timestamps. They let you link to the exact second:
https://www.youtube.com/watch?v=ID&t=125s. - Chunk for language models by time (for example 2 minutes) or by about 500 words, with a little overlap.
- Fix names with a find-and-replace list for auto captions: product names and people are where errors cluster.
- Store the language code and whether the track was auto-generated.
- Respect copyright. A transcript is the creator's words. Summarizing and quoting is different from republishing the full text.
Doing it with ScrapeIO
The YouTube transcript API takes a video or Short URL and an optional language, and returns the full text plus segments with start and end times in milliseconds. It costs 1 credit, and a video with no captions is not charged. For the same on other platforms, see the TikTok transcript API and our transcripts guide.
Sources
Checked on 8 November 2026 from each vendor's own pages. Prices and limits change; follow the links before you decide.
- https://developers.google.com/youtube/v3/docs/captions/download
- https://developers.google.com/youtube/v3/determine_quota_cost
- https://github.com/yt-dlp/yt-dlp
- https://github.com/jdepoix/youtube-transcript-api
- https://github.com/Kakulukian/youtube-transcript
- https://supadata.ai/pricing
100 free credits, no card. Credits never expire.
Get API key