🌟 Youtube Transcript Scraper - $0.5 per 1k avatar

🌟 Youtube Transcript Scraper - $0.5 per 1k

Pricing

Pay per event

Go to Apify Store
🌟 Youtube Transcript Scraper - $0.5 per 1k

🌟 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

Supreme Coder

Maintained by Community

Actor stats

8

Bookmarked

137

Total users

35

Monthly active users

2 days ago

Last modified

Categories

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.be short 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

ParameterTypeDescription
urlsArrayList of YouTube video URLs to scrape transcripts from

Optional Parameters

ParameterTypeDefaultDescription
outputFormatStringjsonOutput format: json, text, srt, or vtt
languagesArray["en"]Language codes in priority order (e.g., ["es", "en", "fr"]). The actor tries each language in order and uses the first available transcript
translateToStringβ€”Translate the transcript to this language code (e.g., "es" for Spanish). Uses YouTube's built-in translation
preserveFormattingBooleanfalseKeep HTML formatting tags (bold, italic, etc.) in transcript text

Supported URL Formats

FormatExample
Standard watch URLhttps://www.youtube.com/watch?v=VIDEO_ID
Short URLhttps://youtu.be/VIDEO_ID
Shortshttps://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:

1
00:00:00,040 --> 00:00:03,399
today I'm going to show you all the
2
00:00:01,360 --> 00:00:06,000
things that can help suppress your

WebVTT Format

Web Video Text Tracks format for HTML5 video players and web applications:

WEBVTT
00:00:00.040 --> 00:00:03.399
today I'm going to show you all the
00:00:01.360 --> 00:00:06.000
things that can help suppress your

Error Handling

The actor provides clear, specific error codes so you always know what happened:

Error CodeMeaningWhat to Do
TranscriptNotFoundNo captions/subtitles available for this video in the requested languagesTry different language codes, or check if the video has captions enabled
URL_NOT_SUPPORTEDThe provided URL is not a valid YouTube video URLUse a standard YouTube video URL format (see Supported URL Formats above)
VIDEO_ID_NOT_FOUNDCould not extract a video ID from the URLCheck that the URL contains a valid video ID
AgeRestrictedVideo is age-restricted and requires authenticationAge-restricted videos cannot be scraped without login
VideoUnavailableVideo has been removed or is no longer availableThe video no longer exists on YouTube
IpBlockedYouTube is blocking requests from this IPUsually 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:

CodeLanguageCodeLanguage
enEnglishkoKorean
esSpanishzhChinese
frFrencharArabic
deGermanhiHindi
itItalianjaJapanese
ptPortugueseruRussian

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 API
curl -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 ApifyClient
client = 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

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.

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.