YouTube Toolbox

Un conjunto de herramientas para interactuar con YouTube, que incluye búsqueda de videos, extracción de transcripciones y recuperación de comentarios.

Documentación

py-mcp-youtube-toolbox

smithery badge Version License

Un servidor MCP que proporciona a los asistentes de IA herramientas potentes para interactuar con YouTube, incluyendo búsqueda de videos, extracción de transcripciones, recuperación de comentarios y más.

YouTube Toolbox MCP server

Descripción general

py-mcp-youtube-toolbox proporciona las siguientes funcionalidades relacionadas con YouTube:

  • Buscar videos de YouTube con opciones de filtrado avanzadas
  • Obtener información detallada sobre videos y canales
  • Recuperar comentarios de videos con opciones de ordenamiento
  • Extraer transcripciones y subtítulos de videos en múltiples idiomas
  • Encontrar videos relacionados para un video dado
  • Obtener videos en tendencia por región
  • Generar resúmenes del contenido de videos basados en transcripciones
  • Análisis avanzado de transcripciones con filtrado, búsqueda y capacidades multi-video

Tabla de contenidos

Requisitos previos

  1. Python: Instala Python 3.12 o superior
  2. Clave de API de YouTube:
    • Ve a Google Cloud Console
    • Crea un nuevo proyecto o selecciona uno existente
    • Habilita la YouTube Data API v3:
      1. Ve a "APIs & Services" > "Library"
      2. Busca y habilita "YouTube Data API v3"
    • Crea credenciales:
      1. Ve a "APIs & Services" > "Credentials"
      2. Haz clic en "Create Credentials" > "API key"
      3. Anota tu clave de API

Instalación

Clonar con Git

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

Configuración

  1. Instala el gestor de paquetes UV:
curl -LsSf https://astral.sh/uv/install.sh | sh
  1. Crea y activa el entorno virtual:
uv venv -p 3.12
source .venv/bin/activate  # On MacOS/Linux
# or
.venv\Scripts\activate  # On Windows
  1. Instala las dependencias:
uv pip install -r requirements.txt
  1. Variables de entorno:
cp env.example .env
vi .env
# Update with your YouTube API key
YOUTUBE_API_KEY=your_youtube_api_key

Usando Docker

  1. Construye la imagen de Docker:
docker build -t py-mcp-youtube-toolbox .
  1. Ejecuta el contenedor:
docker run -e YOUTUBE_API_KEY=your_youtube_api_key py-mcp-youtube-toolbox

Usando Local

  1. Ejecuta el servidor:
mcp run server.py
  1. Ejecuta el MCP Inspector:
mcp dev server.py

Configurar ajustes de MCP

Agrega la configuración del servidor a tu archivo de ajustes de MCP:

Aplicación de escritorio de Claude

  1. Para instalar automáticamente a través de Smithery:
npx -y @smithery/cli install @jikime/py-mcp-youtube-toolbox --client claude
  1. Para instalar manualmente abre ~/Library/Application Support/Claude/claude_desktop_config.json

Agrega esto al 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"
      }
    }
  }
}

Cursor IDE

abre ~/.cursor/mcp.json

Agrega esto al 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"
      ]
    }
  }
}

Documentación de herramientas

Herramientas de video

  • search_videos: Busca videos de YouTube con opciones de filtrado avanzadas (canal, duración, región, etc.)
  • get_video_details: Obtén información detallada sobre un video específico de YouTube (título, canal, vistas, me gusta, etc.)
  • get_video_comments: Recupera comentarios de un video de YouTube con opciones de ordenamiento
  • get_related_videos: Encuentra videos relacionados con un video específico de YouTube
  • get_trending_videos: Obtén videos en tendencia en YouTube por región

Herramientas de canal

  • get_channel_details: Obtén información detallada sobre un canal de YouTube (nombre, suscriptores, vistas, etc.)

Herramientas de transcripción

  • get_video_transcript: Extrae transcripciones/subtítulos de videos de YouTube en idiomas especificados
  • get_video_enhanced_transcript: Extracción avanzada de transcripciones con filtrado, búsqueda y capacidades multi-video

Herramientas de prompt

  • transcript_summary: Genera resúmenes del contenido de videos de YouTube basados en transcripciones con opciones personalizables

Herramientas de recursos

  • youtube://available-youtube-tools: Obtén una lista de todas las herramientas disponibles de YouTube
  • youtube://video/{video_id}: Obtén información detallada sobre un video específico
  • youtube://channel/{channel_id}: Obtén información sobre un canal específico
  • youtube://transcript/{video_id}?language={language}: Obtén la transcripción de un video específico

Desarrollo

Para pruebas locales, puedes usar el script de cliente incluido:

# 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: 

Licencia

Licencia MIT