π Youtube Transcript Scraper - $0.5 per 1k
Pricing
Pay per event
π Youtube Transcript Scraper - $0.5 per 1k
Scrape youtube transcripts in bulk. Provides videos details and transcript in different formats
Pricing
Pay per event
Rating
0.0
(0)
Developer

Supreme Coder
Actor stats
8
Bookmarked
137
Total users
35
Monthly active users
2 days ago
Last modified
Share
The most reliable YouTube transcript extractor on Apify. Extract transcripts, subtitles, and captions from YouTube videos in seconds β with built-in proxy rotation, multi-language support, and multiple output formats. Works with regular videos, Shorts, and auto-generated captions.
Features
There are 20+ YouTube transcript scrapers on Apify. Here's why this one stands out:
- Doesn't break when YouTube changes β Most transcript actors broke for days or even weeks during YouTube's backend changes in Dec 2025 and Jan 2026. This actor is built for resilience with fast recovery
- Clear errors, not empty results β Other actors silently return null/empty when something goes wrong. This actor tells you exactly what happened: no captions available, video age-restricted, IP blocked, or video removed, Also scrapes 100% of transcripts from video urls when available publicly
- Built-in proxy management β Many actors fail on free-tier because they use datacenter proxies that YouTube blocks instantly. This actor selects and rotates through best proxies automatically β no configuration needed
- 4 output formats β Most actors only output JSON. This one supports JSON (with timestamps), plain text (for AI/LLM pipelines), SRT (for video editors), and WebVTT (for web players)
- Actual multi-language support β Several competing actors claim language support but default to English only or have broken language parameters. This actor supports priority-based language fallback and YouTube's built-in translation
- Rich metadata included β Many actors return only the transcript. This one includes title, description, keywords, channel name, view count, duration, thumbnails, and more β no need for a separate metadata scraper
- Handles all URL formats β Other actors choke on
youtu.beshort links or/shorts/URLs. This actor handles all standard YouTube URL formats - State persistence for large batches β Long-running jobs survive Apify platform migrations without losing progress. Other actors often timeout or OOM on large batches
Input Configuration
Required Parameters
| Parameter | Type | Description |
|---|---|---|
urls | Array | List of YouTube video URLs to scrape transcripts from |
Optional Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
outputFormat | String | json | Output format: json, text, srt, or vtt |
languages | Array | ["en"] | Language codes in priority order (e.g., ["es", "en", "fr"]). The actor tries each language in order and uses the first available transcript |
translateTo | String | β | Translate the transcript to this language code (e.g., "es" for Spanish). Uses YouTube's built-in translation |
preserveFormatting | Boolean | false | Keep HTML formatting tags (bold, italic, etc.) in transcript text |
Supported URL Formats
| Format | Example |
|---|---|
| Standard watch URL | https://www.youtube.com/watch?v=VIDEO_ID |
| Short URL | https://youtu.be/VIDEO_ID |
| Shorts | https://www.youtube.com/shorts/VIDEO_ID |
Usage Examples
Basic β Extract English Transcript
{"urls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }]}
Plain Text Output (No Timestamps)
Perfect for feeding into AI/LLM pipelines, summarization tools, or text analysis:
{"urls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }],"outputFormat": "text"}
Multi-Language with Fallback
Request Spanish first, fall back to English, then French:
{"urls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }],"languages": ["es", "en", "fr"]}
Translate Transcript
Get the transcript translated to Japanese using YouTube's built-in translation:
{"urls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }],"translateTo": "ja"}
SRT Subtitles for Video Editing
Export transcripts in SRT format for use in video editors like Premiere Pro, DaVinci Resolve, or Final Cut:
{"urls": [{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }],"outputFormat": "srt"}
Batch Processing β Multiple Videos
Process multiple videos in one run. The actor handles state persistence, so even large batches survive migrations:
{"urls": [{ "url": "https://www.youtube.com/watch?v=VIDEO1" },{ "url": "https://www.youtube.com/watch?v=VIDEO2" },{ "url": "https://youtu.be/VIDEO3" },{ "url": "https://www.youtube.com/shorts/VIDEO4" }],"outputFormat": "json","languages": ["en"]}
Output
JSON Format (Default)
Each video produces a dataset item with transcript data and full video metadata:
{"inputUrl": "https://www.youtube.com/watch?v=neabI31ofMc","language": "English (auto-generated)","languageCode": "en","isGenerated": true,"transcript": [{"text": "today I'm going to show you all the","start": 0.04,"duration": 3.359},{"text": "things that can help suppress your","start": 1.36,"duration": 4.64}],"snippetCount": 185,"videoDetails": {"videoId": "neabI31ofMc","title": "BETTER Than Ozempic! STOP Your Cravings","lengthSeconds": "412","keywords": ["appetite suppressant", "natural appetite suppressants", "..."],"channelId": "UC3w193M5tYPJqF0Hi-7U-2g","shortDescription": "Avoiding cravings is not up to sheer willpower...","thumbnail": {"thumbnails": [{ "url": "https://i.ytimg.com/vi_webp/neabI31ofMc/sddefault.webp", "width": 640, "height": 480 }]},"viewCount": "1088282","author": "Dr. Eric Berg DC","isLiveContent": false}}
Text Format
Returns the full transcript as a single plain-text string β no timestamps, no JSON nesting. Ideal for AI processing.
SRT Format
Standard SubRip subtitle format, ready for video editors and subtitle players:
100:00:00,040 --> 00:00:03,399today I'm going to show you all the200:00:01,360 --> 00:00:06,000things that can help suppress your
WebVTT Format
Web Video Text Tracks format for HTML5 video players and web applications:
WEBVTT00:00:00.040 --> 00:00:03.399today I'm going to show you all the00:00:01.360 --> 00:00:06.000things that can help suppress your
Error Handling
The actor provides clear, specific error codes so you always know what happened:
| Error Code | Meaning | What to Do |
|---|---|---|
TranscriptNotFound | No captions/subtitles available for this video in the requested languages | Try different language codes, or check if the video has captions enabled |
URL_NOT_SUPPORTED | The provided URL is not a valid YouTube video URL | Use a standard YouTube video URL format (see Supported URL Formats above) |
VIDEO_ID_NOT_FOUND | Could not extract a video ID from the URL | Check that the URL contains a valid video ID |
AgeRestricted | Video is age-restricted and requires authentication | Age-restricted videos cannot be scraped without login |
VideoUnavailable | Video has been removed or is no longer available | The video no longer exists on YouTube |
IpBlocked | YouTube is blocking requests from this IP | Usually temporary β retry later or the actor's proxy rotation will handle it |
Note: When a video genuinely has no captions (common with music videos, some Shorts, and older content), the actor returns a clear TranscriptNotFound error rather than an empty result.
Proxy Support
The actor includes built-in residential proxy rotation β no configuration needed. This handles YouTube's aggressive IP blocking automatically. You don't need to provide your own proxies.
Language Codes
The actor supports any language code that YouTube supports. Common codes:
| Code | Language | Code | Language |
|---|---|---|---|
en | English | ko | Korean |
es | Spanish | zh | Chinese |
fr | French | ar | Arabic |
de | German | hi | Hindi |
it | Italian | ja | Japanese |
pt | Portuguese | ru | Russian |
Tip: Use the languages parameter with multiple codes to set up automatic fallback. The actor tries each language in order and uses the first transcript it finds.
Integration Examples
n8n / Make.com
This actor works with Apify's official integrations for n8n and Make.com. Use the Run Actor module with the input schema above.
API
Access transcripts programmatically via the YouTube Transcript Scraper API. Results are stored in a dataset that you can export as JSON, CSV, XML, or other formats.
# Start a run via APIcurl -X POST "https://api.apify.com/v2/acts/supreme_coder~youtube-transcript-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"urls": [{ "url": "https://www.youtube.com/watch?v=VIDEO_ID" }],"outputFormat": "text"}'
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_API_TOKEN")run = client.actor("supreme_coder/youtube-transcript-scraper").call(run_input={"urls": [{"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ"}],"outputFormat": "text","languages": ["en"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["transcript"])
Pricing
This scraper costs approximately $0.30 per 1,000 YouTube transcripts. With the Apify Starter plan, you can extract up to ~16,000 transcripts per month.
Limitations
- Videos without captions/subtitles cannot be transcribed (the actor extracts existing captions, not audio)
- Age-restricted videos require authentication and are not currently supported
- Translation availability depends on what YouTube offers for each specific video
- Very long videos (3+ hours) may require higher memory allocation
Is It Legal to Scrape YouTube?
Our scrapers are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our scrapers, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world.
You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. You can also read our blog post on the legality of web scraping.
Related Actors
- YouTube Comment Scraper β Extract comments from YouTube videos
Feedback
We're always working on improving the performance of our actors. If you've got any technical feedback or found a bug, please create an issue on the actor's Issues tab in Apify Console.