Short Video Maker MCP

by gyoridavid

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.

説明

短編動画コンテンツを生成するオープンソースの自動動画作成ツールです。Short Video Makerは、音声合成、自動字幕、背景動画、音楽を組み合わせて、シンプルなテキスト入力から魅力的な短編動画を作成します。

このプロジェクトは、GPUを大量に消費する動画生成(および高価なサードパーティAPI呼び出し)の代替となる、無料の代替手段を提供することを目的としています。画像や画像プロンプトに基づいてゼロから動画を生成するものではありません。

このリポジトリは、AI Agents AZ YouTubeチャンネルによってオープンソース化されました。AI関連のコンテンツやチュートリアルをもっとご覧になりたい方は、ぜひこのチャンネルをご覧ください。

サーバーはMCPと REST サーバーを公開します。

MCP サーバーは AI エージェント (n8n など) と一緒に使用できますが、REST エンドポイントを使用するとビデオ生成の柔軟性が高まります。

このリポジトリには、 REST/MCP サーバーで作成された n8n ワークフローの例があります。

目次

はじめる

使用法

情報

n8nを使ったチュートリアル

特徴

  • テキストプロンプトから完全な短いビデオを生成する
  • テキスト音声変換
  • 自動キャプション生成とスタイル設定
  • Pexels経由の背景ビデオの検索と選択
  • ジャンル/ムードを選べるBGM
  • REST APIとモデルコンテキストプロトコル(MCP)サーバーの両方として機能する

仕組み

Shorts Creator は、簡単なテキスト入力と検索キーワードを受け取り、次の操作を行います。

  1. Kokoro TTSを使用してテキストを音声に変換します
  2. Whisperで正確な字幕を生成
  3. Pexelsから関連する背景動画を検索します
  4. すべての要素をRemotionで構成します
  5. 完璧なタイミングで字幕を付けたプロフェッショナルなショートビデオをレンダリングします

制限事項

  • このプロジェクトでは、英語のナレーション付きのビデオのみを生成できます(kokoro-js は現時点では他の言語をサポートしていません)
  • 背景動画はPexelsから取得しました

一般的な要件

  • インターネット
  • 無料のPexels APIキー
  • 3GB以上の空きRAM、私の推奨は4GBのRAM
  • ≥ 2 vCPU
  • 5GB以上のディスク容量

国立博物館

プロジェクトの実行にはDockerが推奨されますが、npmまたはnpxでも実行できます。一般的な要件に加えて、サーバーを実行するには以下のものが必要です。

サポートされているプラットフォーム

  • Ubuntu ≥ 22.04 (Whisper.cpp 用の libc 2.5)
    • 必要なパッケージ: 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 (22以上でテスト済み)

現時点では Windows はサポートされていません(whisper.cpp のインストールが時々失敗します)。

概念

シーン

各ビデオは複数のシーンで構成されています。これらのシーンは

  1. テキスト: ナレーション。TTS が読み取って字幕を作成するテキスト。
  2. 検索用語: Pexels APIから動画を検索する際にサーバーが使用するキーワード。該当するものが見つからない場合は、ジョーカー用語( natureglobespaceocean )が使用されます。

はじめる

Docker(推奨)

3つの異なるユースケースに対応する3つのDockerイメージがあります。一般的には、ほとんどの場合、 tinyイメージを起動することになります。

小さい

  • tiny.en whisper.cpp モデルを使用します
  • q4量子化ココロモデルを使用
  • CONCURRENCY=1限られたリソースで Remotion から発生する OOM エラーを克服します。
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb) 限られたリソースでRemotionから発生するOOMエラーを克服するため
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

普通

  • base.en whisper.cpp モデルを使用します
  • fp32 kokoroモデルを使用
  • CONCURRENCY=1限られたリソースで Remotion から発生する OOM エラーを克服します。
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb) 限られたリソースでRemotionから発生するOOMエラーを克服するため
docker run -it --rm --name short-video-maker -p 3123:3123 -e LOG_LEVEL=debug -e PEXELS_API_KEY= gyoridavid/short-video-maker:latest

クーダ

Nvidia GPU を所有していて、GPU アクセラレーションを備えたより大きなウィスパー モデルを使用したい場合は、CUDA に最適化された Docker イメージを使用できます。

  • medium.en whisper.cpp モデルを使用します (GPU アクセラレーション付き)
  • fp32 kokoroモデルを使用
  • CONCURRENCY=1限られたリソースで Remotion から発生する OOM エラーを克服します。
  • VIDEO_CACHE_SIZE_IN_BYTES=104857600 (100mb) 限られたリソースでRemotionから発生するOOMエラーを克服するため
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コンポーズ

Docker Compose を使用して n8n やその他のサービスを実行し、それらを統合する必要がある場合があります。サービス設定に共有ネットワークを追加してください。

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

セルフホスト AI スターター キットを使用している場合はnetworks: ['demo'] ** short-video-makerサービスに追加して、n8n でhttp://short-video-maker:3123でアクセスできるようにします。

ウェブUI

@mushitori は、ブラウザからビデオを生成するための Web UI を作成しました。

http://localhost:3123で読み込むことができます。

環境変数

🟢 構成

説明デフォルト
PEXELS_API_KEYあなたの(無料の)Pexels APIキー
ログレベルピノログレベル情報
ささやき声whisper.cppの出力をstdoutに転送するかどうか間違い
ポートサーバーがリッスンするポート3123

⚙️ システム構成

説明デフォルト
ココロモデル精度使用するKokoroモデルのサイズ。有効なオプションはfp32fp16q8q4q4f16です。状況によって異なります。上記の Docker イメージの説明を参照してください ^^
同時実行同時実行性とは、レンダリング中に同時に開かれるブラウザタブの数を指します。Chromeの各タブはウェブコンテンツをレンダリングし、スクリーンショットを撮ります。この値を調整することで、限られたリソースでプロジェクトを実行するのに役立ちます。状況によって異なります。上記の Docker イメージの説明を参照してください ^^
ビデオキャッシュサイズ(バイト)キャッシュ用Remotionのフレーム数。この値を調整すると、限られたリソースでプロジェクトを実行するのに役立ちます。状況によって異なります。上記の Docker イメージの説明を参照してください ^^

⚠️ 危険地帯

説明デフォルト
ウィスパーモデル使用するwhisper.cppモデル。有効なオプションはtinytiny.enbasebase.ensmallsmall.enmediummedium.enlarge-v1large-v2large-v3large-v3-turboです。状況によります。上記のDockerイメージの説明をご覧ください。npmの場合、デフォルトオプションはmedium.enです。
データディレクトリパスプロジェクトのデータディレクトリ~/.ai-agents-az-video-generator npm を使用)、Docker イメージ内の/app/data
ドッカープロジェクトがDockerコンテナ内で実行されているかどうかdocker イメージの場合はtrue 、それ以外の場合はfalse
開発推測! :)false

設定オプション

説明デフォルト
パディングバック終了画面。ナレーションが終了した後、ビデオを再生し続ける時間 (ミリ秒単位)。0
音楽BGMのムード。利用可能なオプションはGET /api/music-tagsエンドポイントから取得できます。ランダム
キャプションの位置キャプションを表示する位置。可能なオプション: topcenterbottom 。デフォルト値bottom
キャプション背景色アクティブなキャプション項目の背景色。blue
ココロの声。af_heart
オリエンテーションビデオの向き。 portraitlandscapeオプションがあります。portrait

使用法

MCPサーバー

サーバーURL

/mcp/sse

/mcp/messages

利用可能なツール

  • create-short-videoは短い動画を作成します。LLMが適切な設定を自動的に判断します。特定の設定を使用する場合は、プロンプトで指定する必要があります。
  • get-video-statusあまり役に立たないですが、ビデオのステータスを確認するためのものですが、AI エージェントは時間の概念をあまり理解していないため、結局は REST API を使用することになります。

REST API

GET /health

ヘルスチェックエンドポイント

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

/api/short-video/{id}/status取得

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

/api/short-video/{id}を取得する

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

応答: ビデオのバイナリ データ。

/api/short-videosを取得する

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

/api/short-video/{id}を削除する

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

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

/api/music-tagsを取得する

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

トラブルシューティング

ドッカー

サーバーには少なくとも3GBの空きメモリが必要です。Dockerに十分なRAMを割り当ててください。

Windows から wsl2 経由でサーバーを実行している場合は、 wsl ユーティリティ 2からリソース制限を設定する必要があります。それ以外の場合は、Docker Desktop から設定します。(Ubuntu は、run コマンドで指定しない限り、リソースを制限しません)。

国立博物館

必要なパッケージがすべてインストールされていることを確認してください。

n8n

MCP(またはREST)サーバーの設定は、n8nとサーバーの実行方法によって異なります。以下のマトリックスの例に従ってください。

|n8nはn8n startを使用してローカルで実行されています|n8nはDockerを使ってローカルで実行されています|n8nはクラウドで稼働しています| |---|---|---|---| |short-video-maker Dockerでローカルで実行されています|http://localhost:3123|場合によります。技術的にはホストを指すhttp://host.docker.internal:3123を使用できますが、同じネットワークを使用し、サービス名を使用して通信するように設定することもできます(例http://short-video-maker:3123|動作しません - クラウドにshort-video-makerを展開します| |short-video-maker npm/npx で実行されています|http://localhost:3123|http://host.docker.internal:3123|動作しません - クラウドにshort-video-makerを展開します| |short-video-makerクラウドで実行されています|IPアドレスはhttp://{YOUR_IP}:3123使用してください。|IPアドレスはhttp://{YOUR_IP}:3123使用してください。|IPアドレスはhttp://{YOUR_IP}:3123使用してください。|

クラウドへのデプロイ

VPS プロバイダーはそれぞれ異なり、すべてのプロバイダーに設定を提供することは不可能ですが、ここではいくつかのヒントを紹介します。

  • Ubuntu ≥ 22.04を使用してください
  • 4GB以上のRAM、2vCPU以上、5GB以上のストレージを搭載
  • pm2を使用してサーバーを実行/管理する
  • 環境変数を.bashrcファイル(または同様のファイル)に保存します。

よくある質問

他の言語も使えますか?(フランス語、ドイツ語など)

残念ながら、現時点では不可能です。Kokoro-jsは英語のみをサポートしています。

画像や動画を渡して、それをつなぎ合わせることができますか?

いいえ

プロジェクトはnpmまたはdockerで実行する必要がありますか?

プロジェクトを実行するには Docker が推奨されます。

ビデオ生成にどれくらいの GPU が使用されていますか?

正直に言うと、それほど多くはありません。高速化できるのは whisper.cpp だけです。

Remotion は CPU を大量に消費しますが、 Kokoro-js はCPU 上で実行されます。

動画を生成するために使用できるUIはありますか?

まだ)

Pexels以外の動画ソースを選択したり、自分の動画を提供したりすることはできますか?

いいえ

このプロジェクトでは画像からビデオを生成できますか?

いいえ

ビデオ生成の依存関係

依存バージョンライセンス目的
降格^4.0.286降格ライセンスビデオの合成とレンダリング
ウィスパーCPPバージョン1.5.5マサチューセッツ工科大学字幕の音声テキスト変換
FFmpeg^2.1.3LGPL/GPLオーディオ/ビデオ操作
ココロ.js^1.2.0マサチューセッツ工科大学テキスト読み上げ生成
ペクセルAPI該当なしPexels利用規約背景ビデオ

どのように貢献しますか?

PRは歓迎します。ローカル開発環境の設定手順については、 CONTRIBUTING.mdファイルをご覧ください。

ライセンス

このプロジェクトはMIT ライセンスに基づいてライセンスされています。

謝辞

  • ❤️ プログラムによる動画生成のためのRemotion
  • ❤️ 音声テキスト変換のWhisper
  • ❤️ 動画コンテンツはPexels
  • ❤️ オーディオ/ビデオ処理用のFFmpeg
  • ❤️ココロfor 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.

ショートビデオメーカー MCP

  1. 目次
    1. はじめる
    2. 使用法
    3. 情報
  2. n8nを使ったチュートリアル
      1. 特徴
        1. 仕組み
          1. 制限事項
            1. 一般的な要件
              1. 国立博物館
                1. サポートされているプラットフォーム
              2. 概念
                1. シーン
              3. はじめる
                1. Docker(推奨)
                2. Dockerコンポーズ
              4. ウェブUI
                1. 環境変数
                  1. 🟢 構成
                  2. ⚙️ システム構成
                  3. ⚠️ 危険地帯
                2. 設定オプション
                  1. 使用法
                    1. MCPサーバー
                    2. サーバーURL
                    3. 利用可能なツール
                  2. REST API
                    1. GET /health
                    2. POST /api/short-video
                    3. /api/short-video/{id}/status取得
                    4. /api/short-video/{id}を取得する
                    5. /api/short-videosを取得する
                    6. /api/short-video/{id}を削除する
                    7. /api/voicesを取得する
                    8. /api/music-tagsを取得する
                  3. トラブルシューティング
                    1. ドッカー
                    2. 国立博物館
                  4. n8n
                    1. クラウドへのデプロイ
                      1. よくある質問
                        1. 他の言語も使えますか?(フランス語、ドイツ語など)
                        2. 画像や動画を渡して、それをつなぎ合わせることができますか?
                        3. プロジェクトはnpmまたはdockerで実行する必要がありますか?
                        4. ビデオ生成にどれくらいの GPU が使用されていますか?
                        5. 動画を生成するために使用できるUIはありますか?
                        6. Pexels以外の動画ソースを選択したり、自分の動画を提供したりすることはできますか?
                        7. このプロジェクトでは画像からビデオを生成できますか?
                        8. ビデオ生成の依存関係
                        9. どのように貢献しますか?
                        10. ライセンス
                        11. 謝辞

                      Related MCP Servers

                      • -
                        security
                        A
                        license
                        -
                        quality
                        A MCP server that creates graphic recordings by converting websites or text input into visual summaries using different prompt styles (standard, elementary, timeline).
                        Last updated -
                        TypeScript
                        MIT License
                      • A
                        security
                        A
                        license
                        A
                        quality
                        An MCP server providing video processing capabilities through FFmpeg, enabling dialog-based local video search, trimming, concatenation, and playback functionalities.
                        Last updated -
                        7
                        9
                        Python
                        MIT License
                        • Apple
                      • A
                        security
                        A
                        license
                        A
                        quality
                        MCP server that exposes Google's Veo2 video generation capabilities, allowing clients to generate videos from text prompts or images.
                        Last updated -
                        7
                        7
                        TypeScript
                        MIT License

                      View all related MCP servers

                      ID: pyvkl848iz