YouTube Transcript Scraper: Captions, Subtitles & Timestamps
Pricing
from $5.00 / 1,000 transcripts
YouTube Transcript Scraper: Captions, Subtitles & Timestamps
Get YouTube video transcripts from links, IDs or keyword searches: full text plus timestamped segments, caption language, title and channel. Videos without captions get a clear status row and are never charged. Pay per transcript.
Pricing
from $5.00 / 1,000 transcripts
Rating
0.0
(0)
Developer
VNCNT Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 minutes ago
Last modified
Categories
Share
Get the transcript of any YouTube video as plain text plus timestamped segments. Paste video links or IDs, or give a search keyword and get transcripts of the top results. Each video gets one row with its caption language, title and channel. Videos without captions get a clear status row and are never charged.
What you get
- Full transcript text, ready for summaries, AI prompts, SEO, research or subtitles work
- Timestamped segments: every caption line with
start,durationandendin seconds - Optional [mm:ss] transcript text with a timestamp on every line
- Caption language, video title, channel name and link
- From keyword searches: search rank, views, video length and a Shorts flag
- A status on every row:
ok,no_captions,not_found,unavailable,errororinvalid_input
Input
| Field | What it does |
|---|---|
videos | YouTube links (watch, youtu.be, Shorts, embed, live) or 11-character video IDs |
keywords | Search YouTube and transcribe the top results (up to 20 keywords) |
maxVideosPerKeyword | Results per keyword (1-200, default 10) |
excludeShorts | Skip Shorts in search results |
language | Caption track language code (e.g. en, es, de). Empty = the video's own language |
country | Country for searches (name or 2-letter code) |
includeSegments | Timestamped segments (default on) |
includeTimestampedText | One text field with [mm:ss] before each line |
fastMode | Priority queue for big batches with tight timeouts |
maxVideos | Hard cap on videos per run (default 100, max 1,000) |
{ "videos": ["https://www.youtube.com/watch?v=jNQXAC9IVRw", "dQw4w9WgXcQ"], "language": "en" }
{ "keywords": ["how to make sourdough bread"], "maxVideosPerKeyword": 10, "excludeShorts": true }
Output (one row per video)
{"type": "transcript", "status": "ok", "videoId": "jNQXAC9IVRw","url": "https://www.youtube.com/watch?v=jNQXAC9IVRw", "title": "Me at the zoo","channelName": "jawed", "channelUrl": "https://www.youtube.com/@jawed", "language": "en","segmentsCount": 6, "transcriptDurationSeconds": 18.88, "wordCount": 39,"transcript": "All right, so here we are, in front of the elephants ...","segments": [{ "start": 1.2, "duration": 2.16, "end": 3.36, "text": "All right, so here we are, in front of the elephants" }],"charged": true}
A video without captions:
{ "type": "transcript", "status": "no_captions", "videoId": "aqz-KE-bpKQ", "title": "Big Buck Bunny 60fps 4K - Official Blender Foundation Short Film","error": "This video has no captions (creator or automatic).", "charged": false }
Keyword searches also add a keyword row (videosFound, videosQueued). The run summary is in the OUTPUT record.
Pricing
- $0.005 per transcript delivered (event
transcript). No start fee. - Fast mode: $0.008 per transcript (event
transcript-fast), charged instead of the standard price, never both. - Not charged: videos without captions, missing or private videos, provider errors, invalid inputs, keyword rows.
- Set a maximum charge per run and the Actor stops there. Apify free plan: up to 10 transcripts per run.
Use from AI agents (MCP)
AI assistants such as Claude, ChatGPT and Cursor can run this Actor through Apify's MCP server (https://mcp.apify.com). The agent can look up the Actor, read its input schema, run it and read the results. Runs use your own Apify account and are charged at the prices on this page.
- Actor name:
vncntlabs/youtube-transcript-scraper - Server URL with only this tool:
https://mcp.apify.com?tools=vncntlabs/youtube-transcript-scraper. The defaulthttps://mcp.apify.comalso works. - Claude (desktop app or claude.ai): Settings > Connectors > Add custom connector, paste the server URL, then sign in to Apify.
- ChatGPT: turn on Developer mode, then Settings > Apps & Connectors > Create, paste the server URL and choose OAuth.
- Cursor: add the server to
mcp.json:
{ "mcpServers": { "apify": { "url": "https://mcp.apify.com?tools=vncntlabs/youtube-transcript-scraper" } } }
Example prompt: "Use the Apify Actor vncntlabs/youtube-transcript-scraper to get the transcript of https://www.youtube.com/watch?v=dQw4w9WgXcQ and summarise it in five bullet points with timestamps."
To cap the cost of an agent's run, it can pass maxTotalChargeUsd in the run options.
FAQ
Which captions? Creator-uploaded captions or YouTube's automatic captions, as YouTube serves them.
Can I pick the language? Yes, with language. If the video has no track in that language you get a free no_captions row.
How fast? In our tests 90 videos took about 1.5 minutes and 3 videos about 15 seconds. Fast mode uses a priority queue for big batches with tight timeouts.
Long videos? Yes. We tested videos up to 13 hours (163,000 words) in one row.
Public YouTube captions delivered through a licensed SERP data API. Transcript texts belong to their creators. Not affiliated with or endorsed by YouTube or Google. Questions: hello@vncntlabs.com