Integrations
Provides community support and discussions through a Discord server for users seeking help with the Short Video Maker tool.
Offers containerized deployment options for running the Short Video Maker, including specialized images for CPU and NVIDIA GPU acceleration.
Utilizes FFmpeg for audio and video manipulation during the video creation process, enabling professional audio/video processing capabilities.
Descripción
Una herramienta de código abierto para la creación automatizada de videos cortos. Short Video Maker combina conversión de texto a voz, subtítulos automáticos, videos de fondo y música para crear atractivos videos cortos con texto simple.
Este proyecto busca ofrecer una alternativa gratuita a la generación de video, que consume mucha energía de la GPU (y a las costosas llamadas a API de terceros). No genera un video desde cero a partir de una imagen ni de un mensaje de imagen.
El repositorio fue creado en código abierto por el canal de YouTube AI Agents AZ . Te invitamos a visitar el canal para ver más contenido y tutoriales relacionados con la IA.
El servidor expone un MCP y un servidor REST.
Si bien el servidor MCP se puede utilizar con un agente de IA (como n8n), los puntos finales REST brindan más flexibilidad para la generación de video.
Puede encontrar ejemplos de flujos de trabajo n8n creados con el servidor REST/MCP en este repositorio .
Tabla de contenidos
Empezando
Uso
Información
- Características
- Cómo funciona
- Limitaciones
- Conceptos
- Solución de problemas
- Implementación en la nube
- Preguntas frecuentes
- Dependencias
- Contribuyendo
- Licencia
- Expresiones de gratitud
Tutorial con n8n
Ejemplos
Características
- Generar vídeos cortos completos a partir de indicaciones de texto
- Conversión de texto a voz
- Generación y estilo automáticos de subtítulos
- Búsqueda y selección de vídeos de fondo a través de Pexels
- Música de fondo con selección de género/estado de ánimo
- Actuar como API REST y servidor de Protocolo de contexto de modelo (MCP)
Cómo funciona
Shorts Creator toma entradas de texto simples y términos de búsqueda y luego:
- Convierte texto a voz usando Kokoro TTS
- Genera subtítulos precisos a través de Whisper
- Encuentra vídeos de fondo relevantes en Pexels.
- Compone todos los elementos con Remotion
- Genera un video corto de aspecto profesional con subtítulos perfectamente sincronizados.
Limitaciones
- El proyecto solo es capaz de generar vídeos con voz en off en inglés (kokoro-js no admite otros idiomas en este momento)
- Los vídeos de fondo provienen de Pexels.
Requisitos generales
- Internet
- clave API de Pexels gratuita
- ≥ 3 GB de RAM libre, mi recomendación es 4 GB de RAM
- ≥ 2 vCPU
- ≥ 5 GB de espacio en disco
NGP
Aunque Docker es el método recomendado para ejecutar el proyecto, también puedes hacerlo con npm o npx. Además de los requisitos generales, se requiere lo siguiente para ejecutar el servidor.
Plataformas compatibles
- Ubuntu ≥ 22.04 (libc 2.5 para Whisper.cpp)
- Paquetes necesarios:
git wget cmake ffmpeg curl make libsdl2-dev libnss3 libdbus-1-3 libatk1.0-0 libgbm-dev libasound2 libxrandr2 libxkbcommon-dev libxfixes3 libxcomposite1 libxdamage1 libatk-bridge2.0-0 libpango-1.0-0 libcairo2 libcups2
- Paquetes necesarios:
- Sistema operativo Mac
- ffmpeg (
brew install ffmpeg
) - node.js (probado en 22+)
- ffmpeg (
Windows NO es compatible en este momento (la instalación de whipper.cpp falla ocasionalmente).
Conceptos
Escena
Cada vídeo se compone de varias escenas. Estas escenas constan de
- Texto: Narración, el texto que el TTS leerá y a partir del cual creará subtítulos.
- Términos de búsqueda: Las palabras clave que el servidor debe usar para encontrar videos de la API de Pexels. Si no se encuentra ninguna, se usan términos comodín (
nature
,globe
,space
,ocean
).
Empezando
Docker (recomendado)
Hay tres imágenes de Docker para tres casos de uso diferentes. En general, la mayoría de las veces conviene configurar la imagen tiny
.
Diminuto
- Utiliza el modelo
tiny.en
whisper.cpp - Utiliza el modelo kokoro cuantificado
q4
CONCURRENCY=1
para superar errores OOM provenientes de Remotion con recursos limitadosVIDEO_CACHE_SIZE_IN_BYTES=104857600
(100mb) para superar errores OOM provenientes de Remotion con recursos limitados
Normal
- Utiliza el modelo
base.en
whisper.cpp - Utiliza el modelo
fp32
kokoro CONCURRENCY=1
para superar errores OOM provenientes de Remotion con recursos limitadosVIDEO_CACHE_SIZE_IN_BYTES=104857600
(100mb) para superar errores OOM provenientes de Remotion con recursos limitados
Cuda
Si posee una GPU Nvidia y desea utilizar un modelo Whisper más grande con aceleración de GPU, puede usar la imagen Docker optimizada para CUDA.
- Utiliza el modelo
medium.en
whisper.cpp (con aceleración de GPU) - Utiliza el modelo
fp32
kokoro CONCURRENCY=1
para superar errores OOM provenientes de Remotion con recursos limitadosVIDEO_CACHE_SIZE_IN_BYTES=104857600
(100mb) para superar errores OOM provenientes de Remotion con recursos limitados
Docker Compose
Podrías usar Docker Compose para ejecutar n8n u otros servicios y quieres combinarlos. Asegúrate de añadir la red compartida a la configuración del servicio.
Si está utilizando el kit de inicio de IA autohospedado, desea agregar networks: ['demo']
al servicio** short-video-maker
para poder acceder a él con http://short-video-maker:3123 en n8n.
Interfaz web
@mushitori creó una interfaz web para generar los videos desde su navegador.
Puedes cargarlo en http://localhost:3123
Variables de entorno
🟢 Configuración
llave | descripción | por defecto |
---|---|---|
CLAVE DE API DE PEXELS | su clave API de Pexels (gratuita) | |
NIVEL DE REGISTRO | nivel de registro de pino | información |
SUSURRO_VERBOSO | Si la salida de whisper.cpp debe enviarse a stdout | FALSO |
PUERTO | el puerto en el que escuchará el servidor | 3123 |
⚙️ Configuración del sistema
llave | descripción | por defecto |
---|---|---|
PRECISIÓN DEL MODELO KOKORO | El tamaño del modelo Kokoro a utilizar. Las opciones válidas son fp32 , fp16 , q8 , q4 y q4f16 | Depende, mira las descripciones de las imágenes de Docker arriba ^^ |
CONCURRENCIA | La concurrencia se refiere a cuántas pestañas del navegador se abren en paralelo durante un renderizado. Cada pestaña de Chrome renderiza el contenido web y luego lo captura. Ajustar este valor facilita la ejecución del proyecto con recursos limitados. | Depende, mira las descripciones de las imágenes de Docker arriba ^^ |
TAMAÑO DE CACHÉ DE VIDEO EN BYTES | Caché para Marcos en Remotion. Ajustar este valor facilita la ejecución del proyecto con recursos limitados. | Depende, mira las descripciones de las imágenes de Docker arriba ^^ |
⚠️ Zona de peligro
llave | descripción | por defecto |
---|---|---|
MODELO SUSURRO | Qué modelo whisper.cpp usar. Las opciones válidas son tiny , tiny.en , base , base.en , small , small.en , medium , medium.en , large-v1 , large-v2 , large-v3 y large-v3-turbo | Depende. Consulta las descripciones de las imágenes de Docker más arriba. Para npm, la opción predeterminada es medium.en |
RUTA DEL DIRECTORIO DE DATOS | el directorio de datos del proyecto | ~/.ai-agents-az-video-generator con npm, /app/data en las imágenes de Docker |
ESTIBADOR | si el proyecto se está ejecutando en un contenedor Docker | true para las imágenes de Docker, de lo contrario false |
DESARROLLO | ¡adivinar! :) | false |
Opciones de configuración
llave | descripción | por defecto |
---|---|---|
acolchado trasero | La pantalla final, durante cuánto tiempo debe seguir reproduciéndose el vídeo una vez finalizada la narración (en milisegundos). | 0 |
música | El ambiente de la música de fondo. Obtenga las opciones disponibles desde el punto final GET /api/music-tags . | aleatorio |
TítuloPosición | Posición donde se deben mostrar los subtítulos. Opciones posibles: top , center , bottom . Valor predeterminado. | bottom |
TítuloColor de fondo | El color de fondo del elemento de título activo. | blue |
voz | La voz de Kokoro. | af_heart |
orientación | Orientación del vídeo. Las opciones son portrait y landscape | portrait |
Uso
Servidor MCP
URL del servidor
/mcp/sse
/mcp/messages
Herramientas disponibles
create-short-video
Crea un video corto. El LLM determinará la configuración correcta. Si desea usar una configuración específica, debe especificarla en el mensaje.get-video-status
Algo inútil, está destinado a verificar el estado del video, pero como los agentes de IA no son muy buenos con el concepto de tiempo, probablemente terminarás usando la API REST para eso de todos modos.
API REST
OBTENER /health
Punto final de comprobación de estado
POST /api/short-video
OBTENER /api/short-video/{id}/status
OBTENER /api/short-video/{id}
Respuesta:los datos binarios del vídeo.
OBTENER /api/short-videos
ELIMINAR /api/short-video/{id}
OBTENER /api/voices
OBTENER /api/music-tags
Solución de problemas
Estibador
El servidor necesita al menos 3 GB de memoria libre. Asegúrate de asignar suficiente RAM a Docker.
Si ejecuta el servidor desde Windows y mediante wsl2, debe configurar los límites de recursos desde la utilidad wsl 2 ; de lo contrario, configúrelo desde Docker Desktop. (Ubuntu no restringe los recursos a menos que se especifique con el comando de ejecución).
NGP
Asegúrese de que todos los paquetes necesarios estén instalados.
n8n
La configuración del servidor MCP (o REST) depende de cómo se ejecute n8n y del servidor. Siga los ejemplos de la matriz a continuación.
|n8n se está ejecutando localmente, usando n8n start
|n8n se ejecuta localmente usando Docker|n8n se ejecuta en la nube|
|---|---|---|---|
|short-video-maker
se ejecuta en Docker, localmente|http://localhost:3123
|Depende. Técnicamente, puedes usar http://host.docker.internal:3123
ya que apunta al host, pero podrías configurarlo para usar la misma red y usar el nombre del servicio para comunicarse, como http://short-video-maker:3123
|No funcionará: implemente short-video-maker
en la nube|
|short-video-maker
se ejecuta con npm/npx|http://localhost:3123
|http://host.docker.internal:3123
|No funcionará: implemente short-video-maker
en la nube|
|short-video-maker
se ejecuta en la nube|Debes usar tu dirección IP http://{YOUR_IP}:3123
|Debes usar tu dirección IP http://{YOUR_IP}:3123
|Debes usar tu dirección IP http://{YOUR_IP}:3123
|
Implementación en la nube
Si bien cada proveedor de VPS es diferente y es imposible brindar configuración a todos ellos, aquí hay algunos consejos.
- Utilice Ubuntu ≥ 22.04
- Tener ≥ 4 GB de RAM, ≥ 2 vCPU y ≥ 5 GB de almacenamiento
- Utilice pm2 para ejecutar/administrar el servidor
- Coloque las variables de entorno en el archivo
.bashrc
(o similar)
Preguntas frecuentes
¿Puedo utilizar otros idiomas? (Francés, alemán, etc.)
Lamentablemente, no es posible en este momento. Kokoro-js solo admite inglés.
¿Puedo pasar imágenes y vídeos y unirlos?
No
¿Debo ejecutar el proyecto con npm
o docker
?
Docker es la forma recomendada de ejecutar el proyecto.
¿Cuánta GPU se utiliza para la generación de vídeo?
Honestamente, no mucho: solo whisper.cpp se puede acelerar.
Remotion consume muchos recursos de la CPU y Kokoro-js se ejecuta en la CPU.
¿Existe una interfaz de usuario que pueda usar para generar los videos?
Aún no)
¿Puedo seleccionar una fuente diferente a Pexels para los videos o proporcionar mi propio video?
No
¿Puede el proyecto generar vídeos a partir de imágenes?
No
Dependencias para la generación de vídeo
Dependencia | Versión | Licencia | Objetivo |
---|---|---|---|
Remoción | ^4.0.286 | Licencia de Remota | Composición y renderizado de vídeo |
Susurro CPP | versión 1.5.5 | Instituto Tecnológico de Massachusetts (MIT) | Conversión de voz a texto para subtítulos |
FFmpeg | ^2.1.3 | Licencia pública general (LGPL)/licencia pública general (GPL) | Manipulación de audio y vídeo |
Kokoro.js | ^1.2.0 | Instituto Tecnológico de Massachusetts (MIT) | Generación de texto a voz |
API de Pexels | N / A | Términos de Pexels | Vídeos de fondo |
¿Cómo colaborar?
Se aceptan solicitudes de colaboración. Consulte el archivo CONTRIBUTING.md para obtener instrucciones sobre cómo configurar un entorno de desarrollo local.
Licencia
Este proyecto está licenciado bajo la licencia MIT .
Expresiones de gratitud
This server cannot be installed
hybrid server
The server is able to function both locally and remotely, depending on the configuration or use case.
Creador de vídeos cortos MCP
- Tabla de contenidos
- Tutorial con n8n
- Ejemplos
- Características
- Cómo funciona
- Limitaciones
- Requisitos generales
- NGP
- Conceptos
- Empezando
- Interfaz web
- Variables de entorno
- Opciones de configuración
- Uso
- API REST
- Solución de problemas
- n8n
- Implementación en la nube
- Preguntas frecuentes
- ¿Puedo utilizar otros idiomas? (Francés, alemán, etc.)
- ¿Puedo pasar imágenes y vídeos y unirlos?
- ¿Debo ejecutar el proyecto con npm o docker ?
- ¿Cuánta GPU se utiliza para la generación de vídeo?
- ¿Existe una interfaz de usuario que pueda usar para generar los videos?
- ¿Puedo seleccionar una fuente diferente a Pexels para los videos o proporcionar mi propio video?
- ¿Puede el proyecto generar vídeos a partir de imágenes?
- Dependencias para la generación de vídeo
- ¿Cómo colaborar?
- Licencia
- Expresiones de gratitud
Related MCP Servers
- -securityAlicense-qualityA MCP server that creates graphic recordings by converting websites or text input into visual summaries using different prompt styles (standard, elementary, timeline).Last updated -TypeScriptMIT License
- AsecurityAlicenseAqualityAn MCP server providing video processing capabilities through FFmpeg, enabling dialog-based local video search, trimming, concatenation, and playback functionalities.Last updated -79PythonMIT License
- AsecurityAlicenseAqualityMCP server that exposes Google's Veo2 video generation capabilities, allowing clients to generate videos from text prompts or images.Last updated -77TypeScriptMIT License
- Rust