Skip to main content
Glama

説明

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

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

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

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

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

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

目次

はじめる

Related MCP server: Maya MCP

使用法

情報

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

自動顔なしビデオ生成(n8n + MCP)、キャプション、バックグラウンドミュージック、ローカル、100%無料

特徴

  • テキストプロンプトから完全な短いビデオを生成する

  • テキスト音声変換

  • 自動キャプション生成とスタイル設定

  • 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モデルのサイズ。有効なオプションは

fp32

fp16

q8

q4

q4f16

です。

状況によって異なります。上記の Docker イメージの説明を参照してください ^^

同時実行

同時実行性とは、レンダリング中に同時に開かれるブラウザタブの数を指します。Chromeの各タブはウェブコンテンツをレンダリングし、スクリーンショットを撮ります。

この値を調整することで、限られたリソースでプロジェクトを実行するのに役立ちます。

状況によって異なります。上記の Docker イメージの説明を参照してください ^^

ビデオキャッシュサイズ(バイト)

キャッシュ用Remotionのフレーム数。この値を調整すると、限られたリソースでプロジェクトを実行するのに役立ちます。

状況によって異なります。上記の Docker イメージの説明を参照してください ^^

⚠️ 危険地帯

説明

デフォルト

ウィスパーモデル

使用するwhisper.cppモデル。有効なオプションは

tiny

tiny.en

base

base.en

small

small.en

medium

medium.en

large-v1

large-v2

large-v3

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

エンドポイントから取得できます。

ランダム

キャプションの位置

キャプションを表示する位置。可能なオプション:

top

center

bottom

。デフォルト値

bottom

キャプション背景色

アクティブなキャプション項目の背景色。

blue

ココロの声。

af_heart

オリエンテーション

ビデオの向き。

portrait

landscape

オプションがあります。

portrait

音楽の音量

BGMの音量を設定します。

low

medium

high

muted

から選択できます。

high

使用法

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.3

LGPL/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

Latest Blog Posts

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