youtube-summarize is an MCP (Model Context Protocol) server whose main function is to fetch YouTube video transcripts and optionally summarize them. It was developed by zlatkoc and is hosted on GitHub.
[Purpose] This tool is aimed at users who need to extract transcript text from YouTube videos and further process it (such as summarizing), and can be used as an extension capability for MCP clients (such as Claude Desktop).
[Main Capabilities]
- Fetch transcripts in multiple formats: text, JSON, SRT, WebVTT, pretty-print.
- Fetch video metadata: title, description, channel, upload date, duration, view count, chapters (via yt-dlp).
- Optionally include timestamps in plain text transcripts.
- Summarize videos: return the transcript and clearly separate out the prompt for humans to review before LLM processing.
- List playlist videos: quickly enumerate any public playlist, with optional sorting.
- Search videos: return clean sorted results, with sorting and filtering support, no ads, Shorts shelves, or personalized recommendations.
- List the languages available for any video's transcript.
- Flexible URL parsing: accept full YouTube URLs (youtube.com/watch?v=, youtu.be/, youtube.com/embed/, youtube.com/shorts/) or plain video IDs.
- Multilingual support: request transcripts in a specified language, with fallback priority.
[Tool Descriptions]
- get_transcript: fetch a YouTube video transcript. The default response prefix is a [METADATA] block (title, channel, publish date, duration, view count, description); pass include_metadata=false to output only the transcript.
- summarize_transcript: fetch the transcript and return a response with summarization instructions. The response is divided into clearly marked sections ([INSTRUCTIONS], [PROMPT_SOURCE], [VIDEO], [METADATA], [TRANSCRIPT]), making it easy for humans to review the prompt before letting an LLM process it.
- get_video_metadata: fetch metadata for a YouTube video (title, description, channel, upload date, duration, view count, tags, chapters, etc.), powered by yt-dlp.
- list_playlist_videos: list the videos in a YouTube playlist (title, ID, channel, duration, view count, URL). The metadata for individual videos is deliberately kept minimal so that it can be called quickly even for large playlists; for full details, call get_video_metadata on a specific video ID.
- search: search YouTube videos and return a clean sorted list (title, ID, channel, duration, view count, URL), containing only actual videos, with no ads, recommendation shelves, or personalization. Relevance ranking still comes from the YouTube backend. The resulting IDs or URLs can be used with get_transcript or summarize_transcript.
- list_transcripts: list the transcript languages available for a video.
[Usage] Recommended quick start: add the configuration to claude_desktop_config.json. macOS path: ~/Library/Application Support/Claude/claude_desktop_config.json Windows path: %APPDATA%\Claude\claude_desktop_config.json Other MCP clients: run the server via stdio. Use the uv package manager. MCP name: io.github.zlatkoc/youtube-summarize
[Applicable Scenarios]
- Need to extract YouTube video transcript text for reading, archiving, or further analysis.
- Need to manually review summarization prompts before LLM processing.
- Need to batch-fetch playlist video information or search YouTube videos and get clean results.
[Limitations]
- The summarization feature itself depends on the user's connected LLM; the tool only returns the transcript and prompt structure.
- Search relevance ranking is determined by the YouTube backend.
- The metadata in playlist video lists is a condensed version; full metadata requires a separate call.