YouTube Transcript Scraper avatar

YouTube Transcript Scraper

Pricing

from $1.50 / 1,000 results

Go to Apify Store
YouTube Transcript Scraper

YouTube Transcript Scraper

๐ŸŽฌ EXTRACT YOUTUBE TRANSCRIPTS in seconds. Get timestamped captions in 40+ languages with auto-translation built in. Supports auto-generated subtitles, batch processing and three output formats: segments, full text or [MM:SS]. Built for AI, LLMs and content teams.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Data Xplorer

Data Xplorer

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

7 days ago

Last modified

Share

๐ŸŽฌ What is YouTube Transcript Scraper?

YouTube Transcript Scraper extracts the full transcript of any YouTube video and gives it back as clean, structured data: every line with its timestamp, the language, and the video details (title, channel, views, likes, publish date). Paste one YouTube URL or a hundred, pick a language, and download the YouTube transcripts as JSON, CSV or Excel.

It works with manual subtitles and with YouTube's auto-generated captions, in 40+ languages. If a video has no transcript in your language, the transcript is translated for you and the timestamps stay in place. No YouTube API key, no Google Cloud project and no proxy setup are needed.

Use this YouTube transcript scraper to summarize videos with ChatGPT or Claude, to turn videos into blog posts, to feed a RAG pipeline, or to research what is said in interviews, talks and podcasts. Run it from the Apify Console, call it as a YouTube Transcript API from your code, or connect it to Make, n8n, Zapier and your AI agents.

What can this YouTube Transcript Scraper do?

  • โšก Fast: 10 YouTube transcripts in about 20 seconds, 25 in under a minute (see the timings below)
  • ๐Ÿ“ Full transcript with timestamps: start, end and duration of every line, to the millisecond
  • ๐ŸŒ 40+ languages: choose the transcript language, or enter any language code
  • ๐Ÿ”„ Translation built in: no transcript in your language? It is translated, with the same timestamps
  • ๐Ÿค– Auto-generated captions supported, next to manual subtitles
  • ๐Ÿ“Š Video details included: title, channel, subscribers, views, likes, publish date, category, description, tags and thumbnails
  • ๐Ÿ“„ 3 output formats: timestamped segments, plain text, or [MM:SS] lines
  • ๐Ÿ”— Every YouTube URL format: watch?v=, youtu.be, Shorts, live streams and bare video IDs
  • ๐Ÿ’ธ No transcript, no charge: videos without a transcript are not added to your results
  • ๐Ÿ”“ No API key, no proxy to configure: paste the links and press Start
  • โš™๏ธ Everything the Apify platform offers: API, scheduling, monitoring, integrations, and export to JSON, CSV, Excel or HTML

โšก How fast is this YouTube Transcript Scraper?

Timings measured on real runs in October 2026:

RunTime
1 videoabout 10 seconds
10 videosabout 20 seconds
10 videos translatedabout 20 seconds
25 videosabout 53 seconds

Several videos are processed at the same time (10 by default). Times depend on how quickly YouTube answers, so yours can differ.

๐Ÿ’ก Why scrape YouTube transcripts?

A YouTube transcript turns a video into text you can search, quote, summarize and analyze. With this YouTube transcript extractor you can:

  • ๐Ÿค– Feed AI tools: summarize videos, ask questions about them, or build a RAG pipeline and a video search engine
  • โœ๏ธ Repurpose content: turn your videos or podcasts into blog posts, newsletters, threads and show notes
  • ๐Ÿ” Research: collect what experts, competitors or politicians say in interviews, talks, lectures and hearings
  • ๐Ÿ“ˆ Analyze topics: track keywords and themes across a channel or a niche over time
  • ๐ŸŽ“ Study and accessibility: get notes from lectures and readable text for people who cannot watch the video
  • ๐ŸŒ Translate: read a video in your own language, with timestamps that still point to the right moment

๐Ÿš€ How to scrape YouTube transcripts

  1. Click Try for free to open the Actor in the Apify Console.
  2. Paste one or more YouTube video URLs (or video IDs) in YouTube video URLs.
  3. Choose the transcript language and the output format.
  4. Click Start.
  5. Download the YouTube transcripts as JSON, CSV, Excel or HTML, or read them with the API.

๐Ÿ’ฐ How much does it cost to scrape YouTube transcripts?

You pay for the transcripts you get, and videos without a transcript are free. Platform usage and proxies are included.

Apify planPrice per transcript1,000 transcripts
Free$0.01$10
Bronze$0.005$5
Silver$0.003$3
Gold and above$0.0015$1.50

A small fee of $0.025 is also charged when a run starts, so send your videos in one run rather than one run per video.

Apify's free plan includes monthly credits, enough for hundreds of YouTube transcripts to try the Actor. To control your spending, set a maximum cost per run in the run options. The current prices are always on the Pricing tab.

โฌ‡๏ธ Input

FieldTypeDefaultDescription
videoUrlsarrayYouTube video URLs or video IDs
preferredLanguagestringenLanguage of the transcript (40+ languages in the list)
customLanguageCodestringAny other language code (for example sw, eu, lb). Overrides the list
outputFormatstringsegmentssegments, text or timestamps
maxConcurrencyinteger10Videos processed at the same time (1 to 20)

Supported YouTube URLs

  • https://www.youtube.com/watch?v=dQw4w9WgXcQ
  • https://youtu.be/dQw4w9WgXcQ
  • https://www.youtube.com/shorts/VIDEO_ID
  • https://www.youtube.com/live/VIDEO_ID
  • dQw4w9WgXcQ (a bare 11-character video ID)

Output formats

FormatFieldBest for
Segments (default)segments arrayAI pipelines, RAG, search indexes, subtitles
Full textfullText stringLLM prompts, summaries, articles
TimestampsfullText string with [MM:SS] linesReading, quoting, video editing

Input example

{
"videoUrls": [
"https://www.youtube.com/watch?v=jNQXAC9IVRw",
"https://youtu.be/iG9CE55wbtY"
],
"preferredLanguage": "fr",
"outputFormat": "segments"
}

โฌ†๏ธ What data can you extract from YouTube videos?

FieldDescription
videoId, videoUrlVideo ID and watch URL
titleVideo title
author, channelId, channelUrlChannel name, ID and URL
channelSubscribers, channelSubscriberCountSubscribers as shown by YouTube ("6.72M subscribers") and as a number
durationSecondsVideo length in seconds
language, languageNameLanguage of the returned transcript
nativeLanguageOriginal language of the captions
isAutoTranslatedtrue when the transcript was translated from nativeLanguage
isAutoGeneratedtrue for YouTube's auto-generated captions
segmentCount, wordCountNumber of transcript lines and words
transcriptDurationSecondsEnd time of the last transcript line
availableLanguagesEvery caption track available on the video
viewCount, likeCountViews and likes (likeCount is null when hidden)
publishDate, uploadDateDates in ISO 8601
category, description, keywordsYouTube category, description and tags
isLiveContent, isFamilySafeLive stream and family-safe flags
thumbnailUrl, thumbnailsLargest thumbnail and all sizes
segments[{ start, duration, end, text }], times in seconds
fullTextThe transcript as one text, plain or with [MM:SS] lines

Output example

{
"videoId": "jNQXAC9IVRw",
"videoUrl": "https://www.youtube.com/watch?v=jNQXAC9IVRw",
"title": "Me at the zoo",
"author": "jawed",
"channelSubscribers": "6.72M subscribers",
"durationSeconds": 19,
"language": "en",
"nativeLanguage": "en",
"isAutoTranslated": false,
"isAutoGenerated": false,
"segmentCount": 6,
"wordCount": 39,
"viewCount": 446981249,
"likeCount": 20117466,
"publishDate": "2005-04-23T20:31:52-07:00",
"category": "Film & Animation",
"segments": [
{ "start": "1.200", "duration": "2.160", "end": "3.360", "text": "All right, so here we are, in front of the elephants" },
{ "start": "12.616", "duration": "1.751", "end": "14.367", "text": "and that's cool" }
]
}

With "outputFormat": "timestamps", fullText looks like this:

[00:01] All right, so here we are, in front of the elephants
[00:12] and that's cool
[00:16] and that's pretty much all there is to say

๐Ÿ”Ž Is there a YouTube Transcript API?

YouTube's official Data API only lets you download captions of videos you own, and it needs a Google Cloud project and OAuth. To get the transcript of any public video, this Actor works as a YouTube Transcript API: send video URLs in one request and get the transcripts back as JSON.

๐Ÿ”Œ How to use this YouTube Transcript Scraper as an API

Call it with the Apify API from any language.

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("data_xplorer/youtube-transcript").call(run_input={
"videoUrls": ["https://www.youtube.com/watch?v=jNQXAC9IVRw"],
"preferredLanguage": "en",
"outputFormat": "text",
})
for video in client.dataset(run["defaultDatasetId"]).iterate_items():
print(video["title"], video["wordCount"], video["fullText"][:200])

Node.js:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('data_xplorer/youtube-transcript').call({
videoUrls: ['https://youtu.be/iG9CE55wbtY'],
preferredLanguage: 'es',
outputFormat: 'segments',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0].title, items[0].segments.length);

cURL (one request that starts the run and returns the transcripts):

curl -X POST "https://api.apify.com/v2/acts/data_xplorer~youtube-transcript/run-sync-get-dataset-items" \
-H "Authorization: Bearer <YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"videoUrls":["https://www.youtube.com/watch?v=jNQXAC9IVRw"],"outputFormat":"text"}'

๐Ÿค– Use YouTube Transcript Scraper with AI agents (MCP)

AI assistants such as Claude, Cursor or VS Code can call this Actor as a tool through the Apify MCP server. The agent sends a YouTube link, the Actor returns the transcript, and the agent answers with what is really said in the video.

Use this server URL to give your agent this Actor only:

https://mcp.apify.com?tools=data_xplorer/youtube-transcript

Claude Code:

$claude mcp add --transport http youtube-transcript "https://mcp.apify.com?tools=data_xplorer/youtube-transcript"

Cursor, VS Code and other MCP clients (MCP config file):

{
"mcpServers": {
"youtube-transcript": {
"url": "https://mcp.apify.com?tools=data_xplorer/youtube-transcript"
}
}
}

Example prompts:

  • "Summarize this YouTube video in five bullet points: https://youtu.be/iG9CE55wbtY"
  • "What does the speaker say about creativity, with the timestamps?"
  • "Translate the transcript of this video into Spanish and turn it into a blog post."

Tips for agents:

  • Use "outputFormat": "text" to put the whole transcript in a prompt, and "segments" when timestamps matter.
  • Set preferredLanguage to the language you want to read, even if the video is in another one.
  • Send several URLs in one call rather than one call per video.

๐Ÿงฉ Integrations

YouTube Transcript Scraper runs on the Apify platform, so you can connect it to the rest of your stack without code:

๐Ÿ”— Other scrapers you may like

โ“ FAQ

Do I need a YouTube API key or a Google account?

No. Paste the video URLs and press Start. You do not need an API key, a Google Cloud project, a login or your own proxies.

Can I get YouTube's auto-generated captions?

Yes. Most videos have auto-generated captions even without uploaded subtitles, and the Actor returns them. The isAutoGenerated field tells you which kind you got.

Can I get a transcript in another language than the video?

Yes. Set preferredLanguage (or customLanguageCode). If the video has a transcript in that language, you get it as is. If not, the transcript is translated from the original language, with the same timestamps, and isAutoTranslated is true. Translations are machine translations, so they can be less natural than a human one.

What happens if a video has no transcript?

It is not added to your results, so you are not charged for it. It is listed with the reason in the FAILED_VIDEOS record of the run's key-value store, and the run message gives the count. The other videos are processed normally.

How many videos can I process in one run?

There is no fixed limit. Several videos are processed at the same time (maxConcurrency, 10 by default, up to 20). For large lists, keep the default or lower it if you see errors.

Does it work with Shorts and live streams?

Yes, as long as the video has captions. Shorts, youtu.be links, /live/ URLs and bare video IDs are all supported. For a live stream, the transcript is available once YouTube has published captions for it.

Can I scrape all the videos of a channel or a playlist?

Not directly: this Actor takes video URLs. Collect the video URLs of the channel or playlist first, then paste them in YouTube video URLs.

What is the difference between the three output formats?

segments gives one object per line with start, end, duration and text. text gives the whole transcript as one string. timestamps gives one string with a [MM:SS] time before each line. The video details are the same in all three formats.

The Actor only collects transcripts and details that YouTube shows publicly on each video. Transcripts are part of the creator's content: you are responsible for how you use them, including copyright and YouTube's terms. If in doubt, ask a legal professional. See also Is web scraping legal?.

I need another feature or found a bug.

Open an issue in the Issues tab: we read every one and answer quickly. If this Actor saves you time, a short review helps other people find it.