YouTube transcripts

YouTube Transcript Scraper

Paste hundreds of YouTube links, or a channel, and one run returns every transcript with timestamps, the video's title, channel and stats. Optional SRT and VTT subtitle text. No YouTube API key, $0.90 per 1,000 transcripts.

Built for many videos, not one

Most YouTube transcript tools take one video per call. That is fine for a quick lookup and slow for a channel archive, a course library or a research set, where you end up writing the loop, the retries and the merge step yourself.

This actor takes a list. Give it video URLs, Shorts, video IDs or a channel, and you get one dataset row per video when the run finishes.

  • Many video URLs, Shorts links or 11-character video IDs in one run
  • A whole channel: the newest 1 to 200 videos per channel, or its Shorts tab
  • Creator captions first, then YouTube's auto-generated captions
  • Timestamped segments with start and end times in seconds
  • Optional SRT and WebVTT subtitle text on every row
  • Title, channel, duration, publish date, views, likes and comments
  • No YouTube API key, no Google Cloud project, no quota
{
  "url": "https://www.youtube.com/watch?v=...",
  "title": "Trimming a bowl, start to finish",
  "author": "@claystudio",
  "language": "en",
  "transcriptSource": "subtitles",
  "wordCount": 1184,
  "transcript": "Today we are trimming a bowl...",
  "segments": [
    {"start": 0.0, "end": 3.1,
     "text": "Today we are trimming a bowl"}
  ],
  "srt": "1\n00:00:00,000 --> 00:00:03,100\n...",
  "status": "success",
  "charged": true
}

Example: what you type and what you get

Made-up channel, real shape. This is what a small run looks like.

You ask for

  • A YouTube channel link, and how many of its newest videos to read

You get back

  • What was said "Today we are trimming a bowl on the wheel. First, check the foot ring..."
  • Where it came from the channel's own English captions
  • Also included title, publish date, views and likes · timestamps for every line · optional SRT or VTT

Use a different actor when

How to scrape YouTube transcripts in bulk

  1. Add videos or channels. Paste video URLs, Shorts links or IDs, add channel URLs such as youtube.com/@channel, or both.
  2. Set the options. Pick how many of each channel's newest videos to read, a caption language if you want one, and whether to add SRT or VTT.
  3. Run and export. Download JSON, CSV or Excel, or read the dataset from the API. Each row says whether it was charged.

Input for a whole channel (paste into the JSON tab)

{
  "profiles": ["https://www.youtube.com/@yourchannel"],
  "maxVideosPerProfile": 200,
  "postedWithinDays": 365,
  "includeSegments": true,
  "outputFormats": ["srt"]
}

Call it from Python

# pip install apify-client
from apify_client import ApifyClient

client = ApifyClient("your-apify-token")
run = client.actor("scrape-lads/youtube-transcript-scraper").call(run_input={
    "urls": [
        "https://www.youtube.com/watch?v=jNQXAC9IVRw",
        "https://www.youtube.com/shorts/VIDEO_ID",
    ],
    "includeSegments": True,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["status"], item.get("title"), item.get("wordCount"))

Filters that save money

  • Only videos from the last N days and minimum views skip channel videos before anything is charged.
  • Caption language picks the track you want, such as en, es or fr. Empty means the original spoken language, and auto-dubbed tracks are skipped.
  • Speech-to-text budget caps how many audio minutes one run can transcribe.

Pricing

Pay per transcript. Private, deleted, failed and silent videos are not charged.

EventWhen it is chargedPrice
Actor startOnce per run$0.003
Transcript from captionsA video read from YouTube's captions (most videos)$0.0009
Transcript by speech-to-textA video without captions, first minute included$0.0025
Extra speech-to-text minuteEach started minute beyond the first$0.0025

In practice: $0.90 per 1,000 captioned videos. The newest 200 videos of a captioned channel cost about $0.18 in one run. Prices are the Apify free-plan rates as of November 2026; paid Apify plans get up to 20% off. Check the listing for current pricing.

A pintostudio alternative: how the two compare

The most used actor in the Apify Store's results for "youtube transcript" is YouTube Transcript Scraper by Pinto Studio (pintostudio/youtube-transcript-scraper). If you are looking for a pintostudio alternative, this is how ours differs. Everything below about pintostudio comes from its public Store listing, input schema and README, as of November 2026. We did not run it.

pintostudioScrapeLads (this actor)
Videos per runOne video URL per runMany URLs, Shorts or IDs, plus channels
Whole channelNo, its README says to loop over video URLsYes, the newest 1 to 200 videos per channel
Price$0.01 per result ($10 per 1,000)$0.90 per 1,000 from captions, $0.003 per run
OutputSegments with start, duration and textFull text, segments, title, channel, date and stats
SRT or VTTNot offeredOptional on every row
LanguageRequired setting, chosen from a list; can return YouTube's auto-translated captionsOptional; picks an existing caption track, no translation
Videos without captionsNot supportedSpeech-to-text, but only for very short videos (see limits)
Users27,042 total, 2,730 in the last 30 daysNew in October 2026
Reviews49 reviews, 3.7 out of 5None yet

Where pintostudio is the better pick

  • Track record. It has been on the Store since November 2024, with tens of thousands of users and millions of runs. Ours launched in October 2026.
  • Translated transcripts. If you need an English transcript of a Spanish video, its README says it can return YouTube's auto-translated captions. Ours only returns caption tracks that exist on the video.
  • Simple one-off calls. One URL in, one transcript out. Its current build also enables Apify Standby, so it can answer as an always-on HTTP endpoint for an agent that fetches one video at a time.

Where this actor is the better pick

  • Volume. 1,000 captioned videos is one run and about $0.90 here, against 1,000 runs and $10 at $0.01 per result.
  • Channels. Add a channel URL instead of collecting video links first.
  • Context per row. Title, channel, publish date and view counts arrive with the text, so you can filter and cite without a second scraper.
  • Subtitle files. SRT or VTT text for editors, players and translation tools.
  • Clear billing. Each row carries a charged flag, and private, deleted or silent videos are free.

The quick test: take 20 videos from one channel you care about and run them through both. Compare the text, the fields you need and the bill. Prices and features on both listings change, so check them before you decide.

Limits

  • Long videos with no captions. YouTube serves full audio only to signed-in players, so speech-to-text works only on very short uncaptioned videos. Longer ones come back free with the code stt_failed. Most spoken-word YouTube videos have auto-generated captions, so this affects few videos.
  • Private, members-only and deleted videos cannot be read. They come back free with a reason.
  • YouTube only. Links from other platforms are returned free with a pointer to the right actor. For TikTok, Instagram and X in one run, use the Video Transcript API.
  • No playlist input. Paste the playlist's video links, or add the channel.

What people build with it

RAG from a channel

Load a course, a podcast or a support channel into a vector store. Segments give each chunk a timestamp to link back to.

Summaries and show notes

Send each transcript to an LLM for summaries, chapter lists, articles or newsletter drafts.

Weekly monitoring

Save a task with the channels you follow, set "last 7 days" and a weekly schedule, and new videos arrive as text.

Just need one video?

For a single video, the free YouTube transcript generator is quicker: paste a link and copy the text, no account needed.

Still choosing a method? Read YouTube transcript API alternatives, or why youtube-transcript-api gets blocked on servers.

Use it with Claude, ChatGPT or Cursor

Add YouTube Transcript Scraper to Claude, ChatGPT, Cursor or any other MCP client with this server URL. Sign in with your Apify account when asked, then ask for the data in plain words. Runs are billed to your Apify account at the same per-result price.

https://mcp.apify.com?tools=scrape-lads/youtube-transcript-scraper

In Claude Code it is one command:

claude mcp add --transport http youtube-transcript-scraper "https://mcp.apify.com?tools=scrape-lads/youtube-transcript-scraper"

When a different actor fits better

Questions

Do I need a YouTube API key?

No. The official YouTube Data API does not return transcript text anyway. You only need an Apify account.

Can I get the transcripts of a whole YouTube channel?

Yes. Add the channel URL and set how many of its newest videos to read, up to 200 per channel. Add /shorts to the channel URL for its Shorts.

Does it return SRT or VTT files?

Yes, if you ask for them. Each row then has the subtitle text in an srt or vtt field, ready to save as a file.

Which languages work?

Any language YouTube has a caption track for. Leave the language empty for the original spoken language, or set a two-letter code to pick that track. It does not translate.

How is this different from pintostudio's YouTube Transcript Scraper?

Pintostudio's actor takes one video per run and charges $0.01 per result. This one takes many videos or whole channels per run, adds titles, stats and SRT or VTT, and charges $0.90 per 1,000 caption transcripts. Pintostudio's has far more users and reviews, and can return auto-translated captions.

Am I charged for videos that fail?

No. Private, deleted, silent and failed videos come back with a status and a reason and are not charged.

Try one channel

Add a channel you know, set 20 videos, and see the transcripts and the cost in a couple of minutes.

Open the actor