Sora2 Video Studio — OpenAI Soraで“テキストから動画”を生成できるデスクトップアプリ
最近話題の OpenAI Sora API を使って、テキストから動画を自動生成できる
Tkinter製のデスクトップアプリ 「Sora2 Video Studio」 を公開しました。
このアプリを使えば、
💡 プロンプト入力 → 動画生成 → 履歴保存 → プレビュー再生
が、すべて1つのウィンドウ内で完結 します。
Macユーザー向けに、クリエイティブな動画生成ワークフローをシンプルにすることを目的に開発しました。
🎥 特徴とできること
機能 | 内容 |
---|---|
🧠 テキストから動画生成 | OpenAI Sora (model="sora-2" ) にプロンプトを送信して自動生成。約1分で動画を取得。 |
⏱ リアルタイム進捗表示 | 生成中のステータスと経過時間をUI上で確認可能。 |
🗂 履歴管理機能 | すべての生成履歴をJSONに保存。いつでも再生・再生成が可能。 |
🎞 内蔵動画プレイヤー |
imageio + Pillow によるフレーム再生で、アプリ内プレビューを即表示。 |
💾 永続化ストレージ | 動画は ./videos 、履歴は ./data/history.json に自動保存。 |
⚙️ 動作環境
- macOS(Apple Silicon / Intel 両対応)
- Python 3.10 以上
- uv 0.4 以上
- ffmpeg(Homebrew 推奨)
- OpenAI APIキー(Sora利用権限が必要)
🚀 セットアップ手順
# リポジトリを取得
git clone https://github.com/softjapan/sora2-video-studio.git
cd sora2-video-studio
# 依存関係を同期
uv sync
# 環境変数を設定
cp .env.example .env
# .env を開いて OPENAI_API_KEY を設定
# ffmpeg をインストール
brew install ffmpeg
▶️ 実行方法
uv run sora2
起動後の操作フロー:
- 左ペインにプロンプトを入力して「生成」をクリック
- ステータスバーで進捗と経過時間を確認
- 生成完了後、右ペインから履歴をクリックして動画を再生
- 過去の履歴を再利用して再生成も可能
💾 データ保存仕様
種別 | 保存場所 | 内容 |
---|---|---|
動画ファイル | ./videos |
生成された .mp4 ファイル |
履歴メタデータ | ./data/history.json |
プロンプト、生成日時、ステータス等 |
初回起動時に自動生成されます。
🧩 プロジェクト構成
sora2-video-studio/
├── pyproject.toml # uv 依存定義
├── specs.md # プロダクト仕様書
├── src/sora2/
│ ├── api.py # OpenAI Sora API ラッパー
│ ├── app.py # Tkinter アプリUI
│ ├── player.py # 動画再生コンポーネント
│ ├── storage.py # JSON履歴管理
│ └── main.py # エントリーポイント
├── data/ # 履歴保存
└── videos/ # 動画保存
🧰 開発メモ
-
uv run sora2
で実行テスト可能 - 依存追加は
uv pip install
- コードスタイルは
black
準拠 - 重大変更時は
README
とspecs.md
を更新
🩺 トラブルシューティング
問題 | 対処 |
---|---|
プレビューが出ない | ffmpeg が正しくインストールされているか確認 |
API呼び出し失敗 |
.env の OPENAI_API_KEY とSora権限を確認 |
履歴が壊れた |
./data/history.json を削除すると再生成されます |
🪶 まとめ
- OpenAI Sora をPython + Tkinterで活用した実用的なGUIアプリ
- Mac環境で動画生成〜再生まで一気通貫で操作可能
- JSONベースの履歴保存により、生成プロセスの再利用が容易