YouTube Channel Transcript Scraper | $2/1K API
Pricing
$2.00 / 1,000 transcript delivereds
YouTube Channel Transcript Scraper | $2/1K API
Get transcripts for every video of a YouTube channel or playlist. Pay only for delivered transcripts — videos without captions are free.
Pricing
$2.00 / 1,000 transcript delivereds
Rating
0.0
(0)
Developer
Jeffrey Inman
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Share
YouTube Channel Transcript Scraper
Turn an entire YouTube channel or playlist into text. Give it a channel URL, an @handle, or a playlist link — it finds the videos and delivers every transcript as clean text, timestamped segments, and SRT. No YouTube API key, no cookies, no browser.
You only pay for transcripts that are actually delivered. Videos without captions, deleted or restricted videos cost $0 and are reported as typed errors instead.
$2 per 1,000 transcripts, and the first ~2,500 a month are effectively free: Apify's free plan includes $5 of monthly credit, and Store Actor charges draw on it. Built for apps that hit YouTube's cloud-server block (LOGIN_REQUIRED / "Sign in to confirm you're not a bot"): the Actor rotates player clients and retries through residential IPs so your server doesn't have to.
Perfect for feeding a whole channel into an LLM, building a searchable archive of a creator's content, podcast/interview mining, or monitoring competitors' content.
Input
{"source": "https://www.youtube.com/@NASA","maxVideos": 100,"language": "en","preferManual": true}
source— any of: channel URL (youtube.com/@handle,/channel/UC…,/c/…,/user/…), a bare@handle, a channel id, or a playlist URL/id.maxVideos— how many of the newest videos to process (1–5000).language— preferred ISO code; falls back to the best available track and tells you which one you got.preferManual— prefer human-made captions over auto-generated ones (default on).
What you get for each video
| Field | Description |
|---|---|
text | Full transcript as one clean string — ready for LLMs, embeddings, search |
segments | [{ start, dur, text }] — timestamped segments in seconds |
srt | Ready-to-save .srt subtitle file |
title, channel, language, isAutoGenerated, availableLanguages | Metadata for filtering |
Videos that can't deliver return { videoId, url, error, errorType } (NO_CAPTIONS, RESTRICTED, NOT_FOUND, …) and are not charged.
Why this one
- Failures are free. A 500-video channel where 80 videos have no captions bills you for 420, not 500.
- Resilient fetching. Automatic retries with rotating sessions when YouTube throttles.
- One call does the whole channel. No need to collect video URLs first.
Need transcripts for a specific list of video URLs instead? Use the companion YouTube Transcript Scraper.
Use it from code
curl -s -X POST "https://api.apify.com/v2/acts/beacondata~youtube-channel-transcript-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"source": "@NASA", "maxVideos": 50}'
Works everywhere Apify does: REST API, scheduled runs, webhooks, the Apify MCP server (AI agents can call it as a tool), n8n, Make, Zapier, LangChain.
Honest limitations
- Private, age-restricted, and members-only videos can't be read (
RESTRICTED— free). - A transcript only exists if the video has captions on YouTube (
NO_CAPTIONS— free). - Selects among the caption tracks the video actually has; no machine translation.
- Enumeration returns a channel's regular uploads (newest first); a playlist is processed in its own order.
Automate it with n8n
A ready-made workflow turns a whole channel into a transcript knowledge base in Google Sheets — one row per video with title, URL and full text. In n8n: Workflow → Import from URL:
https://inmanjeffrey89-cell.github.io/data-tools/workflows/t2-channel-transcripts-sheets.json
No community nodes (plain HTTP Request) — works on n8n Cloud and self-hosted. More ready-made workflows.
Support
Found a bug or need a field added? Open an issue on the Issues tab — it's read daily and answered.