YouTube transcripts for AI agents: text, JSON, SRT, or VTT in 150+ languages, with AI fallback.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Bearer token with your TranscriptYT API key (get one free at https://transcript-yt.com/dashboard/keys)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Fetch the transcript of a public YouTube video. Accepts a full URL or an 11-character video ID. Defaults to Markdown (title + text), which is the most compact format for reading or summarizing. Use json for timestamped segments, srt/vtt for subtitle files. Costs 1 credit on success; videos without captions are AI-transcribed at 1 credit per started minute.
YouTube URL or video ID
auto: captions, AI-transcribed audio if there are none. captions: never AI. ai: always transcribe the audio (1 credit per started minute)
Output format
Only return lines containing this text
Only return the part before this second
Preferred caption language (BCP-47, e.g. en, es, pt-BR)
Only return the part from this second on
Prefix lines with timestamps (text/md)
Translate the transcript into this language
Prefer the spoken language's captions over English
Fetch the transcript of a public YouTube video. Accepts a full URL or an 11-character video ID. Defaults to Markdown (title + text), which is the most compact format for reading or summarizing. Use json for timestamped segments, srt/vtt for subtitle files. Costs 1 credit on success; videos without captions are AI-transcribed at 1 credit per started minute.
| Argument | Type | Description |
|---|---|---|
| url* | string | YouTube URL or video ID |
| mode | string | auto: captions, AI-transcribed audio if there are none. captions: never AI. ai: always transcribe the audio (1 credit per started minute) |
| format | string | Output format |
| search | string | Only return lines containing this text |
| end_time | number | Only return the part before this second |
| language | string | Preferred caption language (BCP-47, e.g. en, es, pt-BR) |
| start_time | number | Only return the part from this second on |
| timestamps | boolean | Prefix lines with timestamps (text/md) |
| translate_to | string | Translate the transcript into this language |
| original_language | boolean | Prefer the spoken language's captions over English |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "YouTube URL or video ID"
},
"mode": {
"enum": [
"auto",
"captions",
"ai"
],
"type": "string",
"default": "auto",
"description": "auto: captions, AI-transcribed audio if there are none. captions: never AI. ai: always transcribe the audio (1 credit per started minute)"
},
"format": {
"enum": [
"json",
"text",
"srt",
"vtt",
"csv",
"md"
],
"type": "string",
"default": "md",
"description": "Output format"
},
"search": {
"type": "string",
"description": "Only return lines containing this text"
},
"end_time": {
"type": "number",
"description": "Only return the part before this second"
},
"language": {
"type": "string",
"description": "Preferred caption language (BCP-47, e.g. en, es, pt-BR)"
},
"start_time": {
"type": "number",
"description": "Only return the part from this second on"
},
"timestamps": {
"type": "boolean",
"default": false,
"description": "Prefix lines with timestamps (text/md)"
},
"translate_to": {
"type": "string",
"description": "Translate the transcript into this language"
},
"original_language": {
"type": "boolean",
"description": "Prefer the spoken language's captions over English"
}
}
}Show the remaining TranscriptYT credits and plan for this API key. Free.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List the caption tracks available for a YouTube video. Free, and does not use credits.
| Argument | Type | Description |
|---|---|---|
| url* | string | YouTube URL or video ID |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "YouTube URL or video ID"
}
}
}List the videos in a YouTube playlist, or a channel's uploads (newest first), with titles and durations. Accepts playlist links or IDs and channel links or @handles. Free. Use get_transcript on the videos you need.
| Argument | Type | Description |
|---|---|---|
| url* | string | Playlist URL/ID, or channel URL/@handle |
| limit | integer | Maximum videos to return |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Playlist URL/ID, or channel URL/@handle"
},
"limit": {
"type": "integer",
"default": 50,
"maximum": 500,
"minimum": 1,
"description": "Maximum videos to return"
}
}
}Search YouTube for videos, or search within one channel by passing its link or @handle. Returns video IDs, titles, channels, durations, and view counts. Free. Use get_transcript on the videos you need.
| Argument | Type | Description |
|---|---|---|
| limit | integer | Maximum videos to return |
| query* | string | Search terms |
| channel | string | Only search this channel (URL, channel ID, or @handle) |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"limit": {
"type": "integer",
"default": 10,
"maximum": 100,
"minimum": 1,
"description": "Maximum videos to return"
},
"query": {
"type": "string",
"description": "Search terms"
},
"channel": {
"type": "string",
"description": "Only search this channel (URL, channel ID, or @handle)"
}
}
}Summary, key points, and timestamped study notes for a public YouTube video, generated from its transcript. Written in the transcript's language (translate_to changes which transcript is summarized). Costs 1 credit for the transcript plus 1 for the summary (2 total) for most videos; long videos cost about 1 more per further 45 minutes.
| Argument | Type | Description |
|---|---|---|
| url* | string | YouTube URL or video ID |
| language | string | Preferred caption language (BCP-47, e.g. en, es, pt-BR) |
| translate_to | string | Summarize a translation of the transcript into this language |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"url"
],
"properties": {
"url": {
"type": "string",
"description": "YouTube URL or video ID"
},
"language": {
"type": "string",
"description": "Preferred caption language (BCP-47, e.g. en, es, pt-BR)"
},
"translate_to": {
"type": "string",
"description": "Summarize a translation of the transcript into this language"
}
}
}