YouTube Bulk Video Transcript avatar

YouTube Bulk Video Transcript

Pricing

from $8.00 / 1,000 transcripts

Go to Apify Store
YouTube Bulk Video Transcript

YouTube Bulk Video Transcript

Scrapes transcripts for videos on a YouTube channel.

Pricing

from $8.00 / 1,000 transcripts

Rating

0.0

(0)

Developer

electra bot

electra bot

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

YouTube Channel Transcript Scraper

Turn a whole YouTube channel or playlist into transcripts in one run. Paste a channel URL — get the full transcript of every video with timestamps, language info, and video metadata, as JSON, CSV, or Excel. Up to 500 videos per run, no browser under the hood.

Pay per result — you're only charged for transcripts actually delivered. Videos without captions are reported, skipped, and never charged.


What can I use it for?

  • AI knowledge bases & RAG — ingest a creator's or competitor's entire channel as clean text; the transcript field is one plain-text string per video, ready for embeddings.
  • Content research at scale — analyze what a channel talks about across hundreds of videos.
  • Repurposing pipelines — channel → transcripts → articles, newsletters, show notes.
  • Trend & brand monitoring — track what's said about your product across a channel's history.
  • Fine-tuning datasets — build speech/style corpora from specific creators.

Input

FieldRequiredDescription
Channel or playlist URL@handle, /channel/UC…, /c/…, /user/…, or any playlist link. Newest videos first.
Max videos1–500 (default 30). Each successful transcript = one billable result.
Preferred languageLanguage code (en, de, pt-BR…). Falls back to English, then the first available track. Human subtitles beat auto-captions.
Proxy configurationAutomatic by default: cheap datacenter proxy first, auto-escalating to RESIDENTIAL only if YouTube blocks it.

Output

One dataset record per video — same shape as our YouTube Transcript Scraper, plus the source channelUrl:

{
"videoId": "jNQXAC9IVRw",
"videoUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"channelUrl": "https://www.youtube.com/@jawed",
"title": "Me at the zoo",
"author": "jawed",
"lengthSeconds": 19,
"viewCount": 398776873,
"language": "English",
"languageCode": "en",
"isAutoGenerated": false,
"availableLanguages": ["de", "en"],
"transcript": "All right, so here we are, in front of the elephants ...",
"segmentCount": 6,
"segments": [
{ "start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants" }
]
}

Why this scraper is reliable

  • No browser — channel listing via flat extraction and transcripts via pure HTTP, built on engines whose maintainers track YouTube's changes daily. Fast cold starts, low cost.
  • Block-aware with automatic escalation — if YouTube blocks the cheap proxy tier, the scraper instantly retries through a residential proxy, then a fresh session, before ever giving up.
  • Batch-safe checkpoints — transcripts are saved incrementally; migrations, restarts, or blocks never lose finished work, and a resurrected run resumes without re-charging.
  • Honest run statuses — captionless videos are reported per video in the SUMMARY (and not charged); a run with zero transcripts is marked Failed, never a silent empty dataset.
  • Smart language fallback — preferred language → English → first available; manual subtitles preferred over auto-generated at every step.

Tips & limits

  • Works with public videos that have captions (manual or auto-generated). Members-only, private, or caption-less videos are skipped and reported — never charged.
  • A 100-video channel takes roughly 3–5 minutes; 500 videos fit comfortably in one run.
  • For hand-picked video lists instead of whole channels, use our YouTube Transcript Scraper.

Use it from code

Python (pip install apify-client):

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("electrabot.info/youtube-bulk-video-transcript").call(
run_input={"channelUrl": "https://www.youtube.com/@mkbhd", "maxVideos": 50}
)
docs = [item["transcript"] for item in client.dataset(run["defaultDatasetId"]).iterate_items()]

LangChain / LlamaIndex: both ship Apify loaders — point them at this actor and map transcript to your document text. One channel URL becomes a ready-to-embed corpus of everything the creator has said.

n8n / Make / Zapier: one HTTP node — POST https://api.apify.com/v2/acts/electrabot.info~youtube-bulk-video-transcript/run-sync-get-dataset-items?token=... returns all transcripts as the response body.

FAQ

Does it include Shorts and live streams? It processes the channel's main videos tab by default. Paste a /shorts or /streams tab URL to target those instead; ended streams with processed captions work.

Does it translate transcripts? No — it fetches original caption tracks. Choose which via the language preference.

Why did some videos fail? Most commonly: no captions available. Every failed video is listed in the run's SUMMARY with the reason. Failed videos are never charged.

Is scraping transcripts legal? This actor only accesses publicly available caption data. You are responsible for complying with applicable laws and YouTube's Terms of Service.


Disclaimer

This is an unofficial tool. It is not affiliated with, endorsed by, sponsored by, or in any way officially connected to YouTube or Google LLC. "YouTube" and all related names, marks, and logos are trademarks of their respective owners and are used here for descriptive purposes only.

This actor only accesses publicly available information. You are responsible for ensuring your use complies with applicable laws, YouTube's Terms of Service, and any applicable robots and rate-limiting rules. Use it ethically and at your own risk.