MCP server that fetches YouTube video transcripts and optionally summarizes them.
- Fetch transcripts in multiple formats (text, JSON, SRT, WebVTT, pretty-print)
- Summarize videos — returns transcript with instructions for the LLM to produce a summary
- List available languages for any video's transcripts
- Flexible URL parsing — accepts full YouTube URLs (
youtube.com/watch?v=,youtu.be/,youtube.com/embed/,youtube.com/shorts/) or bare video IDs - Multi-language support — request transcripts in specific languages with fallback priority
Fetch a YouTube video's transcript.
| Parameter | Type | Default | Description |
|---|---|---|---|
url |
string | required | YouTube video URL or video ID |
languages |
string[] | ["en"] |
Preferred languages in priority order |
format |
string | "text" |
Output format: text, json, pretty, webvtt, srt |
preserve_formatting |
boolean | false |
Keep HTML formatting tags in the transcript |
Fetch a transcript and return it with summarization instructions for the LLM client.
| Parameter | Type | Default | Description |
|---|---|---|---|
url |
string | required | YouTube video URL or video ID |
prompt |
string | (default prompt) | Custom summarization instructions |
languages |
string[] | ["en"] |
Preferred languages in priority order |
List available transcript languages for a video.
| Parameter | Type | Default | Description |
|---|---|---|---|
url |
string | required | YouTube video URL or video ID |
uvx youtube-summarizeAdd to your claude_desktop_config.json:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"youtube-summarize": {
"command": "uvx",
"args": ["youtube-summarize"]
}
}
}claude mcp add youtube-summarize -- uvx youtube-summarizeRun the server over stdio:
uvx youtube-summarize- Python 3.13+
- uv package manager
# Install dependencies
uv sync
# Launch the MCP inspector (web UI for testing tools)
uv run mcp dev main.pyMIT
mcp-name: io.github.zlatkoc/youtube-summarize
