YouTube Transcript API & Scraper – Bulk, Playlists, Channels
Pricing
$5.00 / 1,000 transcript delivereds
YouTube Transcript API & Scraper – Bulk, Playlists, Channels
Bulk YouTube transcripts for AI/RAG from videos, playlists, channels or search: plain text, timestamped segments, SRT/VTT, chapters and token count. Works from servers. $0.005 per delivered transcript; failures free.
Pricing
$5.00 / 1,000 transcript delivereds
Rating
0.0
(0)
Developer
Jacob Calmelat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
YouTube Transcript API & Scraper – Bulk Videos, Playlists, Channels & Search (SRT, VTT, Chapters)
Get YouTube transcripts (captions) in bulk: paste video links, a playlist, a channel or a search, and get one clean row per video with the plain text, timestamped segments, SRT and VTT subtitles, chapters and an approximate LLM token count.
You pay only for delivered transcripts: $0.005 per transcript, no start fee. Videos without captions, private or deleted videos, invalid links and blocked requests are returned as free status rows.
Made by ShepHouse, an AI-operated venture. Built and tested with AI assistance; see "Tested" below for what was actually measured.
What a full run gives you
One row per video. Example (real output from the private test run, long fields shortened):
{"videoId": "iG9CE55wbtY","status": "OK","title": "Do schools kill creativity? | Sir Ken Robinson | TED","channel": "TED","lengthSeconds": 1203,"language": "en","isAutoGenerated": false,"languageFallbackUsed": false,"wordCount": 3170,"approxTokens": 4394,"segmentCount": 427,"text": "Good morning. How are you? (Audience) Good. It's been great, ...","segments": [{"start": 27.103,"dur": 2.575,"text": "Good morning. How are you?"}],"srt": "1\n00:00:27,103 --> 00:00:29,678\nGood morning. How are you?\n...","chapters": [],"charged": true}
Failed rows look like {"videoId": "...", "status": "FAILED", "errorCode": "NO_CAPTIONS", "charged": false}.
Quick start (API / AI agents)
curl -X POST "https://api.apify.com/v2/acts/shephouse~youtube-transcript-scraper-bulk/run-sync-get-dataset-items?maxTotalChargeUsd=0.50" \-H "Authorization: Bearer $APIFY_TOKEN" -H "Content-Type: application/json" \-d '{"startUrls": ["https://www.youtube.com/@TED"], "maxVideosPerSource": 20, "languages": ["en"], "outputFormats": ["text", "srt"]}'
maxTotalChargeUsd caps what a run can cost you (here at most 100 transcripts × $0.005).
Python: youtube-transcript-api-style client
If your code uses youtube-transcript-api and gets RequestBlocked/IpBlocked on a server, our open-source (MIT) client shephouse-yt keeps a familiar fetch() interface and runs this Actor under your Apify account (same price: $0.005 per delivered transcript, failures free):
$pip install git+https://github.com/shephouse-actors/shephouse-yt
from shephouse_yt import YouTubeTranscriptApit = YouTubeTranscriptApi().fetch("PXbVn-f_wuM", languages=["en"]) # needs APIFY_TOKENprint(t[0].text, t[0].start)
Input
- Videos, playlists, channels or searches (one per line):
https://www.youtube.com/watch?v=…, a bare 11-character ID,youtu.be/…, Shorts,https://www.youtube.com/playlist?list=…,@handleor a channel URL (newest uploads first), a search URL, or plain text (treated as a search). - Search queries: optional extra searches.
- Preferred languages: e.g.
en, de. In each language, manual captions win over auto-generated. If none match, the first available track is returned andlanguageFallbackUsedistrue.availableLanguageslists every track. - Output formats: plain text is always included; add segments, SRT and/or VTT.
- Split by chapters: if the description has a chapter list starting at 0:00, each chapter gets its own text.
- Max videos per source / Max delivered transcripts: caps for cost control. Also use Max cost per run in Run options.
Output fields
videoId, url, status, title, channel, channelId, lengthSeconds, language, isAutoGenerated, languageFallbackUsed, availableLanguages, text, charCount, wordCount, approxTokens, segmentCount, segments, srt, vtt, chapters, source, charged. On failures: errorCode, errorMessage.
Error codes (never charged): NO_CAPTIONS, NO_MATCHING_CAPTIONS, VIDEO_UNAVAILABLE, VIDEO_UNPLAYABLE, LOGIN_REQUIRED, EMPTY_CAPTIONS, BLOCKED_BY_YOUTUBE, FETCH_FAILED, INVALID_INPUT, INVALID_OR_EMPTY_SOURCE.
Pricing
- $0.005 per delivered transcript (pay per event). No Actor start fee. Failed or skipped videos are free.
- Example: 1,000 delivered transcripts = $5.00.
- Free Apify plan: each run delivers up to 25 transcripts so you can check the output on your own videos; further videos are skipped and not charged. Paid Apify plans have no such cap, at the same price.
Use with AI agents, n8n, Make and the API
Call it via the Apify API, the official Apify integrations (n8n, Make, Zapier) or Apify's MCP server. approxTokens and chapters help with chunking for RAG. approxTokens is an estimate (about 4 characters per token for Latin script), not an exact tokenizer count.
Tested
Private test runs on Apify (2026-10-24 PT), before publication:
- Final QA: 2 runs, 48 inputs across 6 channels, a playlist, URL and plain-text searches (English, Spanish, German, Japanese queries), direct links and negative cases. 41 of 41 caption-bearing videos delivered; charged events matched delivered rows exactly (25 + 16); every failure was free.
- Correct free rows for: videos without captions (4), an unavailable ID, an invalid link, a non-existent playlist and a non-existent channel.
- Long videos up to 5.3 hours: the last caption timestamp ends within 30 s of the video length. Manual and auto captions, language preference order and auto fallback were checked; SRT/VTT cue counts match the segments.
- One temporary read timeout was retried automatically and recovered. This is a small sample, not a reliability guarantee: YouTube changes can temporarily break transcript extraction.
Limits and notes
- Only existing captions (manual or auto-generated) are returned; there is no speech-to-text for videos without captions.
- Age-restricted, private and members-only videos are not accessible.
- Uses Apify residential proxy internally; the cost is included in the per-transcript price.
- Use transcripts in line with YouTube's Terms and applicable copyright law.
Changelog
- 0.1: first release (validated in private QA, see Tested).