Reliable transcript extraction over a simple REST endpoint. We handle YouTube's bot detection, IP rotation, and captionless videos (Whisper fallback) — you just call an API that works. Start free, no card required.
Open-source libraries get your servers blocked. With us, YouTube's bot detection becomes our problem, not yours — and failed requests are never charged.
Videos with no captions fall back to Whisper speech-to-text automatically. One endpoint, every video.
Timestamped segments with language detection. No XML scraping, no player-response parsing.
curl "https://ytranscript.com/api/v1/transcript?videoId=dQw4w9WgXcQ" \ -H "Authorization: Bearer yk_live_YOUR_KEY"
{
"video_id": "dQw4w9WgXcQ",
"lang": "en",
"whisper": false,
"cached": false,
"units_charged": 1,
"segments": [
{ "text": "We're no strangers to love", "offset": 18800, "duration": 3600 },
...
]
}Our MCP server gives your AI assistant a get_transcript tool. Ask it to summarize a video, find where a topic comes up, or translate what was said. It works with any plan, including Free. Claude Code:
claude mcp add ytranscript -e YTRANSCRIPT_API_KEY=yk_live_YOUR_KEY -- npx -y ytranscript-mcp
Claude Desktop and Cursor use this config. VS Code uses the same entry under "servers":
{
"mcpServers": {
"ytranscript": {
"command": "npx",
"args": ["-y", "ytranscript-mcp"],
"env": { "YTRANSCRIPT_API_KEY": "yk_live_YOUR_KEY" }
}
}
}Setup for every client: GitHub · npm
| Parameter | Type | Description |
|---|---|---|
| videoId | string | 11-character YouTube video ID |
| url | string | Full YouTube URL (alternative to videoId) |
| lang | string, optional | Preferred language code (e.g. en, es). Defaults to the video's source language. |
Units: caption transcripts cost 1 unit. Whisper transcriptions (captionless videos) cost 15 units. Failed requests cost nothing.
Headers: every response includes X-Quota-Limit, X-Quota-Used, and X-RateLimit-Remaining.
Errors: 401 invalid key · 402 quota exhausted · 404 no transcript available · 429 rate limited · 500 fetch failed (not charged).
Reliability: extraction is an arms race with YouTube — success rates are high but not absolute, which is why failed requests never consume quota. We run multi-strategy fallbacks (edge, direct, residential, Whisper) so your code only ever sees one endpoint.
Need more without a subscription? Pay-as-you-go packs start at $10 for 1,000 units and never expire. Buy them from your dashboard below after signing in.
Checking your account…