YouTube Transcript API - RAG Chapters, Summary & Chunks
Pricing
from $7.00 / 1,000 transcript extracteds
YouTube Transcript API - RAG Chapters, Summary & Chunks
Turn any YouTube video, playlist, or channel into RAG-ready data: clean transcript, timestamped segments, AI chapters, summary, key quotes, and embeddings-ready chunks. Built for AI agents and RAG pipelines.
Pricing
from $7.00 / 1,000 transcript extracteds
Rating
5.0
(1)
Developer
WebDataLabs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Turn any YouTube video, playlist, or channel into RAG-ready data in one call — a clean transcript, timestamped segments, AI-generated chapters and summary, key quotes, and embeddings-ready chunks. Built for AI agents, RAG pipelines, researchers, and content teams.
Most YouTube transcript scrapers stop at raw captions. This one ships the structured layer your vector database and LLM actually need — chapters, summaries, key quotes, and token-bounded chunks with timestamps — so you can go straight from a URL to a knowledge base.
🆚 Why choose this YouTube Transcript API?
| Feature | This Actor | Typical transcript scrapers |
|---|---|---|
| Clean transcript (filler/sound-cues removed) | ✅ | ⚠️ Sometimes |
| Timestamped segments | ✅ | ✅ |
| AI chapters (timestamped) | ✅ | ❌ |
| AI summary | ✅ | ❌ |
| Key quotes (timestamped) | ✅ | ❌ |
| Embeddings-ready chunks (token-bounded + timestamps) | ✅ | ❌ |
| Video, playlist & channel input (auto-detected) | ✅ | ⚠️ Often video-only |
| SRT / VTT / JSON / plain-text / chunks output | ✅ | ⚠️ Limited |
| 100+ languages | ✅ | ⚠️ Varies |
| MCP-ready for AI agents | ✅ | ❌ |
✨ Key features
- 🧱 Embeddings-ready chunks — deterministic, token-bounded (cl100k_base) chunks, each carrying
startTime/endTimeso retrieval links back to the exact moment in the video. - 🤖 AI structuring — chapters, a concise summary, and timestamped key quotes generated with a fast, low-cost model.
- 🔗 Any URL — paste a video, a playlist, or a whole channel; playlists and channels auto-expand into their videos (capped by
maxVideos). - 🧹 LLM-optimized transcript — sound cues (
[Music],[Applause]) and speaker markers stripped for cleaner embeddings. - 🌍 100+ languages — pick a preferred caption language; falls back to the best available track and reports the actual language used.
- 📄 Multiple formats —
text,json(timestamped segments),srt,vtt, andchunks— choose what you need. - 🔁 Incremental mode — skip already-processed videos on scheduled re-runs.
- ⚡ Fast & lightweight — pure HTTP extraction (no browser), with residential proxy support for reliability.
🎯 Use cases
RAG pipelines & knowledge bases
Ingest a creator's entire channel into a vector store with chunks that are already sized and timestamped.
{"urls": ["https://www.youtube.com/@channelname"],"outputFormats": ["chunks", "text"],"chunkSize": 512,"chunkOverlap": 64,"maxVideos": 100}
AI agents (MCP)
Give an agent a tool that returns chunked, timestamped transcript context for any video.
{"urls": ["https://www.youtube.com/watch?v=VIDEO_ID"],"includeChapters": true,"includeSummary": true,"includeKeyQuotes": true}
Research & content repurposing
Searchable archives, citable quotes with timestamps, and chapter outlines for long talks and podcasts.
{"urls": ["https://www.youtube.com/playlist?list=PLAYLIST_ID"],"outputFormats": ["text", "srt"],"includeSummary": true}
🚀 Quick start
- Input — add one or more YouTube URLs (video, playlist, or channel) or bare video IDs.
- Run — the actor extracts captions, structures them with AI, and chunks them.
- Export — pull results as JSON/CSV via the API or dataset, or feed the chunks straight into your embedding pipeline.
⚙️ Input
| Field | Type | Description |
|---|---|---|
urls (required) | array | Video / playlist / channel URLs, or bare 11-char video IDs |
language | string | Preferred caption language (ISO code, default en); falls back to the best available |
outputFormats | array | Any of text, json, srt, vtt, chunks (default text, json, chunks) |
includeChapters | boolean | Generate timestamped chapters with AI (default true) |
includeSummary | boolean | Generate a concise summary with AI (default true) |
includeKeyQuotes | boolean | Extract timestamped key quotes with AI (default true) |
chunkSize | integer | Target tokens per chunk (default 512) |
chunkOverlap | integer | Token overlap between chunks (default 64) |
maxVideos | integer | Cap on videos per playlist/channel (default 50) |
incrementalMode | boolean | Skip videos processed in previous runs (default false) |
proxyConfiguration | object | Proxy settings — residential recommended (default) |
📤 Output
One flat record per video:
{"videoId": "UF8uR6Z6KLc","url": "https://www.youtube.com/watch?v=UF8uR6Z6KLc","status": "ok","title": "Steve Jobs' 2005 Stanford Commencement Address","channel": { "id": "UC-EnprmCZ3OXyAoG7vjVNCA", "name": "Stanford", "url": "https://www.youtube.com/channel/UC-EnprmCZ3OXyAoG7vjVNCA" },"duration": 904,"views": 48682246,"publishedAt": "Mar 8, 2008","language": "en","transcript": "Thank you. I'm honored to be with you today...","segments": [{ "text": "Thank you.", "start": 8.96, "end": 10.2 }],"chapters": [{ "title": "Connecting the Dots", "start": 60.76, "end": 390.84 }],"summary": "Steve Jobs shares three stories about life, loss, and following your intuition...","keyQuotes": [{ "quote": "Stay hungry, stay foolish.", "timestamp": 841.68 }],"chunks": [{ "text": "Thank you. I'm honored...", "startTime": 8.96, "endTime": 195.56, "tokens": 499 }],"srt": null,"vtt": null,"scrapedAt": "2026-06-29T17:36:59.000Z","schemaVersion": "1.0"}
Field notes
status—ok,no_transcript(captions disabled / none available), orerror(video unavailable).statusDetailexplains non-okresults.transcript/segments/srt/vttare populated only when their format is selected inoutputFormats.chapters/summary/keyQuotesare populated when the matching AI toggle is on.chunkscarrystartTime/endTimeand an approximatetokenscount (cl100k_base, the OpenAI embeddings tokenizer).
💰 Pricing (pay-per-event)
transcript-extracted— charged per video that yields a transcript.ai-structured— charged per video when chapters/summary/quotes are generated.
You pay only for videos that produce output — caption-less or unavailable videos are reported and not billed. See current per-event prices in the Apify Console when you start a run.
🔍 How it works
The actor extracts captions over plain HTTP using maintained innertube clients and adds the structured layer on top — no browser, so it's fast and cheap. YouTube intermittently blocks datacenter IPs, so the actor routes its requests through residential proxies by default for reliable results.
❓ FAQ
Which languages are supported? 100+. Set language to your preferred ISO code; if that track isn't available the actor uses the best alternative and reports the actual language in the language field.
Why do some videos return no_transcript? The uploader disabled captions or no caption track exists. These are reported (not billed).
Does it need proxies? Residential proxies are the default and recommended — YouTube throttles datacenter IPs, so direct/datacenter runs are unreliable.
Can it process an entire channel or playlist? Yes — paste the channel or playlist URL and it auto-expands into individual videos, capped by maxVideos.
Is it good for RAG / embeddings? That's the point: chunks are token-bounded and timestamped, and transcript is cleaned of filler so embeddings stay focused.
Is this legal? It processes public, non-personal video captions. YouTube's Terms discourage scraping; use responsibly and at your own discretion.
Can AI agents call it? Yes — it's exposed via the Apify MCP server, so agents can discover and run it as a tool inside RAG workflows.
🔗 Related actors
- YouTube Comments Harvester — scrape and analyze YouTube comments
- YouTube Shorts Scraper — extract Shorts metadata and analytics
- Reddit Scraper Pro — posts, comments, and sentiment analysis
Roadmap: caption translation (targetLanguage), Whisper speech-to-text fallback for caption-less videos, and TikTok + podcast support.