Find BGM

Encontra

Documentação

Servidor MCP Find BGM

Um servidor MCP que ajuda criadores de conteúdo do YouTube a encontrar a música de fundo perfeita para seus Shorts, analisando o conteúdo do roteiro e recomendando faixas do YouTube Music.

Recursos

  • Análise de Roteiro: Analisa humor, tema, ritmo e sentimento dos roteiros de vídeo
  • Recomendações Inteligentes: Usa a API do YouTube Music para encontrar faixas de fundo adequadas
  • Filtro de Duração: Garante que as recomendações se ajustem à duração do seu vídeo curto
  • Pontuação de Confiança: Classifica as recomendações por relevância ao seu conteúdo

Arquitetura

O servidor segue princípios de arquitetura limpa com design modular:

find_bgm/
├── server.py              # Main server entry point
├── config.py              # Configuration management
├── models.py              # Data models and types
├── script_analyzer.py     # Script analysis logic
├── music_service.py       # YouTube Music API integration
├── tools.py               # MCP tool definitions
└── test_server.py         # Test suite

Instalação

  1. Instale as dependências:
pip install -r requirements.txt
  1. (Opcional) Configure o acesso à API do YouTube Music:
    • Siga o ytmusicapi setup guide
    • Crie o arquivo oauth.json no diretório do projeto
    • Sem isso, o servidor usará recomendações simuladas

Uso

O servidor fornece uma ferramenta principal: recommend_background_music

Parâmetros

  • script (obrigatório): Seu roteiro/conteúdo de Short do YouTube
  • duration (obrigatório): Duração do seu Short em segundos (15-60)
  • genre_preference (opcional): "pop", "electronic", "chill", "rock", "hip-hop", "classical", "ambient", "any"
  • mood_preference (opcional): "upbeat", "calm", "dramatic", "energetic", "relaxed", "motivational", "any"
  • content_type (opcional): "comedy", "educational", "lifestyle", "fitness", "cooking", "travel", "tech", "other"

Exemplo de Resposta

{
  "analysis": {
    "detected_mood": "motivational",
    "detected_theme": "fitness", 
    "pacing": "medium",
    "sentiment_score": 0.4,
    "keywords": ["workout", "energy", "strong"]
  },
  "recommendations": [
    {
      "title": "Uplifting Corporate Background",
      "artist": "Audio Library",
      "youtube_music_id": "abc123",
      "confidence_score": 0.85,
      "reason": "Strong match for motivational mood and fitness content",
      "duration": 45,
      "loop_suitable": true
    }
  ]
}

Configuração

Personalize o comportamento com variáveis de ambiente:

# Logging level
export BGM_LOG_LEVEL=DEBUG

# OAuth file location
export BGM_OAUTH_FILE=my_oauth.json

# Search and recommendation limits
export BGM_MAX_DURATION=240
export BGM_SEARCH_LIMIT=15

Configuração da API do YouTube Music

Método 1: Autenticação via Navegador (Recomendado)

  1. Instale o ytmusicapi: pip install ytmusicapi
  2. Execute: ytmusicapi browser
  3. Siga as instruções para colar os cabeçalhos do navegador do YouTube Music
  4. Salve como oauth.json

Método 2: Configuração OAuth

  1. Crie um projeto no Google Cloud
  2. Ative a API de Dados do YouTube v3
  3. Crie credenciais OAuth
  4. Execute: ytmusicapi oauth
  5. Conclua o fluxo de autenticação

Sem a API, o servidor funciona com dados simulados para testes.

Executando o Servidor

python server.py

O servidor roda em stdio e pode ser integrado a qualquer cliente compatível com MCP.

Testes

# Test all components
python test_server.py

# Test with virtual environment
source venv/bin/activate
python test_server.py

Integração com Claude Desktop

Adicione ao seu claude_desktop_config.json:

{
  "mcpServers": {
    "find-bgm": {
      "command": "/path/to/find_bgm/venv/bin/python",
      "args": ["/path/to/find_bgm/server.py"]
    }
  }
}

Componentes

ScriptAnalyzer

Analisa o conteúdo do roteiro para detectar humor, tema e ritmo usando processamento de linguagem natural.

YouTubeMusicService & MusicRecommendationService

Lida com a integração da API do YouTube Music e gera recomendações pontuadas.

BGMTools

Interface de ferramenta MCP que orquestra a análise de roteiro e recomendações de música.

Gerenciamento de Configuração

Configuração baseada em ambiente com padrões sensatos e segurança de tipos.

Exemplo de Uso

from models import RecommendationRequest
from script_analyzer import ScriptAnalyzer
from music_service import MusicRecommendationService

# Analyze script
analyzer = ScriptAnalyzer()
analysis = analyzer.analyze_script("Your video script here")

# Get recommendations
service = MusicRecommendationService(music_service, config)
recommendations = await service.get_recommendations(
    analysis, "electronic", "upbeat", 30
)

O servidor fornece recomendações musicais inteligentes para ajudar criadores a encontrar a trilha sonora perfeita para seu conteúdo! 🎵