YouTube Toolbox

Um conjunto de ferramentas para interagir com o YouTube, incluindo pesquisa de vídeos, extração de transcrições e recuperação de comentários.

Documentação

py-mcp-youtube-toolbox

smithery badge Version License

Um servidor MCP que fornece aos assistentes de IA ferramentas poderosas para interagir com o YouTube, incluindo busca de vídeos, extração de transcrições, recuperação de comentários e muito mais.

YouTube Toolbox MCP server

Visão Geral

O py-mcp-youtube-toolbox fornece as seguintes funcionalidades relacionadas ao YouTube:

  • Buscar vídeos no YouTube com opções avançadas de filtragem
  • Obter informações detalhadas sobre vídeos e canais
  • Recuperar comentários de vídeos com opções de ordenação
  • Extrair transcrições e legendas de vídeos em vários idiomas
  • Encontrar vídeos relacionados para um vídeo específico
  • Obter vídeos em alta por região
  • Gerar resumos do conteúdo dos vídeos com base nas transcrições
  • Análise avançada de transcrições com filtragem, busca e capacidades de múltiplos vídeos

Sumário

Pré-requisitos

  1. Python: Instale Python 3.12 ou superior
  2. Chave da API do YouTube:
    • Acesse o Google Cloud Console
    • Crie um novo projeto ou selecione um existente
    • Ative a YouTube Data API v3:
      1. Vá em "APIs & Services" > "Library"
      2. Pesquise e ative "YouTube Data API v3"
    • Crie as credenciais:
      1. Vá em "APIs & Services" > "Credentials"
      2. Clique em "Create Credentials" > "API key"
      3. Anote sua chave de API

Instalação

Clonar via Git

git clone https://github.com/jikime/py-mcp-youtube-toolbox.git
cd py-mcp-youtube-toolbox

Configuração

  1. Instale o gerenciador de pacotes UV:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Crie e ative o ambiente virtual:
uv venv -p 3.12
source .venv/bin/activate  # On MacOS/Linux
# or
.venv\Scripts\activate  # On Windows
  1. Instale as dependências:
uv pip install -r requirements.txt
  1. Variáveis de ambiente:
cp env.example .env
vi .env
# Update with your YouTube API key
YOUTUBE_API_KEY=your_youtube_api_key

Usando Docker

  1. Construa a imagem Docker:
docker build -t py-mcp-youtube-toolbox .
  1. Execute o contêiner:
docker run -e YOUTUBE_API_KEY=your_youtube_api_key py-mcp-youtube-toolbox

Usando Local

  1. Execute o servidor:
mcp run server.py
  1. Execute o MCP Inspector:
mcp dev server.py

Configurar Configurações do MCP

Adicione a configuração do servidor ao seu arquivo de configurações do MCP:

Aplicativo de desktop Claude

  1. Para instalar automaticamente via Smithery:
npx -y @smithery/cli install @jikime/py-mcp-youtube-toolbox --client claude
  1. Para instalar manualmente abra ~/Library/Application Support/Claude/claude_desktop_config.json

Adicione isso ao objeto mcpServers:

{
  "mcpServers": {
    "YouTube Toolbox": {
      "command": "/path/to/bin/uv",
      "args": [
        "--directory",
        "/path/to/py-mcp-youtube-toolbox",
        "run",
        "server.py"
      ],
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key"
      }
    }
  }
}

IDE Cursor

abra ~/.cursor/mcp.json

Adicione isso ao objeto mcpServers:

{
  "mcpServers": {
    "YouTube Toolbox": {
      "command": "/path/to/bin/uv",
      "args": [
        "--directory",
        "/path/to/py-mcp-youtube-toolbox",
        "run",
        "server.py"
      ],
      "env": {
        "YOUTUBE_API_KEY": "your_youtube_api_key"
      }
    }
  }
}

para Docker

{
  "mcpServers": {
    "YouTube Toolbox": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e", "YOUTUBE_API_KEY=your_youtube_api_key",
        "py-mcp-youtube-toolbox"
      ]
    }
  }
}

Documentação das Ferramentas

Ferramentas de Vídeo

  • search_videos: Buscar vídeos no YouTube com opções avançadas de filtragem (canal, duração, região, etc.)
  • get_video_details: Obter informações detalhadas sobre um vídeo específico do YouTube (título, canal, visualizações, curtidas, etc.)
  • get_video_comments: Recuperar comentários de um vídeo do YouTube com opções de ordenação
  • get_related_videos: Encontrar vídeos relacionados a um vídeo específico do YouTube
  • get_trending_videos: Obter vídeos em alta no YouTube por região

Ferramentas de Canal

  • get_channel_details: Obter informações detalhadas sobre um canal do YouTube (nome, inscritos, visualizações, etc.)

Ferramentas de Transcrição

  • get_video_transcript: Extrair transcrições/legendas de vídeos do YouTube em idiomas especificados
  • get_video_enhanced_transcript: Extração avançada de transcrições com filtragem, busca e capacidades de múltiplos vídeos

Ferramentas de Prompt

  • transcript_summary: Gerar resumos do conteúdo de vídeos do YouTube com base nas transcrições, com opções personalizáveis

Ferramentas de Recurso

  • youtube://available-youtube-tools: Obter uma lista de todas as ferramentas disponíveis do YouTube
  • youtube://video/{video_id}: Obter informações detalhadas sobre um vídeo específico
  • youtube://channel/{channel_id}: Obter informações sobre um canal específico
  • youtube://transcript/{video_id}?language={language}: Obter transcrição de um vídeo específico

Desenvolvimento

Para testes locais, você pode usar o script de cliente incluído:

# Example: Search videos
uv run client.py search_videos query="MCP" max_results=5

# Example: Get video details
uv run client.py get_video_details video_id=zRgAEIoZEVQ

# Example: Get channel details
uv run client.py get_channel_details channel_id=UCRpOIr-NJpK9S483ge20Pgw

# Example: Get video comments
uv run client.py get_video_comments video_id=zRgAEIoZEVQ max_results=10 order=time

# Example: Get video transcript
uv run client.py get_video_transcript video_id=zRgAEIoZEVQ language=ko

# Example: Get related videos
uv run client.py get_related_videos video_id=zRgAEIoZEVQ max_results=5

# Example: Get trending videos
uv run client.py get_trending_videos region_code=ko max_results=10

# Example: Advanced transcript extraction
uv run client.py get_video_enhanced_transcript video_ids=zRgAEIoZEVQ language=ko format=timestamped include_metadata=true start_time=100 end_time=200 query=에이전트 case_sensitive=true segment_method=equal segment_count=2

# Example: 

Licença

Licença MIT