YouTube Transcript Scraper - Bulk Videos & Shorts to Text
Pricing
from $3.50 / 1,000 transcript delivereds
YouTube Transcript Scraper - Bulk Videos & Shorts to Text
Get the transcript of any YouTube video or Short from its URL. Returns the full text with timed segments, language, title and channel. Export as plain text, timestamped text, SRT or VTT subtitles. Bulk URLs, manual and auto-generated captions. You pay only for transcripts delivered.
Pricing
from $3.50 / 1,000 transcript delivereds
Rating
0.0
(0)
Developer
Eimantas V
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
YouTube Transcript Scraper
Get the transcript of any YouTube video or Short from its URL. Paste one link or a thousand, and you get the full text back with timestamps, the caption language, the video title and the channel. Download it as plain text, timestamped text, or ready-to-use SRT and VTT subtitle files.
No YouTube account, no API key, no browser extension. You pay only for transcripts that are actually delivered.
What can you use it for?
- Content repurposing – turn videos into blog posts, newsletters, social posts or show notes.
- AI and LLM workflows – feed clean transcript text into ChatGPT, Claude or your own RAG pipeline for summaries, Q&A and search.
- Research and analysis – study what is said across many videos or channels: topics, keywords, sentiment, brand mentions.
- SEO – publish transcripts alongside your videos to make them searchable.
- Subtitles – download SRT or VTT files to edit, translate or re-upload.
- Accessibility and note-taking – read a video instead of watching it.
What data do you get?
For every video:
| Field | What it is |
|---|---|
text | The full transcript, in the format you chose |
segments | Every caption line with its start time and duration in seconds |
title, channel, channelId | Who published the video and what it is called |
durationSeconds | Length of the video |
language, languageName | The language of the returned captions, e.g. en / English |
isAutoGenerated | true for YouTube's automatic captions, false for captions added by the creator |
availableLanguages | Every caption language the video has, so you know what else you can request |
status | ok, no_captions or failed |
error, note | Why a video failed, or a note such as "the language you asked for isn't available" |
subtitleFileUrl | Download link for the .srt / .vtt file, when you choose a subtitle format |
How to get a YouTube transcript
- Click Try for free (or Start).
- Paste one or more YouTube links into Videos. Regular videos, Shorts,
youtu.beshort links, embed links and plain video IDs all work. - Optionally, set a Preferred language (for example
en,deores) and a Transcript format. - Click Start. Most videos finish in 1–2 seconds.
- Open the Output tab to read the transcripts, or export them as JSON, CSV, Excel, HTML or XML.
Input
| Setting | Description | Default |
|---|---|---|
| Videos | YouTube video URLs or IDs, one per line | – |
| Preferred language | Caption language code such as en. Creator-made captions are preferred over automatic ones. If the video doesn't have that language, you get its default captions and a note saying so. | The video's own default |
| Transcript format | Plain text, text with timestamps, SRT subtitles or WebVTT subtitles | Plain text |
| Include timed segments | Adds the line-by-line segments list. Turn it off to keep large exports small. | On |
| Videos at once | How many videos are processed in parallel. Raise it for big lists – the price per video stays the same. | 5 |
| Proxy groups | Advanced. Leave as it is. | Residential |
Example input:
{"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ","https://www.youtube.com/watch?v=jNQXAC9IVRw"],"language": "en","outputFormat": "text"}
Output example
{"url": "https://www.youtube.com/watch?v=jNQXAC9IVRw","videoId": "jNQXAC9IVRw","title": "Me at the zoo","channel": "jawed","channelId": "UC4QobU6STFB0P71PMvOGN5A","durationSeconds": 19,"availableLanguages": [{ "code": "en", "name": "English", "isAutoGenerated": false },{ "code": "de", "name": "German", "isAutoGenerated": false }],"status": "ok","error": null,"note": null,"language": "en","languageName": "English","isAutoGenerated": false,"format": "text","text": "All right, so here we are, in front of the elephants the cool thing about these guys is that they have really... really really long trunks and that's cool (baaaaaaaaaaahhh!!) and that's pretty much all there is to say","segments": [{ "start": 1.2, "duration": 2.16, "text": "All right, so here we are, in front of the elephants" },{ "start": 5.318, "duration": 2.656, "text": "the cool thing about these guys is that they have really..." },{ "start": 7.974, "duration": 4.642, "text": "really really long trunks" }]}
Transcript formats
Plain text – the whole transcript as one block, ideal for reading or for AI tools:
All right, so here we are, in front of the elephants the cool thing about these guys is...
Timestamped text – one line per caption, with the time it's spoken:
[0:01] All right, so here we are, in front of the elephants[0:05] the cool thing about these guys is that they have really...[0:07] really really long trunks
SRT and VTT – standard subtitle files that work in YouTube Studio, video editors and media players. Each file is also saved to the run's storage and linked from subtitleFileUrl, so you can download it directly.
100:00:01,200 --> 00:00:03,360All right, so here we are, in front of the elephants
How much does it cost?
You pay per transcript delivered – see the Pricing tab for the exact price on your plan. Higher Apify plans get a lower price per transcript.
You are not charged for:
- videos that have no captions,
- links that aren't YouTube videos,
- videos that couldn't be fetched.
Platform usage is included in the price. If you set a maximum cost per run, the Actor stops starting new videos once that limit is reached, so you never pay more than you set.
Use it through the API
Run the Actor from your own code, or connect it to Make, Zapier, n8n, Google Sheets and more through Apify integrations.
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('eiv/youtube-transcript-scraper').call({videos: ['https://www.youtube.com/watch?v=dQw4w9WgXcQ'],});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0].text);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("eiv/youtube-transcript-scraper").call(run_input={"videos": ["https://www.youtube.com/watch?v=dQw4w9WgXcQ"]})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["text"])
Good to know
- The transcript comes from the video's captions. Most videos have automatic captions, but some don't – for example music-only videos, very new uploads, or videos where the creator turned captions off. Those come back as
no_captionsand are free. - Automatic captions are as good as YouTube's speech recognition. YouTube hides swear words in them as
[ __ ], and this Actor returns them exactly as YouTube provides them. - No translation. You get the languages the video already has captions in.
availableLanguageslists them. - Private, members-only and age-restricted videos can't be transcribed and come back as
failedwith the reason. - Results arrive in the order they finish, not always the order you entered them. Use the
urlorvideoIdfield to match them up.
FAQ
Can I transcribe a whole channel or playlist? Not directly yet – paste the video links. Channel and playlist support is planned.
Does it work with YouTube Shorts? Yes. Paste the Shorts link as it is.
Can I get the transcript in a specific language?
Yes, if the video has captions in that language. Set Preferred language. If it isn't available, you get the video's default captions and a note explaining why.
Is it legal to scrape YouTube transcripts? This Actor only reads captions that YouTube shows publicly on the video page. It doesn't access private data. You are responsible for how you use the transcripts, including copyright – when in doubt, ask for legal advice.
Something doesn't work? Open an issue on the Issues tab with the video link and the run ID, and it will be looked at.