Youtube Summarize

io.github.zlatkocPublished by GitHub account zlatkocv0.6.0Updated Oct 24, 2026

MCP server that fetches YouTube video transcripts and optionally summarizes them

VerifiedSTDIODesktop onlyWeb Search & ScrapingMedia & Design

Overview

AI-generated overview

A local MCP server that fetches YouTube transcripts and metadata, and prepares transcripts for summarization by the assistant.

What you can do
Fetch a video's transcript in text, JSON, SRT, WebVTT or pretty format, with optional timestamps and metadata block, and list available transcript languages for a video. Retrieve video metadata such as title, channel, upload date, duration, views, tags and chapters. List the videos in a public playlist with sorting and a result limit. Search YouTube for videos with sort and upload-time and duration filters, returning a clean ranked list. Return a transcript together with a summarization prompt broken into labeled sections for review.
When to use it
Useful when you want an assistant to read, quote or summarize YouTube content without watching it, or to gather video and playlist details and search results for research or content work.
Requirements
Runs locally over stdio as a Python package (youtube-summarize) launched with uvx; needs Python 3.13+ and the uv package manager. Network access to YouTube is required; no accounts, API keys or environment variables are declared.
Before you install
It fetches public YouTube data on your behalf, so requests go to YouTube and may be subject to rate limits or blocking. Summarization output is prepared for the assistant to act on, so review the prompt and transcript before relying on the result.

Installation

In SourceWeft

  1. Open Youtube Summarize in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

youtube-summarize

MCP server that fetches YouTube video transcripts and optionally summarizes them.

[Demo — summarizing a YouTube video in Claude]

Features

  • Fetch transcripts in multiple formats (text, JSON, SRT, WebVTT, pretty-print)
  • Video metadata — title, description, channel, upload date, duration, views, chapters (via yt-dlp)
  • Optional timestamps in plain-text transcripts
  • Summarize videos — returns transcript with the prompt clearly broken out for human review before the LLM acts on it
  • List playlist videos — fast enumeration of any public playlist with optional sorting
  • Search videos — clean ranked results with sort and filter options, without the ads, Shorts shelves, and personalized recommendations of the YouTube website
  • 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

Tools

get_transcript

Fetch a YouTube video's transcript. By default the response is prefixed with a [METADATA] block (title, channel, published, duration, views, description); pass include_metadata=false for transcript-only output.

ParameterTypeDefaultDescription
urlstringrequiredYouTube video URL or video ID
languagesstring[]["en"]Preferred languages in priority order
formatstring"text"Output format: text, json, pretty, webvtt, srt
preserve_formattingbooleanfalseKeep HTML formatting tags in the transcript
include_timestampsbooleanfalseWhen true with format="text", prefix each line with [HH:MM:SS]. Ignored for other formats (they already include timestamps).
include_metadatabooleantruePrepend a [METADATA] block before the transcript. Pass false for transcript-only output.

summarize_transcript

Fetch a transcript and return it with summarization instructions. The response is structured into clearly-labeled sections ([INSTRUCTIONS], [PROMPT_SOURCE], [VIDEO], [METADATA], [TRANSCRIPT]) so a human can review the prompt before letting the LLM act on it.

ParameterTypeDefaultDescription
urlstringrequiredYouTube video URL or video ID
promptstring(default prompt)Custom summarization instructions
languagesstring[]["en"]Preferred languages in priority order
include_timestampsbooleanfalsePrefix each transcript line with [HH:MM:SS].
include_metadatabooleantrueInclude a [VIDEO] block with title, channel, published, duration, views, and description.

get_video_metadata

Fetch metadata (title, description, channel, upload date, duration, views, tags, chapters, etc.) for a YouTube video. Backed by yt-dlp.

ParameterTypeDefaultDescription
urlstringrequiredYouTube video URL or video ID

list_playlist_videos

List the videos in a YouTube playlist (title, ID, channel, duration, views, URL). Per-video metadata is intentionally lean so the call stays fast even for large playlists; call get_video_metadata with a specific video ID for full detail.

ParameterTypeDefaultDescription
urlstringrequiredYouTube playlist URL (with ?list=...) or bare playlist ID
limitinteger500Maximum videos to return
sort_bystring"index"One of: index (playlist order), title, duration, views. upload_date is not supported.
orderstring"asc"asc or desc

search_videos

Search YouTube for videos and return a clean ranked list (title, ID, channel, duration, views, URL) — only actual videos, with no ads, recommendation shelves, or personalization. Relevance ordering still comes from YouTube's backend. Pair with get_transcript or summarize_transcript on a result's ID or URL.

ParameterTypeDefaultDescription
querystringrequiredSearch terms
limitinteger10Maximum results to return
sort_bystring"relevance"One of: relevance, date (newest first), views, rating
uploadedstring"any"Filter by upload time: any, hour, today, week, month, year
durationstring"any"Filter by length: any, short (<4 min), medium (4–20 min), long (>20 min)

list_transcripts

List available transcript languages for a video.

ParameterTypeDefaultDescription
urlstringrequiredYouTube video URL or video ID

Installation

Quick start (recommended)

bash
uvx youtube-summarize

Claude Desktop

Add to your claude_desktop_config.json:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
json
{  "mcpServers": {    "youtube-summarize": {      "command": "uvx",      "args": ["youtube-summarize"]    }  }}

Claude Code

bash
claude mcp add youtube-summarize -- uvx youtube-summarize

Other MCP clients

Run the server over stdio:

bash
uvx youtube-summarize

Prerequisites

  • Python 3.13+
  • uv package manager

Development

bash
# Install dependenciesuv sync
# Launch the MCP inspector (web UI for testing tools)uv run mcp dev main.py

License

MIT


mcp-name: io.github.zlatkoc/youtube-summarize

Source: README.md at commit 3477951

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.6.0LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts