YouTube MCP Server
Extraer metadatos y subtítulos de videos de YouTube y convertirlos a markdown.
Documentación
Servidor MCP de YouTube
Un servidor de Model Context Protocol (MCP) para interactuar con videos de YouTube. Este servidor proporciona herramientas para extraer metadatos de videos, subtítulos y convertirlos a formato markdown con varias plantillas.
Características
- Metadatos de Video: Obtén información completa del video
- Extracción de Subtítulos: Soporte para subtítulos automáticos y manuales
- Múltiples Idiomas: Soporte integrado para inglés y francés
- Sistema de Plantillas: Tres plantillas markdown integradas:
- Básica: Formato de transcripción simple
- Detallada: Metadatos completos con marcas de tiempo
- Búsqueda: Resaltado de resultados con contexto
- Funcionalidad de Búsqueda: Busca dentro de los subtítulos del video
- Autenticación Flexible: Soporta autenticación mediante clave API y OAuth2
Requisitos Previos
- Node.js (v16 o superior)
- npm o yarn
- Una clave de YouTube Data API y/o credenciales OAuth2
Instalación
- Clona el repositorio:
git clone [repository-url]
cd youtube-mcp
- Instala las dependencias:
npm install
- Compila el proyecto:
npm run build
Configuración
Crea un archivo .env en el directorio raíz con tus credenciales de YouTube:
YOUTUBE_API_KEY=your_api_key
YOUTUBE_CLIENT_ID=your_client_id
YOUTUBE_CLIENT_SECRET=your_client_secret
YOUTUBE_REFRESH_TOKEN=your_refresh_token # Optional, for OAuth2
Configuración de MCP
Agrega el servidor a tu archivo de configuración de MCP (generalmente en ~/.config/Code/User/globalStorage/rooveterinaryinc.roo-cline/settings/cline_mcp_settings.json):
{
"mcpServers": {
"youtube": {
"command": "node",
"args": ["path/to/youtube-mcp/build/index.js"],
"env": {
"YOUTUBE_API_KEY": "your_api_key",
"YOUTUBE_CLIENT_ID": "your_client_id",
"YOUTUBE_CLIENT_SECRET": "your_client_secret"
},
"disabled": false,
"alwaysAllow": []
}
}
}
Uso
El servidor proporciona las siguientes herramientas:
1. Obtener Información del Video
use_mcp_tool youtube get_video_info {
"url": "https://www.youtube.com/watch?v=VIDEO_ID"
}
2. Obtener Subtítulos
use_mcp_tool youtube get_captions {
"url": "https://www.youtube.com/watch?v=VIDEO_ID",
"language": "en" // Optional, defaults to "en"
}
3. Convertir a Markdown
use_mcp_tool youtube convert_to_markdown {
"url": "https://www.youtube.com/watch?v=VIDEO_ID",
"template_name": "detailed", // Optional, "basic", "detailed", or "search"
"language": "en", // Optional
"options": { // Optional
"include_chapters": true,
"search_term": "keyword" // Only for search template
}
}
4. Listar Plantillas
use_mcp_tool youtube list_templates
Dependencias
{
"dependencies": {
"@modelcontextprotocol/sdk": "latest",
"googleapis": "^146.0.0",
"google-auth-library": "^9.0.0",
"youtube-captions-scraper": "^2.0.0",
"express": "^4.18.2",
"open": "^9.1.0"
},
"devDependencies": {
"@types/node": "^20.0.0",
"typescript": "^5.0.0",
"tsx": "^4.0.0"
}
}
Configuración de OAuth2
Para autenticación OAuth2 (requerida para acceso a videos privados):
- Crea un proyecto en la Consola de Google Cloud
- Habilita la YouTube Data API v3
- Crea credenciales OAuth2 (tipo aplicación web)
- Ejecuta el script de autenticación:
node src/get-api-key.js
- Sigue las indicaciones del navegador para autorizar la aplicación
- Copia el token de actualización a tu configuración
Personalización de Plantillas
Puedes agregar plantillas personalizadas modificando el arreglo DEFAULT_TEMPLATES en src/index.ts. Las plantillas siguen esta estructura:
interface MarkdownTemplate {
name: string;
description: string;
format: {
header?: string;
chapter_format?: string;
caption_block: string;
timestamp_format?: string;
search_result_format?: string;
}
}
Licencia
MIT
Contribuciones
- Haz un fork del repositorio
- Crea tu rama de características (
git checkout -b feature/amazing-feature) - Realiza tus cambios (
git commit -m 'Add some amazing feature') - Sube los cambios a la rama (
git push origin feature/amazing-feature) - Abre una Solicitud de Extracción