YouTube Transcript & Subtitles Scraper - Channels, Playlists avatar

YouTube Transcript & Subtitles Scraper - Channels, Playlists

Pricing

from $2.13 / 1,000 transcripts

Go to Apify Store
YouTube Transcript & Subtitles Scraper - Channels, Playlists

YouTube Transcript & Subtitles Scraper - Channels, Playlists

Extract YouTube transcripts, subtitles and captions in bulk - paste video, channel, or playlist URLs, or search queries. Download SRT, VTT, plain text or timed segments plus video metadata. Only delivered transcripts are charged. No cookies, no API key.

Pricing

from $2.13 / 1,000 transcripts

Rating

0.0

(0)

Developer

Saulius Saulenas

Saulius Saulenas

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

8

Monthly active users

17 days ago

Last modified

Share

YouTube Transcript & Subtitles Scraper — Videos, Channels, Playlists & Search

Extract YouTube transcripts, subtitles and captions in bulk: paste video URLs, channel URLs, playlist URLs, or plain search queries, and get clean transcripts with video metadata — as plain text, timed segments, SRT, or WebVTT subtitle files.

Built for AI/RAG pipelines, content repurposing, media monitoring, and research. No cookies, no login, no YouTube API key.

Why this scraper

  • Bulk-first — channels, playlists, and search queries expand to their videos automatically. One input handles all formats, mixed freely.
  • Reliable on cloud infrastructure — YouTube aggressively bot-checks datacenter IPs. This actor uses a smart proxy ladder with automatic retries; in our benchmark it extracted 200/200 transcripts from a channel in under 2 minutes.
  • You only pay for delivered transcripts — videos without captions, unavailable videos, and fetch failures are never charged. Diagnostic rows tell you exactly what happened.
  • 4 output formats — plain text for LLMs, timed segments for analysis, SRT/VTT for subtitles.
  • Language control — priority list (e.g. ["de", "en"]), manual-vs-auto-generated preference, strict or fallback matching. Every result shows all available caption languages.

Input

{
"videoUrls": [
"https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"https://youtu.be/jNQXAC9IVRw",
"https://www.youtube.com/@mkbhd",
"https://www.youtube.com/playlist?list=PLFgquLnL59alCl_2TQvOiD5Vgm1hCaGSI",
"machine learning tutorial"
],
"languages": ["en"],
"transcriptFormat": "text",
"maxVideosPerSource": 200
}
FieldDefaultDescription
videoUrlsVideo URLs/IDs, channel URLs (@handle or /channel/UC…), playlist URLs, or search queries
languages["en"]Preferred transcript languages, in priority order
transcriptFormattexttext, segments, srt, or vtt
preferAutoGeneratedfalsePrefer auto-generated (ASR) captions over manual ones
fallbackToAnyLanguagetrueUse the best available track if no preferred language exists
includeFailurestrueEmit uncharged diagnostic rows for videos without transcripts
maxVideosPerSource200Cap per channel/playlist/search
maxResults100000Global cap per run (spend guard)

Output

One dataset item per video:

{
"type": "transcript",
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"title": "Rick Astley - Never Gonna Give You Up (Official Video)",
"channelName": "Rick Astley",
"channelId": "UCuAXFkgsw1L7xaCfnd5JJOw",
"lengthSeconds": 213,
"viewCount": 1697651560,
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"transcriptFormat": "text",
"transcript": "We're no strangers to love. You know the rules and so do I…",
"segmentCount": 61,
"wordCount": 488,
"availableLanguages": ["en", "en (auto)", "de-DE", "ja", "pt-BR", "es-419"],
"sourceInput": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"scrapedAt": "2026-08-11T21:35:20.991Z"
}

With transcriptFormat: "segments", transcript is an array of { "text": "…", "start": 1.36, "duration": 1.68 } objects. With srt/vtt it contains a ready-to-save subtitle file.

Videos that can't produce a transcript get a type: "failure" row (free of charge) with an error code such as NO_CAPTIONS, NO_MATCHING_LANGUAGE, or LOGIN_REQUIRED, so your pipeline can handle them explicitly.

Pricing

Pay per event — $2.50 per 1,000 transcripts ($0.0025 per transcript; from $2.13 per 1,000 with paid-plan Store discounts) plus a negligible actor-start fee ($0.00005 per GB of actor memory). Platform usage (compute, proxies, storage) is included — the event price is all you pay.

  • Videos without captions cost $0 — you pay only for transcripts actually delivered.
  • Set Maximum total charge on the run to hard-cap spending; the actor stops cleanly at the cap.
RunYou pay
100-video playlist, 92 have captions$0.23
1,000-video channel backfill~$2.50
20,000-video corpus~$50.00

Use cases

  • AI & RAG pipelines — turn channels into LLM-ready corpora (works great from n8n, Make, LangChain, or the Apify API).
  • Content repurposing — transcripts for blogs, newsletters, and social clips.
  • Media & brand monitoring — schedule runs on channels and search queries.
  • Research — collect interview/lecture transcripts with timestamps for citation.
  • Subtitles & captions — batch-download SRT/VTT subtitle files for re-upload, accessibility, or translation workflows.

Scheduling & API

Run it on a schedule (e.g. daily on a channel URL) from the Schedules tab, or call it from your code via the Apify API — see the API button on this page for ready-made snippets. Results stream to the dataset as they're extracted, so you can consume partial results while a large run is still going.

Works with AI agents & automation tools

This Actor is compatible with the Apify MCP server, so AI agents (Claude, ChatGPT, LangChain, and other MCP clients) can discover and run it autonomously. It also plugs into n8n, Make, and Zapier via the Apify integration — paste the Actor ID sauliusautomatesit/youtube-transcript-scraper into the Apify node and wire transcripts straight into your workflow.

Limitations

  • Transcripts come from YouTube caption tracks (manual or auto-generated). Videos with captions disabled can't be transcribed — they're reported as NO_CAPTIONS and not charged.
  • Live streams in progress and age-restricted videos are generally not extractable.
  • Channel expansion returns the channel's regular uploads (newest first), up to maxVideosPerSource.

FAQ

Do I need a YouTube API key or cookies? No. The actor uses YouTube's public endpoints.

What languages are supported? Anything YouTube has captions for. Set languages to your priority list; availableLanguages on every item shows what exists.

Can I get word-level timestamps? Segment-level timestamps (a few seconds each) via segments, srt, or vtt formats.

What happens on a video that's private/deleted? A free failure row with the error code — never a charge.

Support & feedback

Found a problem or missing a feature? Open an issue on this Actor's Issues tab — issues are answered within 24 hours. If this Actor saves you time, a short review on the Reviews tab helps other people find it.