YouTube Transcript Scraper — Bulk & LLM-Ready
Pricing
from $0.002 / run start
YouTube Transcript Scraper — Bulk & LLM-Ready
Extract YouTube transcripts in bulk from videos, playlists or entire channels. Output as JSON, text, SRT, VTT or LLM-ready chunks with timestamps.
Pricing
from $0.002 / run start
Rating
0.0
(0)
Developer
Franclim Diogo
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Extract YouTube transcripts at scale — a single video, a playlist, or an entire channel in one run — and get them back in the format your pipeline actually wants: JSON segments, plain text, SRT, VTT, or LLM-ready chunks with timestamps.
No API key. No YouTube login. Feed entire channels to your AI pipeline in one run.
Why this Actor
Most transcript scrapers take one video URL at a time and hand you a wall of text. This one is built for the two things people actually do with transcripts in 2026:
- Bulk ingestion — point it at
@channeland pull the latest 10, 50 or 500 videos in a single run. - Feeding LLMs — the
chunkedoutput splits transcripts into token-sized blocks that never cut a caption mid-sentence, each carrying its own start/end timestamp. Drop them straight into a vector store and your citations still point at the right moment in the video.
Plus: it's cheaper per transcript than the popular alternatives, and you're only charged for transcripts actually extracted — failures are free.
Input
| Field | Description |
|---|---|
videoUrls | Individual videos: watch URLs, youtu.be links, Shorts, embeds, or raw 11-char IDs |
channelUrl | A whole channel or playlist: @handle, /channel/UC..., /user/..., playlist URL |
videosPerChannel | How many recent videos to pull (default 10, up to 500) |
languages | Priority list, e.g. ["en", "pt"]. Manual captions preferred, auto-generated as fallback |
outputFormat | chunked · json · text · srt · vtt |
chunkTokens | Target chunk size (default 500) |
chunkOverlapSegments | Repeat N segments across chunk boundaries to preserve context |
requestDelaySeconds | Pacing between videos (default 1s — YouTube rate-limits bursts) |
proxyConfiguration | Optional Apify Proxy if you hit rate limits |
Output
One row per video: title, channel, channel_id, duration_seconds, upload_date, view_count, language, is_auto_generated, word_count, segment_count, plus the transcript itself (segments, transcript, or chunks depending on format).
Chunked rows look like this:
{"chunk_index": 0,"start": 12.34,"end": 78.9,"timestamp": "00:00:12","estimated_tokens": 487,"text": "..."}
Failed videos still appear as rows with success: false and an error — nothing is silently dropped.
Use cases
- RAG pipelines — index whole channels for semantic search with timestamp-accurate citations
- Content research — analyse a competitor's or an expert's entire back catalogue
- Subtitles — bulk SRT/VTT export for editing or re-upload
- Summarisation at scale — feed chunked transcripts to any LLM without preprocessing
Honest notes
- Not every video has captions. Videos with captions disabled return
success: falsewith a clear reason — you aren't charged for them. - Auto-generated captions have errors. Every row tells you via
is_auto_generatedwhether the text was human-written or machine-transcribed. Don't treat ASR output as a verbatim quote. - Use a proxy for reliable runs. YouTube blocks cloud datacenter IPs with "Sign in to confirm you're not a bot". Measured success on Apify: 100% with residential proxy, ~50% with datacenter, ~25% with none. Residential is the default recommendation — and because failed attempts still burn compute, it also works out cheaper per delivered transcript.
- YouTube rate-limits bursts. Videos are fetched concurrently with staggered starts and exponential backoff on HTTP 429, and the Actor rotates through several YouTube player clients when one is blocked or returns no captions.
- Token counts are estimates (~4 characters per token). Close enough for chunk sizing; use your model's tokenizer if you need exact counts.
- Transcripts are YouTube's public caption data. Respect the copyright of the underlying content.
Pricing
Pay-per-event: a tiny run fee plus a per-transcript fee charged only on success. Videos without captions cost you nothing.