Skip to main content
Glama

Short Video Maker MCP

by gyoridavid

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

Tutorial con n8n

Generación automatizada de videos sin rostro (n8n + MCP) con subtítulos, música de fondo, local y 100% gratis

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:

  1. Convierte texto a voz usando Kokoro TTS

  2. Genera subtítulos precisos a través de Whisper

  3. Encuentra vídeos de fondo relevantes en Pexels.

  4. Compone todos los elementos con Remotion

  5. 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 ejecutarlo 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

  • Sistema operativo Mac

    • ffmpeg ( brew install ffmpeg )

    • node.js (probado en 22+)

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

  1. Texto: Narración, el texto que el TTS leerá y a partir del cual creará subtítulos.

  2. 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 limitados

  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb) para superar errores OOM provenientes de Remotion con recursos limitados

docker run -it --rm --name short-video-maker -p 3123:3123 -e LOG_LEVEL=debug -e PEXELS_API_KEY= gyoridavid/short-video-maker:latest-tiny

Normal

  • Utiliza el modelo base.en whisper.cpp

  • Utiliza el modelo fp32 kokoro

  • CONCURRENCY=1 para superar errores OOM provenientes de Remotion con recursos limitados

  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb) para superar errores OOM provenientes de Remotion con recursos limitados

docker run -it --rm --name short-video-maker -p 3123:3123 -e LOG_LEVEL=debug -e PEXELS_API_KEY= gyoridavid/short-video-maker:latest

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 limitados

  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb) para superar errores OOM provenientes de Remotion con recursos limitados

docker run -it --rm --name short-video-maker -p 3123:3123 -e LOG_LEVEL=debug -e PEXELS_API_KEY= --gpus=all gyoridavid/short-video-maker:latest-cuda

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.

version: "3" services: short-video-maker: image: gyoridavid/short-video-maker:latest-tiny environment: - LOG_LEVEL=debug - PEXELS_API_KEY= ports: - "3123:3123" volumes: - ./videos:/app/data/videos # expose the generated videos

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

Volumen de la música

Ajusta el volumen de la música de fondo. Las opciones son

low

medium

high

y

muted

high

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

curl --location 'localhost:3123/health'
{ "status": "ok" }

POST /api/short-video

curl --location 'localhost:3123/api/short-video' \ --header 'Content-Type: application/json' \ --data '{ "scenes": [ { "text": "Hello world!", "searchTerms": ["river"] } ], "config": { "paddingBack": 1500, "music": "chill" } }'
{ "videoId": "cma9sjly700020jo25vwzfnv9" }

OBTENER /api/short-video/{id}/status

curl --location 'localhost:3123/api/short-video/cm9ekme790000hysi5h4odlt1/status'
{ "status": "ready" }

OBTENER /api/short-video/{id}

curl --location 'localhost:3123/api/short-video/cm9ekme790000hysi5h4odlt1'

Respuesta:los datos binarios del vídeo.

OBTENER /api/short-videos

curl --location 'localhost:3123/api/short-videos'
{ "videos": [ { "id": "cma9wcwfc0000brsi60ur4lib", "status": "processing" } ] }

ELIMINAR /api/short-video/{id}

curl --location --request DELETE 'localhost:3123/api/short-video/cma9wcwfc0000brsi60ur4lib'
{ "success": true }

OBTENER /api/voices

curl --location 'localhost:3123/api/voices'
[ "af_heart", "af_alloy", "af_aoede", "af_bella", "af_jessica", "af_kore", "af_nicole", "af_nova", "af_river", "af_sarah", "af_sky", "am_adam", "am_echo", "am_eric", "am_fenrir", "am_liam", "am_michael", "am_onyx", "am_puck", "am_santa", "bf_emma", "bf_isabella", "bm_george", "bm_lewis", "bf_alice", "bf_lily", "bm_daniel", "bm_fable" ]

OBTENER /api/music-tags

curl --location 'localhost:3123/api/music-tags'
[ "sad", "melancholic", "happy", "euphoric/high", "excited", "chill", "uneasy", "angry", "dark", "hopeful", "contemplative", "funny/quirky" ]

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

  • ❤️ Remota para la generación programática de vídeos

  • ❤️ Susurro para voz a texto

  • ❤️ Pexels para contenido de video

  • ❤️ FFmpeg para procesamiento de audio/video

  • ❤️ Kokoro para TTS

-
security - not tested
A
license - permissive license
-
quality - not tested

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

  1. Tabla de contenidos
    1. Empezando
    2. Uso
    3. Información
  2. Tutorial con n8n
    1. Ejemplos
      1. Características
        1. Cómo funciona
          1. Limitaciones
            1. Requisitos generales
              1. NGP
                1. Plataformas compatibles
              2. Conceptos
                1. Escena
              3. Empezando
                1. Docker (recomendado)
                2. Docker Compose
              4. Interfaz web
                1. Variables de entorno
                  1. 🟢 Configuración
                  2. ⚙️ Configuración del sistema
                  3. ⚠️ Zona de peligro
                2. Opciones de configuración
                  1. Uso
                    1. Servidor MCP
                    2. URL del servidor
                    3. Herramientas disponibles
                  2. API REST
                    1. OBTENER /health
                    2. POST /api/short-video
                    3. OBTENER /api/short-video/{id}/status
                    4. OBTENER /api/short-video/{id}
                    5. OBTENER /api/short-videos
                    6. ELIMINAR /api/short-video/{id}
                    7. OBTENER /api/voices
                    8. OBTENER /api/music-tags
                  3. Solución de problemas
                    1. Estibador
                    2. NGP
                  4. n8n
                    1. Implementación en la nube
                      1. Preguntas frecuentes
                        1. ¿Puedo utilizar otros idiomas? (Francés, alemán, etc.)
                        2. ¿Puedo pasar imágenes y vídeos y unirlos?
                        3. ¿Debo ejecutar el proyecto con npm o docker ?
                        4. ¿Cuánta GPU se utiliza para la generación de vídeo?
                        5. ¿Existe una interfaz de usuario que pueda usar para generar los videos?
                        6. ¿Puedo seleccionar una fuente diferente a Pexels para los videos o proporcionar mi propio video?
                        7. ¿Puede el proyecto generar vídeos a partir de imágenes?
                        8. Dependencias para la generación de vídeo
                        9. ¿Cómo colaborar?
                        10. Licencia
                        11. Expresiones de gratitud

                      MCP directory API

                      We provide all the information about MCP servers via our MCP API.

                      curl -X GET 'https://glama.ai/api/mcp/v1/servers/gyoridavid/short-video-maker'

                      If you have feedback or need assistance with the MCP directory API, please join our Discord server