Get YouTube video transcript
get_transcriptFetch the full transcript of a YouTube video URL or ID as plain text, timestamped segments, SRT or VTT, optionally in a chosen or translated language. Use when the user asks to summarize, quote, search, or analyze a YouTube video, since the model cannot watch video. Takes one video per call. Returns one result with title, channel, language, whether captions are auto-generated, whether it fell back to another language, text and segments; a video without captions or one YouTube blocks comes back as status "error" with a code and retryable flag.
Tool call template
Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {
"video": "<video>"
},
"name": "get_transcript"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| video | Yes | YouTube video URL (watch, youtu.be, shorts, embed, live) or 11-character video ID | |
| format | No | segments = timestamped JSON plus text (default), text = plain text only, srt/vtt = subtitle file | |
| languages | No | Language codes in priority order, e.g. ["en", "pt-BR"]; a code also matches its regional variants. Defaults to ["en"] | |
| translateTo | No | Translate the transcript into this language code when YouTube offers it | |
| fallbackToAnyLanguage | No | When none of the languages exist, return the video's original-language transcript (languageFallback: true) instead of an error. Defaults to true |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cache | Yes | How the result was served: HIT or STALE from a cache tier, MISS or BYPASS when it was fetched now. | |
| results | Yes | One row for the video: the transcript, or an error with a code. |