How to scrape YouTube Transcript Extractor
Get YouTube transcripts and subtitles from videos, Shorts, channels, playlists or searches as plain text, timed segments, SRT or VTT, with title, channel, views, duration and caption languages. Pick languages, manual or auto. No login, no API key.
Open YouTube Transcript Extractor on Apify
Get the transcript of any YouTube video, or of every video on a channel, playlist or search, as plain text, timed segments, SRT or WebVTT. Each row also has the title, channel, views, duration, description and the full list of caption languages. You choose the language and whether to take human or auto-generated captions. You don't need a login or an API key, and you only pay for videos that actually return a transcript.
- In short: YouTube Transcript Extractor (Apify actor
transparent_meteorite/youtube-transcript-extractor) downloads the public caption tracks of YouTube videos. It returns one row per video with the transcript in the formats you pick. - Who it is for:
- AI and RAG builders feeding video content to LLMs
- content teams turning videos into blog posts, notes or quotes
- researchers analysing what is said on channels or topics
- subtitle and translation work
- AI agents that need "what does this video say" as a tool
- Input:
- URLs: video, Shorts, channel, playlist or search page
- or plain search words, or bare video IDs
- preferred languages, with a fallback to the video's own language
- manual, auto-generated or any captions
- output formats: text, timed segments, SRT, VTT
- optional machine translation (best effort) and extra video details
- Output: up to 37 fields per video, including:
- transcript, segments (start, duration, end, text), srt, vtt
- language, isAutoGenerated, isTranslated, availableLanguages
- wordCount and segmentCount
- title, channel, views, duration, description, tags, thumbnail
- status and a reason for videos without a transcript
- Pricing: pay per event. $0.003 per transcript on the Free plan and $0.002 on Gold and above, plus a $0.00005 start event. Videos without captions, and unavailable or failed videos, are never charged.
- Limits: it reads the captions YouTube publishes. It does not run speech-to-text, so a video with no captions at all returns
no_transcript(free). Machine translation is rate-limited by YouTube and is best effort.
What it outputs
One row per video:
Example input
{
"startUrls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }],
"languages": ["en"],
"outputFormats": ["text", "segments"]
}Sample output
{
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channelName": "Rick Astley",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"durationSeconds": 213,
"viewCount": 1826323732,
"status": "ok",
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"isTranslated": false,
"availableLanguages": [{ "languageCode": "en", "name": "English", "isAutoGenerated": false }, { "languageCode": "ja", "name": "Japanese", "isAutoGenerated": false }],
"wordCount": 487,
"segmentCount": 61,
"transcript": "[♪♪♪] ♪ We're no strangers to love ♪ ♪ You know the rules and so do I ♪ ...",
"segments": [{ "start": 1.36, "duration": 1.68, "end": 3.04, "text": "[♪♪♪]" }],
"srt": "1\n00:00:18,640 --> 00:00:21,880\nWe're no strangers to love\n...",
"scrapedAt": "2026-10-13T23:50:00.000Z"
}Sample taken from the actor's README; values shown as placeholders there are placeholders.
FAQ
Does it work on videos without subtitles?
Most videos have auto-generated captions, and those work. A video with no captions at all (YouTube made none) returns no_transcript and is free. The actor does not run its own speech-to-text.
Which language do I get?
It tries your languages in order, preferring human-made captions. If none of them exist and fallbackToAnyLanguage is on, you get the video's own captions, and languageMatch says fallback.
Is translation reliable?
It uses YouTube's own machine translation, and YouTube often rate-limits it. When YouTube refuses, the row contains the original-language transcript plus a translationError, at the same price. For reliable translations, translate the transcript text yourself.
Can I get SRT or VTT files?
Yes. Add srt or vtt to outputFormats; each row then carries the full subtitle file as text.
Do I need a proxy?
No, not for normal runs. If YouTube starts refusing requests, the run switches to Apify residential proxy on its own. Turn autoProxyFallback off to prevent this.
Is this legal?
The actor reads public captions only. Transcripts are the creators' content, so you are responsible for using them in line with YouTube's terms and copyright law.
Something missing or broken?
Open an issue on the Issues tab with the run URL and we will reply there.
Where do I run it?
On Apify: https://apify.com/transparent_meteorite/youtube-transcript-extractor. Check the Pricing tab there for current prices.