前提条件
- SambaCloud アカウントと API キー。
- TwelveLabs アカウントと API キー。
- 動画をアップロード済みの TwelveLabs インデックスが 1 つ以上あること (インデックス ID を控えておいてください)。
- Python 3.9 以降のインストール済み環境。
- Node.js 18 以降 (フロントエンドに必要)。
- ローカルマシンにクローンした Video2Game リポジトリ。
セットアップ
この連携では、動画理解に TwelveLabs を、ゲームコードの生成に SambaNova を使用し、教育用動画をインタラクティブな学習体験へと変換できます。 Video2Game プロジェクトは、同時に実行する必要がある 2 つのサービスで構成されています。- バックエンド (Flask、
:8000) — TwelveLabs による分析と SambaNova による生成を処理します。 - フロントエンド (Next.js、
:3000) — 操作対象となる UI です。
1
環境変数の設定
backend/.env を作成します。DeepSeek-V3.1、Meta-Llama-3.3-70B-Instruct、Llama-4-Maverick-17B-128E-Instruct)。モデルの提供終了ページに記載された提供終了済みの ID は避けてください。TWELVELABS_INDEX_ID は必須です。未設定の場合、バックエンドは RuntimeError: Missing required configuration をスローします。SAMBANOVA_MODEL は、Video2Game が backend/config.py:18 に提供終了済みのモデルをハードコードしているアップストリームのバグに対する回避策です。アップストリームでの修正 (Hrishikesh332/Video2Game#1) が反映されるまでは、環境変数から読み取るように config.py にパッチを適用してください。2
バックエンドの依存関係のインストール
必要な Python パッケージをインストールします。
3
バックエンドの起動
4
フロントエンドの設定
新しいターミナルを開き、リポジトリのルートで
www.video2game.vercel.app/.env.local を作成します。5
フロントエンドのインストールと起動
6
動画からのゲーム生成
- http://localhost:3000 を開きます。
- TwelveLabs タブをクリックします。
- TwelveLabs の API キーを入力し、Connect をクリックします。
- Video Index を選択します (動画がアップロード済みのインデックスのみ表示されます)。
- Video を選択します。
- Generate from TwelveLabs をクリックすると、SambaNova を利用したインタラクティブなゲームが生成されます。

トラブルシューティング
`The requested model (DeepSeek-R1-0528) is not available on SambaNova Cloud`
`The requested model (DeepSeek-R1-0528) is not available on SambaNova Cloud`
アップストリームの Video2Game は、その上で、
backend/config.py:18 に提供終了済みの SambaCloud モデルをハードコードしています。該当行を次のようにパッチしてください。backend/.env に SAMBANOVA_MODEL=DeepSeek-V3.1 を追加します。この問題はアップストリームの Hrishikesh332/Video2Game#1 で追跡されています。バックエンド起動時の `RuntimeError: Missing required configuration`
バックエンド起動時の `RuntimeError: Missing required configuration`
backend/.env には 6 つの .env キーをすべて設定する必要があります。特に TWELVELABS_INDEX_ID にご注意ください。Connect 後もインデックスのドロップダウンが空になる
Connect 後もインデックスのドロップダウンが空になる
お使いの TwelveLabs API キーに、動画がアップロード済みのインデックスが 1 つ以上あることを確認してください。以下で検証できます。
新規生成ではなく古い/キャッシュ済みのゲームが返される
新規生成ではなく古い/キャッシュ済みのゲームが返される
バックエンドは、生成したゲームを
video_id ごとにキャッシュします。以下のリクエストで再生成を実行できます。
