Get YouTube transcript
get_transcriptFetch the transcript of a single YouTube video by URL or 11-character video ID. Serves the permanent cache instantly when available and otherwise fetches from YouTube (uncached fetches are limited per IP per day). Formats: clean text, timestamped, both, srt, vtt, md, json. Costs 0 credits. Example prompt: "Get the transcript of https://youtu.be/jNQXAC9IVRw."
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_url": "<video_url>"
},
"name": "get_transcript"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output format. Default "clean" (plain text). "timestamped" prefixes each line with a timestamp; srt/vtt are subtitle files; json is structured. | |
| language | No | Preferred caption language code such as "en" or "pt-BR". Optional; defaults to English with fallback to whatever track exists. | |
| video_url | Yes | YouTube video URL (watch, youtu.be, shorts, embed, live) or a bare 11-character video ID. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | manual = creator captions, asr = auto-generated. | |
| title | No | Video title when known. | |
| format | Yes | The output format that was rendered. | |
| channel | No | Channel name when known. | |
| language | Yes | Language of the DELIVERED track. May differ from the requested language when YouTube refuses on-the-fly translation; the text header says so when it happens. | |
| video_id | Yes | The 11-character YouTube video ID. | |
| characters | Yes | Length of the rendered transcript text. |