YouTube Channel Transcript Scraper: Bulk Subtitles avatar

YouTube Channel Transcript Scraper: Bulk Subtitles

Pricing

from $3.50 / 1,000 transcripts

Go to Apify Store
YouTube Channel Transcript Scraper: Bulk Subtitles

YouTube Channel Transcript Scraper: Bulk Subtitles

Turn whole YouTube channels or playlists into text: subtitles for hundreds of videos per run, no API key or browser. Each video returns plain text, timed segments, language, title, channel, views, likes and publish date; auto-translation optional. JSON/CSV, API or scheduled runs.

Pricing

from $3.50 / 1,000 transcripts

Rating

0.0

(0)

Developer

Kyungmin Lee

Kyungmin Lee

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

29 minutes ago

Last modified

Share

What does YouTube Transcript Scraper do?

YouTube Transcript Scraper turns videos, whole channels or playlists into text in bulk: paste @handles, channel or playlist URLs and get the subtitles of hundreds of videos in one run, with no YouTube account, API key or browser. Pick preferred languages, prefer human captions over auto-generated ones, or let YouTube auto-translate.

Each video is one record with videoId, url, title, channel, durationSeconds, viewCount, likeCount, publishDate, language, isAutoGenerated, availableLanguages, text (clean plain text), segments (start, duration, text) and wordCount. Export JSON/CSV, feed the API into RAG or summarisation pipelines, or schedule the Actor to transcribe new uploads as they appear.

Known limitation: datacenter IPs and YouTube bot checks

YouTube increasingly answers "Sign in to confirm you're not a bot" when a recent video is requested from a datacenter IP address — and that includes Apify Proxy's datacenter pool. Older, well-known videos usually still work, but a bulk run over a channel's latest uploads can fail on every video. What this Actor does about it:

  • Failed videos are never charged. A bot-checked, caption-less or unavailable video produces an error item and costs nothing — including the per-video listing fee for channels and playlists, which is settled only after that video's transcript succeeded.
  • Bring your own residential proxies. Under Proxy configuration → Custom proxies paste one or more residential proxy URLs (http://user:pass@host:port). They take precedence over Apify Proxy and are rotated between requests. This is the recommended setup for channel-wide runs.
  • Failure reasons are summarised at the end of the log and in the SUMMARY record of the key-value store (botCheck, noCaptions, unavailable, other), so you can tell an IP block from a video that simply has no subtitles.
  • If YouTube blocks five videos in a row, the run stops early instead of burning through your budget.

Why use YouTube Transcript Scraper?

  • Feed AI and RAG pipelines: turn hours of video into text for summarization, Q&A, embeddings or fine-tuning.
  • Content repurposing: draft blog posts, newsletters, show notes and social snippets from your videos.
  • Research and monitoring: search what competitors, creators or news channels actually say; track mentions of products or topics.
  • Accessibility and localization: get subtitles in the language you need, translated by YouTube on the fly.
  • Bulk workflows: transcribe the latest 200 videos of a channel with one input.

How to get YouTube transcripts

  1. Paste video URLs (watch, youtu.be, Shorts, embed) or IDs — or channel handles/URLs and playlist URLs for bulk extraction.
  2. Set Preferred languages (default en). Turn on Translate to if you want another language.
  3. Click Start. Each video becomes one dataset item with text and segments.
  4. Download as JSON, CSV, Excel or fetch via API; connect to Sheets, Make or your own code.

Input

FieldDefaultDescription
videoUrls["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]Video URLs or IDs
channelUrls@handle, channel URL or UC… ID; newest videos first
channelSourceuploadsuploads (all), videos, shorts, streams
maxVideosPerChannel20Newest N videos per channel
playlistUrlsPublic playlists
maxVideosPerPlaylist50First N videos of each playlist
languages["en"]Preferred language codes, prefix matching (enen-GB)
preferManualtrueHuman subtitles before auto-generated
fallbackToAnyLanguagetrueUse the best available track if preferred languages are missing
translateToTarget language for YouTube auto-translation
includeMetadatatrueViews, likes, publish date (one extra request per video)
includeSegmentstrueTimed segments in addition to plain text
proxyConfigurationApify Proxy onKeep on. For recent videos, add your own residential proxies under Custom proxies — see Known limitation above

Example — transcribe a channel's latest 50 videos in English or Korean:

{
"channelUrls": ["@mkbhd"],
"maxVideosPerChannel": 50,
"languages": ["en", "ko"],
"includeSegments": false
}

Output

One item per video:

{
"type": "transcript",
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"channel": "Rick Astley",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"durationSeconds": 213,
"viewCount": 1800000000,
"likeCount": 19400000,
"publishDate": "2009-10-24",
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"availableLanguages": [{ "code": "en", "name": "English", "kind": "manual", "isTranslatable": true }, { "code": "en", "name": "English (auto-generated)", "kind": "auto", "isTranslatable": true }],
"segmentCount": 61,
"wordCount": 380,
"text": "We're no strangers to love. You know the rules and so do I...",
"segments": [{ "start": 18.6, "duration": 3.2, "text": "We're no strangers to love" }]
}

Videos without captions or that are unavailable are reported as {"type": "error", "videoId": ..., "error": "NoCaptionsAvailable"} items and are not charged.

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Data fields

FieldDescription
videoId, url, title, channel, channelIdVideo identity
durationSeconds, viewCount, likeCount, publishDate, thumbnailUrl, description, keywords, isShort, isLiveMetadata
language, languageName, isAutoGenerated, translatedToWhich subtitle track was used
availableLanguagesAll subtitle tracks YouTube offers for the video
text, wordCountPlain transcript
segments, segmentCount{start, duration, text} in seconds
sourceChannel, sourcePlaylistPresent for videos found through a channel/playlist

How much does it cost to get YouTube transcripts?

Pricing is pay per event: one small fee per transcript fetched and a smaller fee per video listed from a channel or playlist. The listing fee is only charged for videos whose transcript was actually delivered, so failed videos (bot check, no captions, private, unavailable) cost nothing at all. A typical video takes 1–3 seconds, so transcribing 100 videos finishes in a few minutes.

Tips

  • For big channels set includeSegments: false and includeMetadata: false to get compact, fast output.
  • languages: ["en"] matches en, en-US and en-GB. Put several codes in order of preference.
  • Auto-translation (translateTo) is rate-limited by YouTube; the Actor rotates proxies and backs off automatically, but very large translated runs may need to be split.
  • Schedule the Actor with a channel URL and maxVideosPerChannel: 5 to transcribe every new upload automatically.

FAQ and disclaimers

Does it transcribe audio? No. It returns the subtitles YouTube already has (manual or auto-generated). Videos without any captions return an error item.

Why did a video fail with BotCheckRequired? YouTube occasionally challenges datacenter IPs. The Actor retries through a fresh proxy; if it persists, rerun later.

Is it legal? The Actor collects publicly available subtitle data that YouTube serves to any viewer. You are responsible for how you use it and for complying with YouTube's terms and applicable copyright law. This is an unofficial tool, not affiliated with YouTube or Google.

Something broke? YouTube changes its internals regularly. Open an issue in the Issues tab with the video URL and it will be fixed quickly. Custom features (keyword search inside transcripts, chaptering, summaries) are available on request.