YouTube Transcript Scraper: Channels, Captions & Subtitles avatar

YouTube Transcript Scraper: Channels, Captions & Subtitles

Pricing

from $2.40 / 1,000 transcripts

Go to Apify Store
YouTube Transcript Scraper: Channels, Captions & Subtitles

YouTube Transcript Scraper: Channels, Captions & Subtitles

Get the transcript of any YouTube video, Short, channel, playlist or search results as text, timestamped segments, SRT, VTT or Markdown, in any available language, with title, channel, duration and views. Videos without captions can be transcribed with AI (Whisper). Pay per transcript.

Pricing

from $2.40 / 1,000 transcripts

Rating

0.0

(0)

Developer

Fernando Guiraud

Fernando Guiraud

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

3

Monthly active users

4 days ago

Last modified

Share

What does YouTube Transcript Scraper do?

YouTube Transcript Scraper gets the transcript of any YouTube video or Short as plain text, timestamped segments, SRT or VTT subtitles, Markdown with timestamps, or RAG-ready chunks, in any language the video has captions for. It returns human captions when they exist and YouTube's auto-generated captions otherwise, plus the video's title, channel, duration, views, keywords and description.

Paste a list of video links or IDs, whole channels and playlists (@handle), or a YouTube search ("python tutorial", with date, length and sort filters), and get clean transcripts in seconds, with no YouTube API key. Videos without captions, private or removed videos are never billed, and with aiFallback on, videos without any captions are transcribed with AI (open-source Whisper) instead of coming back empty.

It runs on the Apify platform, so you also get an API, scheduling, integrations (Google Sheets, Make, Zapier, n8n, Slack) and access for AI agents through the Apify MCP server.

Sample output: real rows from a run of this Actor

Independent tool, not affiliated with or endorsed by the platforms it reads. YouTube is a trademark of Google LLC; they are named only to describe the public data this Actor collects. It only accesses publicly available content.

Why use it?

  • 🤖 AI and RAG pipelines: feed video content to ChatGPT, Claude or your vector database, already split into chunks with timestamps.
  • ✍️ Content repurposing: turn videos into blog posts, newsletters, social posts and show notes.
  • 🔍 Research and analysis: analyse what competitors, creators or experts say across hundreds of videos.
  • 🎓 Study and accessibility: searchable text of lectures and tutorials.
  • 🎬 Subtitles: download SRT or VTT files ready for video editors.
  • 📺 Whole channels on a schedule: give @handle with Only new videos and every run returns only what the channel uploaded since the last one.
  • 🔎 Search YouTube by keyword: transcripts of the top videos for any topic, in YouTube's order, or a daily alert with the new videos about it.

How to get the transcript of a YouTube video

  1. Click Try for free.
  2. Paste YouTube links (one per line): youtube.com/watch?v=..., youtu.be/..., Shorts and live links all work. For a whole channel or playlist, use Channels or playlists (@TED, youtube.com/@TED, a playlist link).
  3. Optionally set the preferred languages (en, es, de...) and the output formats.
  4. Click Start.
  5. Download the transcripts as JSON, CSV or Excel, or copy them from the Transcripts view.

Input

FieldDescriptionDefault
videosVideo links or IDsvideos, channels or searchQueries
channelsChannels (@handle, /channel/UC..., /c/name) or playlist links; their newest videos are processed—
maxVideosPerChannelNewest videos taken from each channel or playlist (up to 2,000)10
searchQueriesYouTube searches (python tutorial); the results' transcripts are returned in YouTube's order—
maxVideosPerSearchResults taken from each search (up to 500)10
sortBySearch order: relevance, date, views, ratingrelevance
uploadDateSearch period: any, hour, today, week, month, yearany
videoDurationSearch length: any, short (< 4 min), medium (4-20 min), long (> 20 min)any
onlyNewVideosSkip videos of these channels, playlists and searches that earlier runs already processedfalse
languagesPreferred caption languages, in order (es also matches es-419)the video's own
fallbackToOtherLanguageReturn another language when the preferred one does not existtrue
preferManualCaptionsHuman captions before auto-generated onestrue
outputstext, segments, srt, vtt, markdown, chunkstext, segments
includeMetadataChannel ID, duration, views, keywords, descriptiontrue
aiFallbackTranscribe videos that have no captions with AI (Whisper), $0.010 per minutefalse
maxAiMinutesPerVideoLonger videos without captions are not transcribed with AI (not billed)60
{
"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ", "https://youtu.be/arj7oStGLkU"],
"languages": ["en"],
"outputs": ["text", "segments", "srt"]
}

A whole channel, every week, paying only for new uploads (listing the channel is free):

{
"channels": ["@TED"],
"maxVideosPerChannel": 20,
"onlyNewVideos": true,
"outputs": ["text"]
}

Output

One record per video. You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

{
"videoId": "dQw4w9WgXcQ",
"url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
"status": "ok",
"title": "Rick Astley - Never Gonna Give You Up (Official Video) (4K Remaster)",
"channel": "Rick Astley",
"durationSeconds": 213,
"viewCount": 1820283482,
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"availableLanguages": [{ "languageCode": "en", "languageName": "English", "isAutoGenerated": false }],
"text": "♪ We're no strangers to love ♪ ♪ You know the rules and so do I ♪ ...",
"segments": [{ "start": 18.64, "end": 21.88, "text": "♪ We're no strangers to love ♪" }],
"wordCount": 487
}

Data fields

FieldDescription
textThe transcript as paragraphs
segmentsLines with start and end in seconds
srt, vttSubtitle files
markdownParagraphs with [HH:MM:SS] timestamps, ready for LLMs and notes
chunks~1,000-character pieces with start/end time and a token estimate, for RAG
language, isAutoGeneratedLanguage of the transcript and whether it was generated automatically
transcriptSourcecaptions (YouTube captions) or ai-whisper (transcribed with AI, see aiMinutesBilled)
availableLanguagesEvery caption track of the video
title, channel, durationSeconds, viewCount, keywords, descriptionVideo details
foundInThe channel or playlist the video was listed from
searchQuery, searchRankThe search the video was found with, and its position in the results (1 = first)
statusok (billed), no-captions, unavailable or error (not billed)

How much does it cost to scrape YouTube transcripts?

EventPrice
Run start (per GB of memory, default 256 MB)$0.001
Transcript (one video, all formats, with video details)$0.003
AI transcription minute (only with aiFallback, videos without captions)$0.010

1,000 transcripts cost $3, residential proxies included. With aiFallback, a video without captions is billed per started minute of audio instead of the transcript price: a 2-minute video costs $0.02, a 10-minute one $0.10. Runs with aiFallback on use 2 GB of memory (run start $0.002). Videos without captions, private or removed videos and failures are never billed. Set Max cost per run and the Actor stops cleanly at that limit.

Videos without captions: AI transcription

Some videos have no captions at all: many Shorts, very new uploads, and videos in languages YouTube does not caption automatically. Turn on aiFallback and the Actor downloads only the audio of those videos and transcribes it with open-source Whisper (99 languages). Videos with captions keep using them and keep their normal price.

{ "videos": ["https://www.youtube.com/watch?v=QJ6xYVNVDoU"], "aiFallback": true, "languages": ["sw"] }
  • Results say where the text comes from: transcriptSource is captions or ai-whisper, and aiMinutesBilled shows the minutes billed.
  • Quality: very good in widely spoken languages (English, Spanish, Portuguese, French, German, Italian...), weaker in languages with little training data (for example Swahili or Yoruba). If you know the language, put it first in languages: the AI then skips language detection, which is unreliable on short clips.
  • Videos longer than maxAiMinutesPerVideo (60 by default), music without speech and failed downloads are not billed.
  • Off by default, so nobody pays for AI by surprise.

Use it with AI agents (MCP)

Add https://mcp.apify.com?tools=fguiraud/youtube-transcript-scraper to Claude, Cursor or any MCP client and ask:

  • "Summarize this video and list the key takeaways: https://youtu.be/arj7oStGLkU"
  • "Get the transcripts of these 10 videos and tell me what each creator recommends."
  • "Write a blog post based on this YouTube tutorial."

Smallest useful input for an agent: {"videos": ["https://youtu.be/arj7oStGLkU"], "outputs": ["text"]}.

Agent-friendly input: common field names such as url, urls, startUrls, query or keywords are accepted, and an empty input runs a small sample from the input form (with a note in the results) instead of failing.

Search YouTube by keyword

Transcripts of the top YouTube results for a search (searching is free; you pay per transcript):

{
"searchQueries": ["how to use claude code"],
"maxVideosPerSearch": 3,
"outputs": ["text"]
}

Real result (2026-10-08, text shortened):

{
"videoId": "3aKVArutiIU",
"title": "Learn 80% of Claude Code in 10 Minutes (2026 Tutorial)",
"channel": "Sajjaad Khader",
"searchQuery": "how to use claude code",
"searchRank": 2,
"language": "en",
"isAutoGenerated": true,
"durationSeconds": 596,
"viewCount": 341374,
"text": "I have been obsessed with Claude Code for the last eight months because this is the tool that will actually make you a top 1% software engineer...",
"wordCount": 2056,
"transcriptSource": "captions"
}

A daily alert with the new videos about a topic: "searchQueries": ["nvidia earnings"], "sortBy": "date", "uploadDate": "today", "onlyNewVideos": true, and a schedule.

Tips

  • For AI summaries of long videos, choose markdown or chunks: timestamps let the model cite the exact moment.
  • Choose only the outputs you need: smaller results are faster to download.
  • languages: ["es", "en"] returns Spanish when it exists and English otherwise.
  • Channels: videos come newest first, Shorts and past live streams included. With onlyNewVideos, a video that had no captions yet is not retried in later runs.
  • Searches: only regular videos are returned (no channels, playlists or ads). Results follow YouTube's order for an English US visitor, so they can differ slightly from what you see signed in.
  • Long runs are safe: if the platform restarts the run, finished videos are skipped and never charged twice.

FAQ and limitations

  • Videos without captions: some videos have neither human nor automatic captions (many Shorts, music without lyrics, very new uploads, some live streams). They come back with status: "no-captions" and are not billed, unless you turn on aiFallback to transcribe them with AI.
  • Age-restricted, private and members-only videos cannot be read without signing in; they come back as unavailable and are not billed.
  • Translation into languages the video has no captions for is not included.
  • Is it legal? The Actor reads the captions YouTube shows publicly on each video. Respect the rights of the video creators when you reuse their content.
  • Found a problem or need a feature? Open an issue on the Issues tab. Replies within 48 hours.
  • Did it save you time? A short review on the Reviews tab helps other people find this Actor.