Shaka Packager MCP Server

MIT License
  • Apple

Integrations

  • Enables packaging videos for DASH streaming format with support for VOD and live streaming configurations.

  • Works with Docker containers for file access, featuring intelligent path handling that automatically translates paths between Docker and host environments.

Servidor MCP de Shaka Packager

⚠️ DESCARGO DE RESPONSABILIDAD POR ESTADO EXPERIMENTAL

Este proyecto se encuentra en fase alfa inicial y es altamente experimental. No se recomienda su uso en producción. Además, ¡probablemente sea un desastre!

Limitaciones actuales:

  • Es posible que te encuentres con un comportamiento inconsistente
  • Las funciones avanzadas (empaquetado, conversión, etc.) aún están en desarrollo activo.
  • La traducción de rutas entre Docker y los entornos del host puede requerir una configuración manual
  • Espere frecuentes cambios de freno y posible inestabilidad.

Informe cualquier problema que encuentre para ayudarnos a mejorar el proyecto.

Un servidor MCP (Protocolo de contexto de modelo) que integra Shaka Packager con aplicaciones de Claude AI para transcodificación, empaquetado y análisis de video.

Este servidor funciona con el servidor MCP del sistema de archivos para permitir que Claude Desktop acceda y procese archivos de video en su computadora, convirtiendo a Claude en un poderoso asistente para tareas de procesamiento de medios.

Características

  • Análisis de video : analice archivos de video para extraer información detallada de transmisión, códecs, tasas de bits y más
  • Empaquetado de medios : Convierta videos para transmisión en formatos HLS y DASH con soporte para VOD y transmisión en vivo
  • Opciones avanzadas :
    • Aplicar cifrado DRM (Widevine, PlayReady, FairPlay)
    • Configurar marcadores de inserción de anuncios
    • Convertir entre formatos (MP4, TS, etc.)
  • Manejo inteligente de rutas : traduce automáticamente rutas entre Docker y entornos de host
  • Gestión robusta de errores : proporciona un análisis de errores significativo con sugerencias para su resolución.
  • Asistencia de comandos : ayuda a formatear correctamente los comandos de Shaka Packager para obtener resultados óptimos
  • Documentación interactiva : ayuda y ejemplos integrados para guiar a los usuarios a través de operaciones complejas
  • Resultados detallados : resúmenes completos y detalles de ejecución de todas las operaciones

Prerrequisitos

Instalación

Usando pip o uv (próximamente)

Instalar el paquete con pip:

pip install shaka-packager-mcp

O con uv:

uv pip install shaka-packager-mcp

De la fuente (recomendado)

git clone https://github.com/coderjun/shaka-packager-mcp.git cd shaka-packager-mcp pip install -e .

O con uv:

git clone https://github.com/coderjun/shaka-packager-mcp.git cd shaka-packager-mcp uv pip install -e .

Integración de escritorio de Claude

Dado que Claude Desktop no admite directamente la carga de archivos de video, utilizaremos un enfoque de dos servidores:

  1. Un servidor MCP de sistema de archivos simplificado para acceder a archivos de video en su computadora
  2. El servidor MCP de Shaka Packager para analizar y procesar esos vídeos

Paso 1: Configurar el servidor del sistema de archivos MCP

Utilice el servidor de sistema de archivos MCP oficial para permitir que Claude acceda a sus archivos de video:

  1. Instale el servidor del sistema de archivos oficial con Docker:
    docker pull mcp/filesystem
  2. Alternativamente, puede compilarlo desde la fuente siguiendo las instrucciones en el repositorio del servidor MCP del sistema de archivos

Paso 2: Busque el archivo de configuración

Localice el archivo de configuración de Claude Desktop:

  • macOS : ~/Library/Application Support/Claude/claude_desktop_config.json
  • Ventanas : %APPDATA%\Claude\claude_desktop_config.json

Si el archivo no existe, créelo.

Paso 3: Agregar ambos servidores a la configuración

Agregue la siguiente configuración, asegurándose de utilizar rutas absolutas:

{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "--mount", "type=bind,src=/PATH/TO/VIDEOS/DIRECTORY,dst=/projects/video-drop", "mcp/filesystem", "/projects" ] }, "shaka-packager": { "command": "/ABSOLUTE/PATH/TO/uv", "args": [ "run", "--with", "mcp[cli]", "/ABSOLUTE/PATH/TO/shaka_packager_mcp.py" ], "env": { "VIDEO_PATH": "/PATH/TO/VIDEOS/DIRECTORY", "SHAKA_PACKAGER_PATH": "/PATH/TO/PACKAGER" } } } }

Reemplazar:

  • /PATH/TO/VIDEOS/DIRECTORY con la ruta al directorio que contiene sus archivos de vídeo
  • /ABSOLUTE/PATH/TO/uv con la ruta completa a su ejecutable uv
  • /ABSOLUTE/PATH/TO/shaka_packager_mcp.py con la ruta completa al archivo de script
  • /PATH/TO/PACKAGER con la ruta completa a su ejecutable Shaka Packager

Por ejemplo:

{ "mcpServers": { "filesystem": { "command": "docker", "args": [ "run", "-i", "--rm", "--mount", "type=bind,src=/Users/username/Videos,dst=/projects/video-drop", "mcp/filesystem", "/projects" ] }, "shaka-packager": { "command": "/Users/username/.local/bin/uv", "args": [ "run", "--with", "mcp[cli]", "/Users/username/Development/shaka-packager-mcp/shaka_packager_mcp.py" ], "env": { "VIDEO_PATH": "/Users/username/Videos", "SHAKA_PACKAGER_PATH": "/Users/username/.shaka/packager" } } } }

Paso 4: Reiniciar Claude Desktop

Después de editar el archivo de configuración, reinicie Claude Desktop para aplicar los cambios.

Cómo utilizar el enfoque de dos servidores

  1. Primero, explore sus archivos de video utilizando el servidor de sistema de archivos simplificado:
    • Pídele a Claude que "enumere los archivos en mi directorio de videos"
    • Navegue hasta el archivo de vídeo que desea analizar o procesar
  2. Una vez que haya encontrado su archivo de video, use su ruta con las herramientas de Shaka Packager:
    • Para análisis: "Por favor, analice este vídeo: /Usuarios/nombreusuario/Videos/ejemplo.mp4"
    • Para procesar: "Por favor, empaquete este video para HLS: /Usuarios/nombreusuario/Videos/ejemplo.mp4"

Solución de problemas

Si encuentra algún problema:

  1. Asegúrese de que ambos servidores estén configurados correctamente con rutas absolutas
  2. Verifique que Shaka Packager esté instalado y accesible
  3. Asegúrese de que el directorio especificado para el servidor del sistema de archivos exista y contenga videos
  4. Consulte los registros de Claude Desktop para detectar errores en:
    • macOS: ~/Library/Logs/Claude/mcp*.log
    • Ventanas: %APPDATA%\Claude\logs\mcp*.log

Uso

Una vez que el servidor MCP del sistema de archivos y el servidor MCP de Shaka Packager se estén ejecutando en Claude Desktop:

  1. Accede a tus archivos de vídeo :
    Please show me the files in my Videos directory
  2. Navega hasta tu archivo de vídeo :
    Please show me the files in the Movies subdirectory
  3. Copia la ruta URI del archivo:// del vídeo que deseas procesar
  4. Utilice las herramientas de Shaka Packager con la ruta del archivo :
    Please analyze this video: file:///Users/username/Videos/my_video.mp4
    o
    Please package this video for HLS and DASH streaming: file:///Users/username/Videos/my_video.mp4
  5. El servidor ejecutará el comando Shaka Packager apropiado y proporcionará un resumen detallado de los resultados.

También puedes utilizar rutas de archivos directas si conoces la ubicación exacta de tus archivos de vídeo:

Please analyze this video: /Users/username/Videos/my_video.mp4

Herramientas

El servidor proporciona estas herramientas:

  1. Analyze_video : examina un archivo de video y proporciona información detallada de la transmisión con manejo inteligente de errores.
  2. run_shaka_packager : ejecuta cualquier comando de Shaka Packager con argumentos personalizados y manejo de ruta adecuado
  3. get_shaka_options : recupera las opciones de comando disponibles y la información de la versión
  4. get_shaka_documentation : Proporciona documentación completa y ejemplos para usar Shaka Packager

Indicaciones

El servidor incluye estas plantillas de aviso:

  • Conversión de MP4 a TS
  • Empaquetado de VOD en HLS y DASH
  • Paquete de transmisión en vivo
  • Cifrado de contenido
  • Preparación para la inserción de anuncios
  • Análisis de vídeo
  • Recordatorio de formato de comando
  • Guía de interpretación de errores

Configuración

El servidor se puede configurar mediante variables de entorno:

  • SHAKA_PACKAGER_PATH : Ruta al ejecutable de Shaka Packager (muy recomendado para Claude Desktop)
  • VIDEO_PATH : Ruta a su directorio de video local (se utiliza para traducir rutas entre Docker y el host)
  • DOCKER_PATH : Ruta de montaje del contenedor Docker (predeterminado: "/projects/video-drop")
  • TEMP_DIR : Directorio temporal personalizado para cargas de archivos
  • LOG_LEVEL : Nivel de registro (DEBUG, INFO, WARNING, ERROR, CRITICAL)
  • COMMAND_TIMEOUT : Tiempo de espera en segundos para los comandos de Shaka Packager (valor predeterminado: 300)

Puedes configurarlos en:

  1. Su archivo de configuración de Claude Desktop (preferible para SHAKA_PACKAGER_PATH y VIDEO_PATH )
  2. Sus variables de entorno
  3. Un archivo .env en el mismo directorio que el script

Ejemplo de archivo .env :

SHAKA_PACKAGER_PATH=/usr/local/bin/packager VIDEO_PATH=/Users/yourusername/Videos LOG_LEVEL=DEBUG

Desarrollo

Configuración de un entorno de desarrollo

# Clone the repository git clone https://github.com/coderjun/shaka-packager-mcp.git cd shaka-packager-mcp # Install development dependencies with pip pip install -e ".[dev]" # Or with uv uv pip install -e ".[dev]"

Ejecución de pruebas

pytest

Formato de código

black . isort .

Comprender la estructura del código

Los componentes principales del servidor MCP de Shaka Packager son:

  • shaka_packager_mcp.py : Implementación del servidor principal con herramientas y avisos MCP
  • tests/ : Conjunto de pruebas para verificar la funcionalidad

Este servidor está diseñado para funcionar con el servidor del sistema de archivos MCP oficial para acceder a archivos de vídeo.

Características clave en la implementación

  • Manejo robusto de rutas : traduce automáticamente rutas entre Docker y entornos de host
  • Manejo inteligente de errores : proporciona mensajes de error y sugerencias significativas
  • Asistencia de sintaxis de comandos : ayuda a formatear correctamente los comandos de Shaka Packager
  • Integración de documentación : proporciona documentación completa y ejemplos

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

Obtener ayuda

Siéntete libre de utilizar un copiloto de código de IA, el autor lo hace.

Si encuentra algún problema o tiene preguntas:

  1. Consulte la sección de solución de problemas en este README
  2. Revise la documentación de Shaka Packager
  3. Utilice la herramienta get_shaka_documentation para obtener ayuda interactiva dentro de Claude
  4. Abrir un problema en GitHub

Expresiones de gratitud

ID: yv2w1gw49q