YouTube Transcript API & Scraper – Bulk, Playlists, Channels avatar

YouTube Transcript API & Scraper – Bulk, Playlists, Channels

Pricing

$5.00 / 1,000 transcript delivereds

Go to Apify Store
YouTube Transcript API & Scraper – Bulk, Playlists, Channels

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

Jacob Calmelat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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 YouTubeTranscriptApi
t = YouTubeTranscriptApi().fetch("PXbVn-f_wuM", languages=["en"]) # needs APIFY_TOKEN
print(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=…, @handle or 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 and languageFallbackUsed is true. availableLanguages lists 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).