YouTube Transcripts & Captions Scraper avatar

YouTube Transcripts & Captions Scraper

Pricing

$5.00 / 1,000 transcripts

Go to Apify Store
YouTube Transcripts & Captions Scraper

YouTube Transcripts & Captions Scraper

Get transcripts and captions from YouTube videos in their original language or the one you choose. Accepts lists, returns timestamped segments and full text, and charges only for transcripts returned.

Pricing

$5.00 / 1,000 transcripts

Rating

0.0

(0)

Developer

PRATHAP K

PRATHAP K

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

What does YouTube Transcript Scraper do?

YouTube Transcript Scraper gets the transcript, subtitles and captions of any public YouTube video, in the video's original language by default or in the languages you choose. Paste a list of video links and get, for each one:

  • the full transcript text, ready for ChatGPT, Claude, summaries and RAG pipelines
  • timestamped segments (start, duration, text)
  • optional SRT and VTT subtitle files
  • video details: title, channel, duration, view count, description and keywords

You are charged only for transcripts actually returned. Videos without captions, private or removed videos and failed fetches are listed with the reason and cost nothing.

Use it from the Apify Console, the Apify API, on a schedule, from Make, n8n or Zapier, or let an AI agent call it through the Apify MCP server.

What can you use YouTube transcripts for?

  • AI and RAG: feed lectures, podcasts and tutorials into a vector database or an LLM.
  • Summaries and notes: turn long videos into articles, study notes or newsletter content.
  • SEO and content repurposing: make blog posts, show notes and social posts from your own videos.
  • Research and analysis: search what was said across hundreds of videos, track topics and brand mentions.
  • Subtitles: download SRT or VTT files to translate, edit or re-upload.
  • Accessibility: provide text versions of video content.

Why this YouTube transcript scraper?

  • The right language. Many transcript tools return whichever caption track comes first, so an English TED talk comes back in Arabic. This one returns the language the video was made in, or your languages in your order.
  • Honest results. Every row has a status. If your language does not exist, the row says so instead of quietly returning a different one.
  • Built for lists. Hundreds of links at once: watch, youtu.be, Shorts, live and embed links. Duplicates are fetched once.
  • Reliable. Residential proxy by default and automatic retries, because YouTube blocks most cloud IPs.
  • Safe by default. A default limit of 100 videos per run protects you from an accidentally huge bill.

How to scrape YouTube transcripts

  1. Paste video links or IDs into Videos.
  2. Optionally list Preferred languages such as en, es or hi.
  3. Optionally tick Subtitle files to also get SRT or VTT.
  4. Click Start. Results appear in the Output tab; download them as JSON, CSV, Excel or HTML.

Input

FieldWhat it does
videosYouTube URLs or 11-character video IDs. Required.
languagesLanguages to try in order. Empty means each video's original language.
fallbackToOriginalIf none of your languages exist, return the original language (default) or nothing.
includeAutoGeneratedAllow YouTube's automatic captions when no human-made ones exist (default on).
subtitleFormatsAlso return srt and/or vtt subtitle files.
maxItemsStop after this many videos (default 100).
proxyConfigurationResidential proxy by default. YouTube blocks most datacenter and cloud IPs.
{
"videos": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],
"languages": ["en"],
"subtitleFormats": ["srt"]
}

Output

{
"videoId": "jNQXAC9IVRw",
"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"title": "Me at the zoo",
"channel": "jawed",
"channelId": "UC4QobU6STFB0P71PMvOGN5A",
"durationSeconds": 19,
"viewCount": 436657747,
"description": "(the video's description)",
"keywords": ["me at the zoo", "jawed karim", "first youtube video"],
"status": "ok",
"language": "en",
"languageName": "English",
"isAutoGenerated": false,
"availableLanguages": [
{ "code": "en", "name": "English", "isAutoGenerated": false },
{ "code": "de", "name": "German", "isAutoGenerated": false }
],
"segments": [{ "start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants" }],
"text": "All right, so here we are, in front of the elephants ...",
"srt": "1\n00:00:01,200 --> 00:00:03,360\nAll right, so here we are, in front of the elephants\n..."
}

requestedLanguageFound appears when you set Preferred languages. srt and vtt appear when you ask for them.

statusMeaningCharged
okTranscript returnedYes
no_captionsThe video has no captions at allNo
requested_language_unavailableNone of your languages exist and fallback is offNo
unavailablePrivate, removed or age-restricted videoNo
errorCould not fetch after several attempts; error says whyNo

How much does it cost to scrape YouTube transcripts?

You pay per transcript returned; the Pricing tab shows the current price per 1,000 transcripts. Videos without a transcript are free, and Apify's free plan credit covers your first transcripts.

Use it with the API, Python or JavaScript

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("devprathap/youtube-transcripts").call(run_input={
"videos": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["title"], item["status"], item.get("text", "")[:80])
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('devprathap/youtube-transcripts').call({
videos: ['https://www.youtube.com/watch?v=jNQXAC9IVRw'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].text);

AI agents (Claude, Cursor, ChatGPT with MCP) can call it through the Apify MCP server.

Tips

  • Leave Preferred languages empty to get what the speaker actually said.
  • Turn off Include auto-generated captions if you need human-made captions only.
  • Keep the residential proxy. Datacenter IPs get YouTube's "confirm you're not a bot" wall.

FAQ

Does it download or transcribe audio? No. It reads the captions YouTube already publishes, which is fast and cheap. Videos without any captions return no_captions.

Can I get transcripts in another language? Yes: list the language codes in Preferred languages. If the video has those captions, you get them; the row tells you whether your language was found.

Can I get SRT subtitles? Yes: tick Subtitle files and choose SRT and/or VTT.

Is it legal to scrape YouTube transcripts? It reads publicly available captions of public videos without logging in. You are responsible for how you use the data, including copyright and YouTube's terms, and for any personal data you process.

Something broke? Open an issue in the Issues tab with the run ID. Issues are answered within a day.