← yTranscript

YouTube Transcript API

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.

Your IPs stay clean

Open-source libraries get your servers blocked. With us, YouTube's bot detection becomes our problem, not yours — and failed requests are never charged.

Captionless videos work

Videos with no captions fall back to Whisper speech-to-text automatically. One endpoint, every video.

Simple JSON

Timestamped segments with language detection. No XML scraping, no player-response parsing.

Quickstart

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 },
    ...
  ]
}

Use it from Claude, Cursor, and VS Code

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

Reference

GET /api/v1/transcript
ParameterTypeDescription
videoIdstring11-character YouTube video ID
urlstringFull YouTube URL (alternative to videoId)
langstring, optionalPreferred 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.

Pricing

Free

$0/mo
  • 50 units / month
  • 10 requests / minute
  • Whisper fallback included
  • No card required

Starter

$9/mo
  • 1,000 units / month
  • 30 requests / minute
  • Whisper fallback included
  • Cancel anytime

Developer

$29/mo
  • 10,000 units / month
  • 60 requests / minute
  • Whisper fallback included
  • Email support

Scale

$79/mo
  • 50,000 units / month
  • 300 requests / minute
  • Whisper fallback included
  • Priority support

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.

Your API keys

Checking your account…

YouTube Transcript API - Free Tier, No Card Required