MCP Video Digest
Transcreva e resuma o conteúdo de vídeo a partir de links usando vários serviços de transcrição.
Documentação
MCP Video Digest (extração e resumo de conteúdo de vídeo)
Introdução do Projeto
MCP Video Digest é um serviço de processamento de conteúdo de vídeo que extrai áudio de vídeos do YouTube, Bilibili, TikTok, Twitter... e o converte em texto. O serviço suporta vários provedores de transcrição, incluindo Deepgram, Gladia, Speechmatics e AssemblyAI, que podem ser usados de forma flexível de acordo com as chaves de API configuradas. (Primeiro projeto de prática com MCP, principalmente para me familiarizar com o processo de desenvolvimento e execução do MCP)
Recursos
- Suporta download de conteúdo de streaming e extração de áudio em mais de 1000 sites
- Suporte a múltiplos provedores de serviço de transcrição:
- Deepgram
- Gladia
- Speechmatics
- AssemblyAI
- Mecanismo flexível de seleção de serviços, que escolhe automaticamente o serviço com base nas chaves de API disponíveis
- Design de processamento assíncrono, melhorando o desempenho de concorrência
- Tratamento completo de erros e registro de logs
- Suporte à separação de falantes
- × Suporte à aceleração de processamento de modelo local com CPU/GPU
Estrutura de Diretórios
.
├── src/ # 源代码目录
│ ├── services/ # 服务实现目录
│ │ ├── download/ # 下载服务
│ │ └── transcription/ # 转录服务
│ ├── main.py # 主程序逻辑
│ └── __init__.py # 包初始化文件
├── config/ # 配置文件目录
├── test.py # 测试脚本
├── run.py # 服务启动脚本
├── pyproject.toml # 项目配置和依赖管理
├── uv.lock # UV 依赖锁定文件
└── .env # 环境变量配置
Capturas de Tela de Teste


Instruções de Instalação
1. Instalar o uv ou usar Python
Se ainda não tiver o uv instalado, você pode instalá-lo com o seguinte comando:
curl -LsSf https://astral.sh/uv/install.sh | sh
2. Clonar o projeto:
git clone https://github.com/R-lz/mcp-video-digest.git
cd mcp-video-digest
3. Criar e ativar o ambiente virtual:
uv venv
source .venv/bin/activate # Linux/Mac
# 或
.venv\Scripts\activate # Windows
4. Instalar as dependências:
uv pip install -e .
O speechmatics apresentou vários problemas durante a depuração com requests (não é um problema do speechmatics, sou eu que sou iniciante), então usei o speechmatics SDK
Configuração
-
Na raiz do projeto, crie o arquivo
.envou renomeie o.env.examplepara configurar as chaves de API necessárias:mv .env.example .env # 修改 DEEPGRAM_API_KEY=your_deepgram_key GLADIA_API_KEY=your_gladia_key SPEECHMATICS_API_KEY=your_speechmatics_key ASSEMBLYAI_API_KEY=your_assemblyai_keyObservação: é necessário configurar pelo menos uma chave de API de um serviço
-
Ordem de prioridade dos serviços:
- Deepgram (recomendado para conteúdo em chinês)
- Gladia
- Speechmatics
- AssemblyAI
Como Usar
-
Iniciar o serviço:
uv run src/main.pyOu usar o modo de depuração:
UV_DEBUG=1 uv run src/main.py -
Chamar o serviço:
from mcp.client import MCPClient async def process_video(): client = MCPClient() result = await client.call( "get_video_content", url="https://www.youtube.com/watch?v=video_id" ) print(result) -
O SSE do cliente é apenas um exemplo
{
"mcpServers": {
"video_digest": {
"url": "http://<ip>:8000/sse"
}
}
}
# 当然可以在Client传递Key
"env": {
"DEEPGRAM_API_KEY":"your_deepgram_key"
}
O modo STDIO é configurado apenas alterando o comando de inicialização: ainda não validado nem testado Documentação do MCP
Testes
Execute o script de teste:
uv run test.py
# 或
python test.py
O script de teste irá:
- Verificar a configuração das variáveis de ambiente
- Testar a funcionalidade de download do YouTube
- Testar cada serviço de transcrição
- Testar o fluxo completo de processamento de vídeo
Guia de Desenvolvimento
-
Adicionar um novo serviço de transcrição:
- Crie uma nova classe de serviço no diretório
src/services/transcription/ - Herde da classe
BaseTranscriptionService - Implemente o método
transcribe
- Crie uma nova classe de serviço no diretório
-
Personalizar o serviço de download:
- Modifique ou adicione novos downloaders no diretório
src/services/download/ - Herde ou modifique a classe
YouTubeDownloader
- Modifique ou adicione novos downloaders no diretório
Gerenciamento de Dependências
- Use
uv pip install package_namepara instalar novas dependências - Use
uv pip freeze > requirements.txtpara exportar a lista de dependências - Use
pyproject.tomlpara gerenciar dependências, euv.lockpara fixar as versões das dependências
Tratamento de Erros
O serviço lida com as seguintes situações:
- Chaves de API ausentes ou inválidas
- Falha no download do vídeo
- Falha na transcrição do áudio
- Problemas de conexão de rede
- Limitações e cotas do serviço
Observações
- Garanta espaço em disco suficiente para os arquivos temporários
- Preste atenção aos limites de uso da API de cada provedor de serviço
- Recomenda-se usar Python 3.11 ou versão superior
- Os arquivos temporários são limpos automaticamente
- Usar o uv proporciona maior velocidade de instalação de dependências e melhor gerenciamento delas
- O download do YouTube pode exigir autenticação; você pode copiar o cookie para o arquivo cookies.txt na raiz do projeto gere rapidamente com um plugin ou use outros métodos de autenticação como cookies-from-browser, yt-dlp
Solicitação de Chave STT e Cotas Gratuitas
- Speechmatics 8 horas gratuitas por mês - Preços
- Gladia 10 horas gratuitas por mês - Preços
- AssemblyAI US$ 50 de créditos gratuitos - Preços
- Deepgram US$ 200 de créditos gratuitos - Preços
O conteúdo é apenas para referência
Licença
Licenciado sob a licença MIT.