YouTube MCP Server
Extraia metadados e legendas de vídeos do YouTube e converta-os para markdown.
Documentação
YouTube MCP Server
Um servidor Model Context Protocol (MCP) para interagir com vídeos do YouTube. Este servidor fornece ferramentas para extrair metadados de vídeo, legendas e convertê-los para o formato markdown com vários modelos.
Recursos
- Metadados de Vídeo: Obter informações abrangentes do vídeo
- Extração de Legendas: Suporte para legendas automáticas e manuais
- Múltiplos Idiomas: Suporte integrado para inglês e francês
- Sistema de Modelos: Três modelos markdown integrados:
- Básico: Formato simples de transcrição
- Detalhado: Metadados completos com timestamps
- Pesquisa: Destaque de resultados com contexto
- Funcionalidade de Pesquisa: Pesquisar dentro das legendas do vídeo
- Autenticação Flexível: Suporta autenticação por chave de API e OAuth2
Pré-requisitos
- Node.js (v16 ou superior)
- npm ou yarn
- Uma chave da API de Dados do YouTube e/ou credenciais OAuth2
Instalação
- Clone o repositório:
git clone [repository-url]
cd youtube-mcp
- Instale as dependências:
npm install
- Compile o projeto:
npm run build
Configuração
Crie um arquivo .env no diretório raiz com suas credenciais do 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
Configuração do MCP
Adicione o servidor ao seu arquivo de configurações do MCP (geralmente em ~/.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
O servidor fornece as seguintes ferramentas:
1. Obter Informações do Vídeo
use_mcp_tool youtube get_video_info {
"url": "https://www.youtube.com/watch?v=VIDEO_ID"
}
2. Obter Legendas
use_mcp_tool youtube get_captions {
"url": "https://www.youtube.com/watch?v=VIDEO_ID",
"language": "en" // Optional, defaults to "en"
}
3. Converter para 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 Modelos
use_mcp_tool youtube list_templates
Dependências
{
"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"
}
}
Configuração OAuth2
Para autenticação OAuth2 (necessária para acesso a vídeos privados):
- Crie um projeto no Google Cloud Console
- Ative a API de Dados do YouTube v3
- Crie credenciais OAuth2 (tipo Aplicativo Web)
- Execute o script de autenticação:
node src/get-api-key.js
- Siga as instruções do navegador para autorizar o aplicativo
- Copie o token de atualização para sua configuração
Personalizando Modelos
Você pode adicionar modelos personalizados modificando o array DEFAULT_TEMPLATES em src/index.ts. Os modelos seguem esta estrutura:
interface MarkdownTemplate {
name: string;
description: string;
format: {
header?: string;
chapter_format?: string;
caption_block: string;
timestamp_format?: string;
search_result_format?: string;
}
}
Licença
MIT
Contribuindo
- Faça um fork do repositório
- Crie sua branch de funcionalidade (
git checkout -b feature/amazing-feature) - Faça commit das suas alterações (
git commit -m 'Add some amazing feature') - Envie para a branch (
git push origin feature/amazing-feature) - Abra um Pull Request