YouTube Transcript Scraper — Bulk & LLM-Ready avatar

YouTube Transcript Scraper — Bulk & LLM-Ready

Pricing

from $0.002 / run start

Go to Apify Store
YouTube Transcript Scraper — Bulk & LLM-Ready

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

Franclim Diogo

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

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:

  1. Bulk ingestion — point it at @channel and pull the latest 10, 50 or 500 videos in a single run.
  2. Feeding LLMs — the chunked output 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

FieldDescription
videoUrlsIndividual videos: watch URLs, youtu.be links, Shorts, embeds, or raw 11-char IDs
channelUrlA whole channel or playlist: @handle, /channel/UC..., /user/..., playlist URL
videosPerChannelHow many recent videos to pull (default 10, up to 500)
languagesPriority list, e.g. ["en", "pt"]. Manual captions preferred, auto-generated as fallback
outputFormatchunked · json · text · srt · vtt
chunkTokensTarget chunk size (default 500)
chunkOverlapSegmentsRepeat N segments across chunk boundaries to preserve context
requestDelaySecondsPacing between videos (default 1s — YouTube rate-limits bursts)
proxyConfigurationOptional 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: false with a clear reason — you aren't charged for them.
  • Auto-generated captions have errors. Every row tells you via is_auto_generated whether 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.