Transcript API
Pull YouTube transcripts into your own scripts and AI sessions.
Transcript API
Every YouTube video LiftMonkey can read has a transcript, and you can pull it programmatically — into a script, a notebook, or an AI session doing research. One authenticated request, plain text or SRT.
You do not need a YouTube or Google account for this. Captions come from a public endpoint that YouTube's own player uses; there is no API key, no OAuth, and no quota on YouTube's side. The only credential involved is a LiftMonkey token, which authenticates you to us.
Getting a token
Go to API tokens in your account, give the token a name, and copy it.
The value is shown once. We store only a one-way hash of it, so we cannot show it to you again or recover it if you lose it — revoke it and create another. Revoking takes effect immediately.
Tokens are available on every plan, including Free. Each plan has a
daily call limit; you'll get a clear 429 with a
Retry-After if you reach it.
Making a request
curl -X POST https://liftmonkey.app/api/v1/transcripts \
-H "Authorization: Bearer YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"url":"https://youtu.be/VIDEO_ID"}'
You get back the transcript as text, the same content
as timestamped srt subtitles, and context about the
video — title, channel, duration, and a word count so you know
how long it is before you use it.
When it doesn't work
Errors come back with a machine-readable error field so a
script can tell the difference between "try again" and "give up":
no_transcript_available— the video genuinely has no captions (music, no speech, or the creator disabled them). Permanent.video_unavailable— removed, private, members-only, age-restricted, or region-blocked. Permanent.unsupported_url— not a YouTube link we can read.rate_limited— you've hit the per-minute or daily limit. Retry after the delay given.extraction_failed— a temporary problem reaching YouTube. Worth retrying.
Using it from Claude (MCP)
LiftMonkey also speaks the Model Context Protocol, so a Claude session
can fetch transcripts as a built-in tool instead of you writing HTTP
calls. Add this to your .mcp.json:
{
"mcpServers": {
"liftmonkey": {
"type": "http",
"url": "https://liftmonkey.app/mcp",
"headers": { "Authorization": "Bearer ${LIFTMONKEY_API_TOKEN}" }
}
}
}
Set LIFTMONKEY_API_TOKEN in your environment and the
session gets a get_youtube_transcript tool. Ask it to
read a video and it will call out, fetch the transcript, and work from
it directly.
Scope
English transcripts for single YouTube videos. Playlists, channels, other languages, and other platforms aren't supported yet. Videos with no captions can't be transcribed — we read existing captions, we don't transcribe audio ourselves.