openshorts について
OpenShorts はオープンソースの AI 動画プラットフォームで、長い動画を縦型ショート動画に変換し、AI UGC 動画生成と YouTube ツールも備えています。クリエイター、マーケティングチーム、開発者向けで、セルフホストとホスト版のどちらでも利用できます。
主な機能
- 01長い動画から 9:16 のクリップを自動生成
- 02顔追跡を用いた AI リフレーミング
- 03自動字幕と AI ボイスダビング
- 04AI UGC マーケティング動画の生成
- 05YouTube 向けタイトル・サムネイル・概要の生成
- 06TikTok、Instagram、YouTube への投稿
活用シーン
- 01ポッドキャストやウェビナーのショート動画化
- 02製品 URL からのマーケティング動画作成
- 03YouTube 動画のタイトルとサムネイルの生成
MCP 対応
セルフホスト時は AI エージェント向けに /mcp エンドポイントを公開し、ホスト版では常時稼働の mcp.openshorts.app エンドポイントを提供します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.openshorts.app/mcpclaude mcp add --transport http mutonby-openshorts https://mcp.openshorts.app/mcp{"mcpServers":{"mutonby-openshorts":{"type":"http","url":"https://mcp.openshorts.app/mcp"}}}Cursor で開く{"servers":{"mutonby-openshorts":{"type":"http","url":"https://mcp.openshorts.app/mcp"}}}VS Code で開く{"mcpServers":{"mutonby-openshorts":{"type":"http","url":"https://mcp.openshorts.app/mcp"}}}{"mcpServers":{"mutonby-openshorts":{"serverUrl":"https://mcp.openshorts.app/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://mcp.openshorts.app/mcp認証が必要ツール
詳細
OpenShorts.app
オープンソースの AI 動画プラットフォームです。クリップジェネレーター、AI Shorts(AI アクターによる UGC 動画)、YouTube Studioの3つのツールを1つにまとめています。

OpenShorts による実際の出力であり、モックアップではありません。出典:Turn the Tables with Dan and Shoshana Jordan、Heritage of Faith、CC BY ライセンス。
カメラに2人が映っている場合、OpenShorts は横長の映像を縮小するのではなく、2人を上下に並べて、誰にもかからない境目に字幕を配置します。1人のショットに切り替わると、顔を追跡するクロップに戻ります。AI が動画ごとにレイアウトを選ぶため、設定は不要です。
実行方法は2通りありますが、どちらも同じソフトウェアです。
| セルフホスト(このリポジトリ) | openshorts.appでホスト | |
|---|---|---|
| 料金 | 永久に無料、MIT | 無料プラン、有料プランは月額12ドルから |
| 速度 | CPUで8分の動画を処理するのに5~8分 | NVIDIA GPUで約50秒 |
| APIキー | Gemini、ElevenLabs、fal.ai のAPIキーを用意 | Geminiが付属、設定不要 |
| ウォーターマーク/制限 | なし、今後もありません | 無料プランではウォーターマークと月20分の制限あり。有料プランではどちらもありません |
| セットアップ | Docker、8GB以上のRAM、モデルのダウンロード | サインインしてリンクを貼り付けるだけ |
| エージェント向け MCP/API | 同じ/mcpエンドポイント。ただし、マシンの電源が入っている間のみ | mcp.openshorts.appの常時稼働エンドポイント、ワンクリックでAPIキーを発行 |
| データの保存先 | ご自身のサーバー | 当社のサーバー |
セルフホストは正真正銘無料であり、今後も無料です。その代わり、マシンとご自身のAPIキーが必要で、稼働を維持する手間もかかります。ホスト版プランの料金は、機材とAPIキーの費用をまかなうためのもので、機能を利用するためのものではありません。
https://github.com/user-attachments/assets/b45fa983-16b4-48b5-ac5b-a267836b9ad9
動画チュートリアル:仕組み
上の画像をクリックすると、全編の解説をご覧いただけます。
1つのプラットフォームに3つのツール
1. クリップジェネレーター
ポッドキャスト、ウェビナー、ライブ配信、ブログ動画、インタビューなどの長尺動画を、TikTok、Instagram Reels、YouTube Shorts向けの、すぐに公開できる9:16のショート動画に変換します。

2. AI Shorts(UGC 動画クリエイター)
あらゆる商品やビジネスのマーケティング動画を、AI アクターを使って生成します。カメラもスタジオもインフルエンサーへの予算も不要です。商品を説明するか、URLを貼り付けるだけです。

- 2つの料金モード:低コスト(動画1本あたり約0.65ドル)とプレミアム(動画1本あたり約2ドル)
- SaaS、レストラン、Eコマース、コーチング、地域密着型ビジネスなど、あらゆるビジネスに対応
- リップシンク、ナレーション、Bロール、TikTok風の字幕を備えたAI生成アクター
- 共通のアバターギャラリーから選択するか、お持ちの写真をアップロード
- TikTok、Instagram、YouTubeに直接公開
3. YouTube Studio
完全無料の AI YouTube ツールキット:サムネイル、タイトル、説明文の作成から直接公開まで対応します。

- 顔のオーバーレイに対応した AI サムネイル生成
- ブラッシュアップ用チャット付きのバズるタイトル候補 10 件
- チャプターのタイムスタンプを含む説明文を自動生成
- ワンクリックで YouTube に公開
UGC Video Gallery
生成した動画とアバターはすべて、動画ごとの SEO ページとともに公開ギャラリーに保存されます。

- ホバーすると再生される公開ギャラリーページ(
/gallery) - og:video メタタグ付きの動画ごとの SEO ページ(
/video/{id}) - 検索エンジン向けの JSON-LD 構造化データ
- プロンプトの履歴を確認できるアバターギャラリー
主な機能
Clip Generator
- バズる瞬間を検出:Google Gemini 3.1 Flash-Lite が文字起こしとシーンの境界を分析し、可能性の高い瞬間を 3~15 件検出します
- 必要に応じて完全ローカルで実行:
LLM_BASE_URLを Ollama、LM Studio、vLLM、または OpenAI 互換サーバーに設定すると、Google のキーなしで、ご自身のモデルを使って瞬間を選定できます(Google のキーなしで実行を参照) - スマートな 9:16 クロップ:シーンごとに AI がリフレーミングします。TRACK モード(MediaPipe + YOLOv8 による顔追跡)、GENERAL モード(ぼかした背景)、SPLIT モード(2 人の話者を上下に配置し、境目に字幕を表示)、SCREENCAST モード(プレゼンターの上に画面を表示)に対応しています。レイアウトは Gemini が動画ごとに選択するか、ダッシュボードから指定できます
- 字幕の自動生成:faster-whisper で単語レベルのタイムスタンプを付与し、スタイルを適用してクリップに焼き込みます
- AI 音声吹き替え:ElevenLabs と連携し、ボイスクローンを使って 30 以上の言語に対応します(クラウドでも、ご自身の ElevenLabs キーを使用できます)
- フックテキストのオーバーレイ:注目を集めるテキストオーバーレイを AI が生成します
- AI 動画エフェクト:Gemini がプロ仕様のエフェクト用 FFmpeg フィルターを生成します
AI Shorts Pipeline
- 分析:ウェブサイトの URL とウェブ調査から情報を収集するか、手動の説明から生成します
- スクリプト:AI がバズるスクリプトを作成します(フック - 課題 - 解決策 - CTA の形式)
- 出演者:Flux 2 Pro で AI 出演者を生成するか、共有ギャラリーから選択します
- 音声:ElevenLabs の TTS ナレーション(英語/スペイン語、男性/女性)
- 動画:トーキングヘッド動画を生成します(Hailuo 2.3 Fast img2video + VEED Lipsync)
- B ロール:Ken Burns エフェクト付きのビジュアルを AI が生成します
- 合成:字幕とフックのオーバーレイを含め、FFmpeg で最終動画を組み立てます
- 公開:Upload-Post を介して TikTok、Instagram Reels、YouTube Shorts に直接投稿します
YouTube Studio
- バズるタイトル候補 10 件を AI で生成
- タイトルをブラッシュアップするインタラクティブチャット
- 顔と背景をカスタマイズできる AI サムネイル生成
- Whisper の文字起こしからチャプターのタイムスタンプ付き説明文を自動生成
- Upload-Post を介して YouTube に直接公開
ソーシャルメディアへの自動公開
- ワンクリック投稿で TikTok、Instagram Reels、YouTube Shorts に同時投稿
- アップロードの予約で任意の日付と時刻に投稿できます。コンテンツカレンダーを計画して、自動公開に任せられます
- 複数プラットフォームへの配信により、1 つのインターフェースからすべてのソーシャルネットワークに一括公開できます
- Upload-Post と連携した非同期アップロード
インフラストラクチャ
- S3 クラウドバックアップ(クリップ用のプライベートバケット、ギャラリー/アバター用のパブリックバケット)
- FastAPI が提供する JSON-LD 構造化データ付き SEO ギャラリーページ
- すべてのユーザーが利用できる共有アバターギャラリー
- 並列実行数を設定できる非同期ジョブキュー
対象ユーザー
- コンテンツクリエイター — 長尺動画を自動でショート動画に変換し、すべてのプラットフォームに一括公開できます
- マーケティングエージェンシー — 出演者やスタジオを用意せずに、クライアント向けの UGC 動画を大規模に生成できます
- SaaS 創業者 — URL だけで製品デモやマーケティング用ショート動画を作成できます
- E コマースブランド — TikTok Shop、Instagram、YouTube 向けに、AI 出演者を使った製品動画を作成できます
- 地域の事業者 — レストラン、ジム、不動産、コーチングなど、手頃な動画マーケティングを利用できます
- 開発者 — セルフホストし、パイプラインをカスタマイズして、API 経由で連携できます
AI Shorts のショーケース
OpenShorts AI Shorts で生成された動画です。カメラもスタジオも俳優も必要ありません。
![]() | ![]() | ![]() |
| 投資家向けバイオハッキング · LOW COST | 開発者の秘密兵器 · LOW COST | AI エージェントの秘密 · PREMIUM |
すべての動画は openshorts.app/gallery でご覧いただけます。
OpenShorts と競合製品の比較
| 機能 | OpenShorts | Opus Clip | CapCut | Vizard | Klap | Descript |
|---|---|---|---|---|---|---|
| 価格 | セルフホストは無料 ホスト版は月額 $12 から | 月額 $15-29 | 月額 $8 | 月額 $15-20 | 月額 $23-63 | 月額 $24-65 |
| セルフホスト | はい | いいえ | いいえ | いいえ | いいえ | いいえ |
| オープンソース | はい | いいえ | いいえ | いいえ | いいえ | いいえ |
| ウォーターマーク | セルフホストではなし ホスト版の無料プランのみあり | 無料プラン | 一部 | 無料プラン | 無料プラン | 無料プラン |
| アップロード制限 | セルフホストではなし ホスト版はプランによる | 10-30GB | クレジット制 | 60分-10時間 | 月10-100本 | 60分-40時間 |
| AI クリップ検出 | はい | はい | はい | はい | はい | はい |
| スマートな 9:16 リフレーミング | はい | はい | はい | はい | はい | いいえ |
| 字幕の自動生成 | はい | はい | はい | はい | はい | はい |
| 音声吹き替え(30 以上の言語) | はい。お持ちの ElevenLabs キーを使用 | いいえ | Pro のみ | いいえ | Pro のみ | Business のみ |
| AI UGC 俳優 | はい | いいえ | いいえ | いいえ | いいえ | いいえ |
| AI 動画エフェクト | はい | いいえ | はい | いいえ | いいえ | いいえ |
| フックテキストのオーバーレイ | はい | いいえ | いいえ | いいえ | いいえ | いいえ |
| YouTube Studio(タイトル、サムネイル) | はい | いいえ | いいえ | いいえ | いいえ | いいえ |
| ソーシャルメディアへの自動投稿 | はい | Pro のみ | TikTok のみ | 有料プランのみ | 有料プランのみ | いいえ |
| アップロードの予約 | はい | Pro のみ | いいえ | 有料プランのみ | 有料プランのみ | いいえ |
| データプライバシー | お客様のサーバー | 提供元のクラウド | 提供元のクラウド | 提供元のクラウド | 提供元のクラウド | 提供元のクラウド |
| ローカル LLM(Ollama)で動作 | はい | いいえ | いいえ | いいえ | いいえ | いいえ |
費用はいくらですか?
OpenShorts のセルフホストは無料です。マシンはご自身で用意し、使用する AI API の料金のみをお支払いください。多くの API には充実した無料枠があります。
| サービス | 無料枠 | 有料料金 | 用途 |
|---|---|---|---|
| Google Gemini | 上限に余裕のある無料トライアル | 10 分の動画あたり $0.01 未満 | バイラルな瞬間の検出、スクリプト生成、ウェブ調査 |
| ローカル LLM(Ollama、LM Studio、vLLM...) | 無料、ご自身のハードウェアを使用 | $0 | Gemini の代わりにバイラルな瞬間を検出(LLM_BASE_URL) |
| fal.ai | 従量課金 | AI Short 1 本あたり約 $0.50-1.50 | 俳優の生成、トーキングヘッド動画、リップシンク |
| ElevenLabs | 無料枠あり | 従量課金 | ナレーション、音声吹き替え |
| Upload-Post | すべてのネットワークに月10回まで無料でアップロード(クレジットカード不要) | 従量課金 | TikTok、Instagram、YouTube への自動投稿 |
| AWS S3 | オプション | 約 $0.023/GB | クリップとギャラリーのクラウドバックアップ |
結論: Gemini を使えば、ほぼ無料で動画をクリップできます。また、Upload-Post を使えば、すべてのソーシャルネットワークに月10本の動画を無料で投稿できます。
こうした作業を一切自分で実行したくない場合は? openshorts.app では、同じソフトウェアを当社のハードウェアでご利用いただけます。当社の NVIDIA GPU なら、8 分の動画を約 50 秒でクリップできます。一般的な CPU では 5~8 分かかります。Gemini キーが付属し、自動投稿も設定済みです。無料プランは月20分で、ウォーターマークが付き、クレジットカードは不要です。有料プランは、ウォーターマークなしで100分利用できる月額 $12 からです。
要件
- Docker と Docker Compose
- Google Gemini API キー(無料 — こちらから取得)— すべての AI 機能で必要です
- fal.ai API キー(従量課金制)— AI Shorts(アクター生成、動画、リップシンク)で必要です
- ElevenLabs API キー(無料プラン)— ナレーション/吹き替えで必要です
- Upload-Post API キー(無料プラン)— SNS への直接投稿で必要です
はじめに
1. クローン
git clone https://github.com/mutonby/openshorts.git
cd openshorts
2. 設定(任意)
cp .env.example .env
# Edit .env with your AWS keys for S3 backup
3. 起動
docker compose up --build
4. ダッシュボードを開く
http://localhost:5175 にアクセスします
- Settings に移動し、API キー(Gemini、fal.ai、ElevenLabs、Upload-Post)を入力します
- Clip Generator:長尺動画をアップロードして、バイラルショート動画を生成します
- AI Shorts:商品を説明するか URL を貼り付けて、UGC マーケティング動画を生成します
- YouTube Studio:YouTube 用のサムネイル、タイトル、説明を生成します
- UGC Gallery:生成されたすべての動画とアバターを閲覧します
5. GPU アクセラレーション(任意、NVIDIA)
デフォルトのイメージは CPU 専用です。NVIDIA カード(RTX 4060 など、NVENC 対応カード)を使用すると、8 分の動画のクリップ作成にかかる時間は、5〜8 分から約 1 分に短縮されます。VM のように何かをパススルーするわけではなく、コンテナからホストの GPU にアクセスできるようにするだけです。
ホスト: NVIDIA ドライバー(nvidia-smi が動作する必要があります)と NVIDIA Container Toolkit をインストールします。
sudo nvidia-ctk runtime configure --runtime=docker && sudo systemctl restart docker
docker run --rm --gpus all nvidia/cuda:12.4.0-base-ubuntu22.04 nvidia-smi # sanity check
Windows では WSL2 バックエンドを使用する Docker Desktop と Windows NVIDIA ドライバーを使います。WSL 内にドライバーをインストールする必要はありません。
Compose: docker-compose.yml と同じ場所に docker-compose.override.yml を作成します(自動的に読み込まれます)。GPU: "1" を指定すると、cuBLAS/cuDNN と onnxruntime-gpu がイメージに追加されます(約 2 GB)。NVENC には video が必要です。
services:
backend:
build:
context: .
args:
GPU: "1"
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu, video]
.env:
WHISPER_MODEL=large-v3-turbo
WHISPER_DEVICE=cuda
WHISPER_COMPUTE=float16
FFMPEG_ENCODER=auto # probes h264_nvenc at startup, falls back to x264
TRANSCRIBE_BACKEND=parakeet # optional: ~2x faster than whisper, 25 European languages, auto-falls back to whisper
ASR_GPU_CONCURRENCY=1
確認:
docker compose up --build -d
docker exec openshorts-backend nvidia-smi -L
docker exec openshorts-backend ffmpeg -hide_banner -f lavfi -i testsrc=size=256x256:rate=1 -frames:v 1 -c:v h264_nvenc -f null -
最初のジョブでは、バックエンドのログに選択されたエンコーダーと文字起こしデバイスが表示されます。whisper で CUDA エラー(VRAM 不足など)が発生した場合は、自動的に CPU で 1 回再試行します。large-v3-turbo fp16 と検出モデルには、8 GB の VRAM で十分です。
6. Google キーなしで実行(ローカル LLM、任意)
クリップのパイプラインでクラウドを呼び出すのは、モーメント選択のときだけです。文字起こし結果(動画は送信されません)を Gemini に送ります。代わりに、OpenAI 互換サーバーを指定すれば、パイプライン全体をローカルで実行できます。
# .env
LLM_BASE_URL=http://host.docker.internal:11434/v1 # Ollama on the host
LLM_MODEL=qwen2.5:14b # any chat model that follows instructions
# LLM_API_KEY=... # only if your server checks one (vLLM --api-key, OpenRouter)
Ollama、LM Studio、vLLM、llama.cpp server、LocalAI、OpenRouter で動作します。これを設定すると、ダッシュボードで Gemini キーを求められなくなります。次の 2 点に注意してください。
- コンテキスト長。 スコアリング呼び出しでは 3 つの文字起こしウィンドウ(約 2〜3k トークン)が渡され、詳細呼び出しでは最大 10 個(長いポッドキャストでは約 5k)が渡されます。Ollama のデフォルトのコンテキスト長は 4096 トークンで、通知なく切り捨てられるため、
OLLAMA_CONTEXT_LENGTH=16384を指定して実行するか、Modelfile でnum_ctxを設定してください。コンテキスト長に余裕がある場合に限り、LLM_SCORE_BATCHを 3 より大きくしてください。7〜8B モデルは安定して有効な JSON を返しますが、3B モデルでは安定しません。 - Gemini が引き続き必要な機能。 フレームを確認する必要がある機能(自動レイアウト選択機能(
AUTO_LAYOUT)、画面上のコンテンツ検出、無音動画(クリップに使える音声がない場合))です。Gemini キーがない場合、これらの機能は通常の顔追跡クロップにフォールバックし、無音動画はその旨を示すメッセージとともに失敗します。LLM_BASE_URLと一緒にキーを追加すれば、両方を利用できます。
技術パイプライン
Clip Generator
- 取り込み — ローカル動画のアップロード(または yt-dlp を使ったセルフホスト URL からの取り込み)
- 文字起こし — faster-whisper による単語レベルのタイムスタンプ付き文字起こし
- 検出 — PySceneDetect によるシーン境界の検出
- 分析 — Gemini が 3〜15 個のバイラルな瞬間(各 15〜60 秒)を特定
- 抽出 — FFmpeg による高精度なクリップ切り出し
- リフレーム — 被写体追跡を使った AI による縦型クロップ
- エフェクト — 字幕、フック、AI 動画エフェクト
- 公開 — S3 へのバックアップと Upload-Post による SNS 配信
AI Shorts
- 分析 — ウェブサイトのスクレイピング+Gemini によるウェブ調査(または手動での説明)
- スクリプト — Gemini がセグメント付きのバイラル動画用スクリプトを生成
- アクター — Flux 2 Pro によるポートレート生成(またはギャラリー/アップロード)
- 音声 — ElevenLabs による TTS ナレーション
- 動画 — Hailuo 2.3 Fast による画像から動画への変換+VEED Lipsync(低コスト)、または Kling Avatar v2(プレミアム)
- Bロール — Flux 2 Pro による画像生成+ケン・バーンズ効果
- 合成 — FFmpeg による、ASS 字幕とフックのオーバーレイを使った組み立て
- ギャラリー — SEO ページ用のメタデータを付けてパブリック S3 にアップロード
- 公開 — Upload-Post で TikTok、Instagram、YouTube にアップロード
自動化:MCP サーバー、REST API、Webhook
ダッシュボードを使う必要はありません。パイプライン全体を AI エージェントやスクリプトから呼び出せます。
MCP サーバー(/mcp)
OpenShorts には組み込みの MCP サーバーが用意されているため、Claude、ChatGPT、Cursor、その他の MCP クライアントで動画を切り抜いて公開できます。
claude.ai と ChatGPT:https://mcp.openshorts.app/mcp をカスタムコネクターとして貼り付け(Settings → Connectors)、openshorts.app でアクセスを承認します。サーバーは動的クライアント登録を使った OAuth 2.1 を実行するため、コピーするキーはありません。接続は Account → API keys に表示され、ここで取り消すとアプリとの接続が解除されます。
# Claude Code / Cursor / n8n (hosted): create an API key in your account page
claude mcp add --transport http openshorts https://mcp.openshorts.app/mcp \
--header "Authorization: Bearer osk_..."
# Self-hosted (no key needed, BYOK rules apply):
claude mcp add --transport http openshorts http://localhost:8000/mcp
# Self-hosted without running the web server: same tools over stdio
claude mcp add openshorts -- python mcp_stdio.py
ツール:process_video(URL または upload_id。ソースにすでに字幕がある場合は captions: false、フックの行を省略する場合は auto_hook: false。デフォルトではダッシュボードと同様に焼き付けられます)、create_upload(エージェントにローカルファイルを渡す場合に使用:バイト列を PUT してから処理)、get_job_status、list_clips、get_quota、add_subtitles、recut_clip、publish_clip。*「このポッドキャストを切り抜いて、最適な 3 本を TikTok に予約投稿して」*のような指示を、好みのエージェントで一行だけで実行できます。
REST API+API キー
ホスト型アカウントでは、アカウントページから osk_... API キーを発行できます。キーを使うと、どこでも自分として認証され、プラン、利用時間、ジョブの所有権は通常と同じです。
curl -X POST https://api.openshorts.app/api/process \
-H "Authorization: Bearer osk_..." -H "Content-Type: application/json" \
-d '{"url": "https://youtube.com/watch?v=...", "acknowledged": true,
"webhook_url": "https://your-server.com/hooks/openshorts"}'
どのインスタンスでも、/docs からインタラクティブなドキュメント(OpenAPI)を利用できます。
完了 Webhook
POST /api/process に webhook_url(および必要に応じて webhook_secret)を渡すと、ジョブが終端状態に達したときに POST がちょうど 1 回送信されます。n8n/Zapier/cron のパイプラインでポーリングを繰り返す必要はありません。
{"event": "job.completed", "job_id": "…",
"clips": [{"index": 0, "title": "…", "video_url": "…", "download_url": "…"}]}
シークレットを指定すると、本文に署名が付与されます:X-OpenShorts-Signature: sha256=<hmac-sha256(body)>。
CLI
依存関係なしで、ターミナルから同じ API を利用できます(cli/)。
pip install openshorts # or: uvx openshorts
export OPENSHORTS_API_KEY=osk_... # hosted
# export OPENSHORTS_API_URL=http://localhost:8000 # self-hosted, no key
openshorts process "https://youtube.com/watch?v=..." --wait
openshorts clips <job_id>
openshorts publish <job_id> 0 --platforms tiktok,youtube
エージェントスキル
skills/openshorts/SKILL.md はオープンな
Agent Skills 標準に準拠しているため、対応するあらゆるスキル対応エージェントで利用できます。
# Claude Code (and most agents): copy the folder into the skills directory
cp -r skills/openshorts ~/.claude/skills/
# Hermes Agent: install straight from this repo
hermes skills install mutonby/openshorts/skills/openshorts
# OpenClaw: from ClawHub
openclaw skills install @mutonby/openshorts
n8n
インポート可能なワークフロー(動画 URL を入力すると、公開可能なクリップが出力され、ポーリング不要)は
examples/n8n/ にあります。
技術スタック
| レイヤー | 技術 |
|---|---|
| バックエンド | Python 3.11、FastAPI、google-genai、faster-whisper、ultralytics(YOLOv8)、mediapipe、opencv-python、yt-dlp、FFmpeg、httpx |
| フロントエンド | React 18、Vite 4、Tailwind CSS 3.4 |
| AI API | Google Gemini、fal.ai(Flux、Hailuo、VEED、Kling)、ElevenLabs |
| インフラストラクチャ | Docker+Docker Compose、AWS S3 |
| 公開 | Upload-Post API(TikTok、Instagram、YouTube) |
環境変数
サーバー側(.env):
| 変数 | 説明 |
|---|---|
AWS_ACCESS_KEY_ID | S3 用の AWS アクセスキー |
AWS_SECRET_ACCESS_KEY | AWS シークレットキー |
AWS_REGION | AWS リージョン(デフォルト:us-east-1) |
AWS_S3_BUCKET | クリップのバックアップ用プライベートバケット |
AWS_S3_PUBLIC_BUCKET | ギャラリー/アバター用パブリックバケット |
MAX_CONCURRENT_JOBS | 同時処理の上限(デフォルト:5) |
LLM_BASE_URL | 現時点でモーメント選択に使用する OpenAI 互換サーバー(Ollama、vLLM、LM Studio など)。これを設定すると、Gemini キーは任意になります |
LLM_MODEL | そのサーバー上のモデル名(デフォルト llama3.1:8b) |
LLM_API_KEY | サーバーが認証を要求する場合に使用するベアラートークン |
LLM_SCORE_BATCH | 1 回のスコアリング呼び出しあたりの文字起こしウィンドウ数(デフォルト:ローカルでは 3、Gemini では 8) |
クライアント側(localStorage に暗号化して保存):
| キー | 説明 |
|---|---|
GEMINI_API_KEY | Google Gemini — LLM_BASE_URL が設定されていない場合は必須(設定されている場合は、レイアウト選択と無音動画にのみ必要) |
FAL_KEY | fal.ai — AI Shorts に必要 |
ELEVENLABS_API_KEY | ElevenLabs — ナレーション/吹き替えに必要 |
UPLOAD_POST_API_KEY | Upload-Post — SNS 投稿に必要 |
セキュリティとパフォーマンス
- 非 root での実行:コンテナは専用の
appuserとして実行されます - 同時実行の制御:セマフォベースのジョブキュー(
MAX_CONCURRENT_JOBS) - 自動クリーンアップ:古いジョブを自動削除します(保持期間:1 時間)
- キーの暗号化:API キーはクライアント側で暗号化され、サーバー側には保存されません
- アップロードの検証:画像アップロードの形式と最小サイズを検証します
- ファイルの上限:2GB のアップロード上限による保護
SNS の設定(Upload-Post)
- 登録:app.upload-post.com/login
- プロフィールを作成:Manage Users に移動します
- アカウントを接続:TikTok、Instagram、YouTube のいずれか、または複数を連携します
- API キーを取得:API Keys に移動します
- OpenShorts で使用:キーを Settings に貼り付けます
スター履歴
コントリビューション
コントリビューションを歓迎します!新しい AI モデルの追加、リップシンクパイプラインの改善、新機能の開発など、お気軽に PR を作成してください。
ライセンス
コアアプリケーションは MIT License のもとで提供されます。OpenShorts は自由に使用、変更、拡張できます。
例外: cloud/ ディレクトリ(課金、管理対象キー、および任意の BILLING_ENABLED フラグを支えるホストサービスのインフラストラクチャ)は、OpenShorts Commercial License のもとでソースコードが公開されています。コードの閲覧、変更、個人利用または社内利用のためのセルフホストは可能ですが、有料サービスまたはホストサービスとして第三者に提供することはできません。コアアプリをセルフホストする場合、このディレクトリは必要ありません。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。



