youtube-summarize
Servidor MCP que obtém transcrições de vídeos do YouTube e as resume usando seu cliente LLM
Documentação
youtube-summarize
Servidor MCP que busca transcrições de vídeos do YouTube e opcionalmente as resume.

Recursos
- Buscar transcrições em vários formatos (texto, JSON, SRT, WebVTT, pretty-print)
- Metadados do vídeo — título, descrição, canal, data de upload, duração, visualizações, capítulos (via yt-dlp)
- Carimbos de tempo opcionais em transcrições de texto simples
- Resumir vídeos — retorna a transcrição com o prompt claramente separado para revisão humana antes que o LLM atue sobre ele
- Listar vídeos de playlist — enumeração rápida de qualquer playlist pública com ordenação opcional
- Pesquisar vídeos — resultados classificados e limpos com opções de ordenação e filtro, sem anúncios, prateleiras de Shorts e recomendações personalizadas do site do YouTube
- Listar idiomas disponíveis para as transcrições de qualquer vídeo
- Análise flexível de URL — aceita URLs completas do YouTube (
youtube.com/watch?v=,youtu.be/,youtube.com/embed/,youtube.com/shorts/) ou IDs de vídeo simples - Suporte a vários idiomas — solicite transcrições em idiomas específicos com prioridade de fallback
Ferramentas
get_transcript
Busca a transcrição de um vídeo do YouTube. Por padrão, a resposta é prefixada com um bloco [METADATA] (título, canal, publicação, duração, visualizações, descrição); passe include_metadata=false para saída apenas com a transcrição.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
url | string | obrigatório | URL do vídeo do YouTube ou ID do vídeo |
languages | string[] | ["en"] | Idiomas preferidos em ordem de prioridade |
format | string | "text" | Formato de saída: text, json, pretty, webvtt, srt |
preserve_formatting | boolean | false | Manter tags de formatação HTML na transcrição |
include_timestamps | boolean | false | Quando true com format="text", prefixar cada linha com [HH:MM:SS]. Ignorado para outros formatos (eles já incluem carimbos de tempo). |
include_metadata | boolean | true | Antepor um bloco [METADATA] antes da transcrição. Passe false para saída apenas com a transcrição. |
summarize_transcript
Busca uma transcrição e a retorna com instruções de resumo. A resposta é estruturada em seções claramente rotuladas ([INSTRUCTIONS], [PROMPT_SOURCE], [VIDEO], [METADATA], [TRANSCRIPT]) para que um humano possa revisar o prompt antes de permitir que o LLM atue sobre ele.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
url | string | obrigatório | URL do vídeo do YouTube ou ID do vídeo |
prompt | string | (prompt padrão) | Instruções personalizadas de resumo |
languages | string[] | ["en"] | Idiomas preferidos em ordem de prioridade |
include_timestamps | boolean | false | Prefixar cada linha da transcrição com [HH:MM:SS]. |
include_metadata | boolean | true | Incluir um bloco [VIDEO] com título, canal, publicação, duração, visualizações e descrição. |
get_video_metadata
Busca metadados (título, descrição, canal, data de upload, duração, visualizações, tags, capítulos, etc.) de um vídeo do YouTube. Suportado por yt-dlp.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
url | string | obrigatório | URL do vídeo do YouTube ou ID do vídeo |
list_playlist_videos
Lista os vídeos de uma playlist do YouTube (título, ID, canal, duração, visualizações, URL). Os metadados por vídeo são intencionalmente enxutos para que a chamada permaneça rápida mesmo para playlists grandes; chame get_video_metadata com um ID de vídeo específico para detalhes completos.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
url | string | obrigatório | URL da playlist do YouTube (com ?list=...) ou ID da playlist simples |
limit | integer | 500 | Máximo de vídeos a retornar |
sort_by | string | "index" | Um de: index (ordem da playlist), title, duration, views. upload_date não é suportado. |
order | string | "asc" | asc ou desc |
search_videos
Pesquisa vídeos no YouTube e retorna uma lista classificada e limpa (título, ID, canal, duração, visualizações, URL) — apenas vídeos reais, sem anúncios, prateleiras de recomendação ou personalização. A ordenação por relevância ainda vem do backend do YouTube. Combine com get_transcript ou summarize_transcript no ID ou URL de um resultado.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
query | string | obrigatório | Termos de pesquisa |
limit | integer | 10 | Máximo de resultados a retornar |
sort_by | string | "relevance" | Um de: relevance, date (mais recentes primeiro), views, rating |
uploaded | string | "any" | Filtrar por tempo de upload: any, hour, today, week, month, year |
duration | string | "any" | Filtrar por duração: any, short (<4 min), medium (4–20 min), long (>20 min) |
list_transcripts
Lista os idiomas de transcrição disponíveis para um vídeo.
| Parâmetro | Tipo | Padrão | Descrição |
|---|---|---|---|
url | string | obrigatório | URL do vídeo do YouTube ou ID do vídeo |
Instalação
Início rápido (recomendado)
uvx youtube-summarize
Claude Desktop
Adicione ao seu 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 Code
claude mcp add youtube-summarize -- uvx youtube-summarize
Outros clientes MCP
Execute o servidor via stdio:
uvx youtube-summarize
Pré-requisitos
- Python 3.13+
- uv gerenciador de pacotes
Desenvolvimento
# Install dependencies
uv sync
# Launch the MCP inspector (web UI for testing tools)
uv run mcp dev main.py
Licença
MIT
mcp-name: io.github.zlatkoc/youtube-summarize