Skip to main content
One endpoint, one key. Send a video id or link and get one caption track as plain text plus timed segments. The uploader’s captions come before YouTube’s automatic ones. See the YouTube API: overview, pricing, and free tier.

Transcript

GET /v1/youtube/transcript · 1 request
The body is transcript: language (the track’s code), kind (manual for the uploader’s captions, auto for YouTube’s), text (every segment joined by spaces), and segments[] with start_ms, duration_ms, and text. query.video_id is the id, even when you sent a link.
Clair reads the captions a video offers to any signed-out viewer. It does not transcribe audio.

Errors

A video that does not exist or is unavailable returns 404 not_found. So does a video with no captions, and a language the video lacks; that message lists the languages it has. A video_id that is not an id or a YouTube link, or a malformed language, is 400. Private and age-restricted videos need a signed-in viewer, so Clair cannot read them; they fail with 502. Auth, plans, rate limits, and error codes: Authentication.