Skip to main content
Glama

Short Video Maker MCP

by gyoridavid

Beschreibung

Ein Open-Source-Tool zur automatisierten Videoerstellung für kurze Videoinhalte. Short Video Maker kombiniert Text-to-Speech, automatische Untertitel, Hintergrundvideos und Musik, um aus einfachen Texteingaben ansprechende Kurzvideos zu erstellen.

Dieses Projekt soll eine kostenlose Alternative zur GPU-intensiven Videogenerierung (und eine kostenlose Alternative zu teuren API-Aufrufen von Drittanbietern) bieten. Es generiert kein Video von Grund auf neu basierend auf einem Bild oder einer Bildaufforderung.

Das Repository wurde vom YouTube-Kanal „AI Agents AZ“ als Open Source bereitgestellt. Wir empfehlen Ihnen, den Kanal für weitere KI-bezogene Inhalte und Tutorials zu besuchen.

Der Server stellt einen MCP- und einen REST-Server bereit.

Während der MCP-Server mit einem KI-Agenten (wie n8n) verwendet werden kann, bieten die REST-Endpunkte mehr Flexibilität bei der Videogenerierung.

In diesem Repository finden Sie Beispiele für n8n-Workflows, die mit dem REST/MCP-Server erstellt wurden.

Inhaltsverzeichnis

Erste Schritte

Verwendung

Info

Tutorial mit n8n

Automatisierte gesichtslose Videogenerierung (n8n + MCP) mit Untertiteln, Hintergrundmusik, lokal und 100 % kostenlos

Beispiele

Merkmale

  • Generieren Sie komplette Kurzvideos aus Textaufforderungen

  • Text-zu-Sprache-Konvertierung

  • Automatische Untertitelgenerierung und -gestaltung

  • Hintergrundvideosuche und -auswahl über Pexels

  • Hintergrundmusik mit Genre-/Stimmungsauswahl

  • Dient sowohl als REST-API als auch als Model Context Protocol (MCP)-Server

Wie es funktioniert

Shorts Creator nimmt einfache Texteingaben und Suchbegriffe entgegen und führt dann Folgendes aus:

  1. Wandelt Text mit Kokoro TTS in Sprache um

  2. Generiert präzise Untertitel über Whisper

  3. Findet relevante Hintergrundvideos von Pexels

  4. Komponiert alle Elemente mit Remotion

  5. Rendert ein professionell aussehendes Kurzvideo mit perfekt abgestimmten Untertiteln

Einschränkungen

  • Das Projekt kann nur Videos mit englischem Voiceover erstellen (kokoro-js unterstützt derzeit keine anderen Sprachen).

  • Die Hintergrundvideos stammen von Pexels

Allgemeine Anforderungen

  • Internet

  • kostenloser Pexels-API-Schlüssel

  • ≥ 3 GB freier RAM, meine Empfehlung ist 4 GB RAM

  • ≥ 2 vCPU

  • ≥ 5 GB Speicherplatz

NPM

Docker wird zur Ausführung des Projekts empfohlen, Sie können es aber auch mit npm oder npx ausführen. Zusätzlich zu den allgemeinen Anforderungen sind für den Betrieb des Servers die folgenden Voraussetzungen erforderlich.

Unterstützte Plattformen

  • Ubuntu ≥ 22.04 (libc 2.5 für Whisper.cpp)

    • Erforderliche Pakete: 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

  • Mac OS

    • ffmpeg ( brew install ffmpeg )

    • node.js (getestet auf 22+)

Windows wird derzeit NICHT unterstützt (die Installation von whisper.cpp schlägt gelegentlich fehl).

Konzepte

Szene

Jedes Video ist aus mehreren Szenen zusammengesetzt. Diese Szenen bestehen aus

  1. Text: Erzählung, der Text, den das TTS vorliest und aus dem es Untertitel erstellt.

  2. Suchbegriffe: Die Schlüsselwörter, die der Server verwenden soll, um Videos von der Pexels-API zu finden. Wenn keine gefunden werden, werden Jokerbegriffe verwendet ( nature , globe , space , ocean ).

Erste Schritte

Docker (empfohlen)

Es gibt drei Docker-Images für drei verschiedene Anwendungsfälle. Normalerweise möchten Sie das tiny Image starten.

Winzig

  • Verwendet das Modell tiny.en whisper.cpp

  • Verwendet das quantisierte q4 -Kokoro-Modell

  • CONCURRENCY=1 um OOM-Fehler zu überwinden, die von Remotion mit begrenzten Ressourcen herrühren

  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100 MB), um OOM-Fehler zu überwinden, die von Remotion mit begrenzten Ressourcen herrühren

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

  • Verwendet das base.en whisper.cpp-Modell

  • Verwendet das fp32 -Kokoro-Modell

  • CONCURRENCY=1 um OOM-Fehler zu überwinden, die von Remotion mit begrenzten Ressourcen herrühren

  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100 MB), um OOM-Fehler zu überwinden, die von Remotion mit begrenzten Ressourcen herrühren

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

Wenn Sie eine Nvidia-GPU besitzen und ein größeres Whisper-Modell mit GPU-Beschleunigung verwenden möchten, können Sie das für CUDA optimierte Docker-Image verwenden.

  • Verwendet das medium.en whisper.cpp-Modell (mit GPU-Beschleunigung)

  • Verwendet das fp32 -Kokoro-Modell

  • CONCURRENCY=1 um OOM-Fehler zu überwinden, die von Remotion mit begrenzten Ressourcen herrühren

  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100 MB), um OOM-Fehler zu überwinden, die von Remotion mit begrenzten Ressourcen herrühren

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-Compilierung

Sie verwenden Docker Compose möglicherweise zum Ausführen von n8n oder anderen Diensten und möchten diese kombinieren. Stellen Sie sicher, dass Sie das gemeinsame Netzwerk zur Dienstkonfiguration hinzufügen.

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

Wenn Sie das selbstgehostete KI-Starterkit verwenden, möchten Sie networks: ['demo'] zum ** short-video-maker Dienst hinzufügen, damit Sie ihn mit http://short-video-maker:3123 in n8n erreichen können.

Web-Benutzeroberfläche

@mushitori hat eine Web-Benutzeroberfläche erstellt, um die Videos aus Ihrem Browser zu generieren.

Sie können es unter http://localhost:3123 laden.

Umgebungsvariablen

🟢 Konfiguration

Schlüssel

Beschreibung

Standard

PEXELS_API_KEY

Ihr (kostenloser) Pexels API-Schlüssel

LOG_LEVEL

Pino-Log-Ebene

Info

WHISPER_VERBOSE

ob die Ausgabe von whisper.cpp an stdout weitergeleitet werden soll

FALSCH

HAFEN

der Port, auf dem der Server lauscht

3123

⚙️ Systemkonfiguration

Schlüssel

Beschreibung

Standard

KOKORO_MODEL_PRECISION

Die Größe des zu verwendenden Kokoro-Modells. Gültige Optionen sind

fp32

,

fp16

,

q8

,

q4

und

q4f16

kommt drauf an, siehe die Beschreibungen der Docker-Images oben ^^

GLEICHZEITIGKEIT

Parallelität gibt an, wie viele Browser-Tabs während eines Renderings parallel geöffnet sind. Jeder Chrome-Tab rendert Webinhalte und erstellt anschließend Screenshots davon.

Die Anpassung dieses Werts hilft bei der Ausführung des Projekts mit begrenzten Ressourcen.

kommt drauf an, siehe die Beschreibungen der Docker-Images oben ^^

VIDEO_CACHE_SIZE_IN_BYTES

Cache für Frames in Remotion. Das Anpassen dieses Werts hilft beim Ausführen des Projekts mit begrenzten Ressourcen.

kommt drauf an, siehe die Beschreibungen der Docker-Images oben ^^

⚠️ Gefahrenzone

Schlüssel

Beschreibung

Standard

WHISPER_MODEL

Welches whisper.cpp-Modell verwendet werden soll. Gültige Optionen sind

tiny

,

tiny.en

,

base

,

base.en

,

small

,

small.en

,

medium

,

medium.en

,

large-v1

,

large-v2

,

large-v3

,

large-v3-turbo

Hängt davon ab, siehe die Beschreibungen der Docker-Images oben. Für npm ist die Standardoption

medium.en

DATA_DIR_PATH

das Datenverzeichnis des Projekts

~/.ai-agents-az-video-generator

mit npm,

/app/data

in den Docker-Images

DOCKER

ob das Projekt in einem Docker-Container ausgeführt wird

true

für die Docker-Images, sonst

false

ENTWICKLER

erraten! :)

false

Konfigurationsoptionen

Schlüssel

Beschreibung

Standard

PolsterungZurück

Der Endbildschirm, der angibt, wie lange das Video nach dem Ende des Kommentars weitergespielt werden soll (in Millisekunden).

0

Musik

Die Stimmung der Hintergrundmusik. Rufen Sie die verfügbaren Optionen vom Endpunkt GET

/api/music-tags

ab.

zufällig

Beschriftungsposition

Die Position, an der die Untertitel angezeigt werden sollen. Mögliche Optionen:

top

,

center

,

bottom

. Standardwert

bottom

BeschriftungHintergrundfarbe

Die Hintergrundfarbe des aktiven Untertitelelements.

blue

Stimme

Die Kokoro-Stimme.

af_heart

Orientierung

Die Videoausrichtung. Mögliche Optionen sind

portrait

und

landscape

portrait

Musiklautstärke

Stellen Sie die Lautstärke der Hintergrundmusik ein. Mögliche Optionen sind

low

medium

high

und

muted

high

Verwendung

MCP-Server

Server-URLs

/mcp/sse

/mcp/messages

Verfügbare Werkzeuge

  • create-short-video Erstellt ein kurzes Video. Das LLM ermittelt die passende Konfiguration. Wenn Sie eine bestimmte Konfiguration verwenden möchten, müssen Sie diese in der Eingabeaufforderung angeben.

  • get-video-status Ziemlich nutzlos. Es ist zum Überprüfen des Status des Videos gedacht, aber da die KI-Agenten mit dem Zeitkonzept nicht wirklich gut umgehen können, werden Sie dafür wahrscheinlich sowieso die REST-API verwenden.

REST-API

GET /health

Healthcheck-Endpunkt

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" }

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

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

GET /api/short-video/{id}

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

Antwort: die Binärdaten des Videos.

GET /api/short-videos

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

LÖSCHEN /api/short-video/{id}

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

GET /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" ]

GET /api/music-tags

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

Fehlerbehebung

Docker

Der Server benötigt mindestens 3 GB freien Speicher. Stellen Sie sicher, dass Docker genügend RAM zugewiesen wird.

Wenn Sie den Server unter Windows und über WSL2 ausführen, müssen Sie die Ressourcenlimits über das WSL-Dienstprogramm 2 festlegen. Andernfalls legen Sie sie über Docker Desktop fest. (Ubuntu schränkt die Ressourcen nicht ein, sofern dies nicht mit dem Befehl „Ausführen“ angegeben wird.)

NPM

Stellen Sie sicher, dass alle erforderlichen Pakete installiert sind.

n8n

Die Einrichtung des MCP- (oder REST-)Servers hängt davon ab, wie Sie n8n und den Server betreiben. Bitte folgen Sie den Beispielen aus der folgenden Matrix.

|n8n läuft lokal, mit n8n start|n8n läuft lokal mit Docker|n8n läuft in der Cloud| |---|---|---|---| |short-video-maker läuft lokal in Docker|http://localhost:3123|Es kommt darauf an. Technisch gesehen können Sie http://host.docker.internal:3123 verwenden, da es auf den Host verweist. Sie können es aber auch so konfigurieren, dass dasselbe Netzwerk verwendet wird und der Dienstname zur Kommunikation verwendet wird, z. B. http://short-video-maker:3123|funktioniert nicht - short-video-maker in der Cloud bereitstellen| |short-video-maker läuft mit npm/npx|http://localhost:3123|http://host.docker.internal:3123|funktioniert nicht - short-video-maker in der Cloud bereitstellen| |short-video-maker läuft in der Cloud|Sie sollten Ihre IP-Adresse http://{YOUR_IP}:3123 verwenden.|Sie sollten Ihre IP-Adresse http://{YOUR_IP}:3123 verwenden.|Sie sollten Ihre IP-Adresse http://{YOUR_IP}:3123 verwenden.|

Bereitstellung in der Cloud

Obwohl jeder VPS-Anbieter anders ist und es unmöglich ist, für alle eine Konfiguration bereitzustellen, finden Sie hier einige Tipps.

  • Verwenden Sie Ubuntu ≥ 22.04

  • Verfügt über ≥ 4 GB RAM, ≥ 2 vCPUs und ≥5 GB Speicher

  • Verwenden Sie pm2 , um den Server auszuführen/zu verwalten

  • Fügen Sie die Umgebungsvariablen in die .bashrc Datei (oder eine ähnliche Datei) ein.

Häufig gestellte Fragen

Kann ich andere Sprachen verwenden? (Französisch, Deutsch usw.)

Leider ist dies derzeit nicht möglich. Kokoro-js unterstützt nur Englisch.

Kann ich Bilder und Videos einfügen und können diese zusammengefügt werden?

NEIN

Soll ich das Projekt mit npm oder docker ausführen?

Zum Ausführen des Projekts wird Docker empfohlen.

Wie viel GPU wird für die Videogenerierung verwendet?

Ehrlich gesagt nicht viel – nur whisper.cpp kann beschleunigt werden.

Remotion ist CPU-lastig und Kokoro-js läuft auf der CPU.

Gibt es eine Benutzeroberfläche, mit der ich die Videos generieren kann?

Noch nicht)

Kann ich eine andere Quelle für die Videos als Pexels auswählen oder mein eigenes Video bereitstellen?

NEIN

Kann das Projekt Videos aus Bildern generieren?

NEIN

Abhängigkeiten für die Videogenerierung

Abhängigkeit

Version

Lizenz

Zweck

Entfernung

^4.0.286

Motion-Lizenz

Videokomposition und -rendering

Flüstern CPP

Version 1.5.5

MIT

Sprache-zu-Text für Untertitel

FFmpeg

^2.1.3

LGPL/GPL

Audio-/Videobearbeitung

Kokoro.js

^1.2.0

MIT

Text-to-Speech-Generierung

Pexels API

N / A

Pexels-Bedingungen

Hintergrundvideos

Wie kann ich beitragen?

PRs sind willkommen. Anweisungen zum Einrichten einer lokalen Entwicklungsumgebung finden Sie in der Datei CONTRIBUTING.md .

Lizenz

Dieses Projekt ist unter der MIT-Lizenz lizenziert.

Danksagung

  • ❤️ Remotion für die programmatische Videogenerierung

  • ❤️ Flüstern für Sprache-zu-Text

  • ❤️ Pexels für Videoinhalte

  • ❤️ FFmpeg für die Audio-/Videoverarbeitung

  • ❤️ Kokoro für 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.

Kurzvideo-Maker MCP

  1. Inhaltsverzeichnis
    1. Erste Schritte
    2. Verwendung
    3. Info
  2. Tutorial mit n8n
    1. Beispiele
      1. Merkmale
        1. Wie es funktioniert
          1. Einschränkungen
            1. Allgemeine Anforderungen
              1. NPM
                1. Unterstützte Plattformen
              2. Konzepte
                1. Szene
              3. Erste Schritte
                1. Docker (empfohlen)
                2. Docker-Compilierung
              4. Web-Benutzeroberfläche
                1. Umgebungsvariablen
                  1. 🟢 Konfiguration
                  2. ⚙️ Systemkonfiguration
                  3. ⚠️ Gefahrenzone
                2. Konfigurationsoptionen
                  1. Verwendung
                    1. MCP-Server
                    2. Server-URLs
                    3. Verfügbare Werkzeuge
                  2. REST-API
                    1. GET /health
                    2. POST /api/short-video
                    3. GET /api/short-video/{id}/status
                    4. GET /api/short-video/{id}
                    5. GET /api/short-videos
                    6. LÖSCHEN /api/short-video/{id}
                    7. GET /api/voices
                    8. GET /api/music-tags
                  3. Fehlerbehebung
                    1. Docker
                    2. NPM
                  4. n8n
                    1. Bereitstellung in der Cloud
                      1. Häufig gestellte Fragen
                        1. Kann ich andere Sprachen verwenden? (Französisch, Deutsch usw.)
                        2. Kann ich Bilder und Videos einfügen und können diese zusammengefügt werden?
                        3. Soll ich das Projekt mit npm oder docker ausführen?
                        4. Wie viel GPU wird für die Videogenerierung verwendet?
                        5. Gibt es eine Benutzeroberfläche, mit der ich die Videos generieren kann?
                        6. Kann ich eine andere Quelle für die Videos als Pexels auswählen oder mein eigenes Video bereitstellen?
                        7. Kann das Projekt Videos aus Bildern generieren?
                        8. Abhängigkeiten für die Videogenerierung
                        9. Wie kann ich beitragen?
                        10. Lizenz
                        11. Danksagung

                      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