YouTube Transcript API

Simple REST · JSON in, JSON out · Your Pro license key is your API key

Quick start: get a TranscriptFlow Pro license key ($6.99/month, 1,000 videos; Course Pack keys do not include API access), then call the API with it as a Bearer token. No separate registration, no OAuth, no SDK required.

Fetch a transcript

POST https://transcriptflow-backend.onrender.com/v1/transcript

curl -X POST https://transcriptflow-backend.onrender.com/v1/transcript \
  -H "Authorization: Bearer YOUR_LICENSE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"video_url": "https://youtu.be/dQw4w9WgXcQ"}'

Response (abridged):

{
  "video_id": "dQw4w9WgXcQ",
  "video_title": "Rick Astley - Never Gonna Give You Up…",
  "language": "en",
  "word_count": 486,
  "transcript": "[00:00] We're no strangers to love…",
  "segments": [{"start": 0.0, "duration": 4.2, "text": "We're no strangers to love"}, …],
  "srt": "1\n00:00:00,000 --> …",
  "vtt": "WEBVTT…",
  "quota": {"day_used": 1, "day_limit": 200, "month_used": 1, "month_limit": 1000}
}

List a playlist or channel

POST https://transcriptflow-backend.onrender.com/v1/playlist — free to call (no quota cost).

curl -X POST https://transcriptflow-backend.onrender.com/v1/playlist \
  -H "Authorization: Bearer YOUR_LICENSE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"playlist_url": "https://www.youtube.com/playlist?list=PL…"}'
# or: -d '{"channel_url": "https://www.youtube.com/@veritasium"}'

Returns the playlist/channel title and up to 100 videos (video_id, title, duration_seconds). Feed the IDs into /v1/transcript.

Errors

Statuserror_typeMeaning
401unauthorizedMissing or invalid license key
404no_transcript / video_unavailableVideo has no captions or isn't accessible
429quota_exceeded / rate_limitedQuota or rate limit reached
503ip_blockedUpstream temporarily blocking; retry shortly

Fair-use notes: transcripts come from YouTube's public caption system; respect creators' rights when republishing. Quotas are per license key. Need more than 1,000 videos/month? Email [email protected].

Get an API key (Pro) →