mcpField
9
9router-video

9router-video

github.com/decoluaクリエイティブ・メディア31.6k86 回インストール今日更新
リポジトリ

9router-video について

9router-videoは、9Router経由でxAI Grok Imagineの動画生成、編集、延長ジョブを送信するスキルです。非同期の状態確認に対応し、CLIコマンドで完了した動画をダウンロードできます。

主な機能

  1. 01テキスト・画像から動画を生成
  2. 02既存動画の編集または延長
  3. 03非同期ジョブの状態確認
  4. 04CLIコマンドで結果をダウンロード

活用シーン

  1. 01テキストプロンプトから動画を生成
  2. 02画像から動画を作成
  3. 03既存動画を編集または延長

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/decolua/9router --skill 9router-video

インストール後、Claude Code で/9router-videoを入力して読み込まれたか確認します。

詳細

9Router — 動画生成(xAI Grok Imagine)

NINEROUTER_URL が必要です(認証が有効な場合は NINEROUTER_KEY も必要です)。セットアップについては、https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md を参照してください。

9Router ダッシュボードで xAI アカウントを接続する必要があります。接続方法は、Grok Build OAuth(SuperGrok / X Premium+ のサブスクリプションでサインイン)または console.x.ai で取得した直接の xAI API キーのいずれかです。この2つは認証方式が別々で、課金も個別です。ダッシュボードでは各接続で使用されている方式を確認できます。

エンドポイント(非同期ジョブのフロー)

動画生成は非同期です。POST はすぐに request_id を返し、ジョブの状態が done または failed になるまでポーリングします。

エンドポイント用途
POST /v1/videos/generationsテキストから動画を生成 / 画像から動画を生成
POST /v1/videos/edits既存の動画を編集
POST /v1/videos/extensions既存の動画を延長
GET /v1/videos/{request_id}ジョブの状態をポーリング

リクエストフィールド(xAI に変更せずそのまま渡されます。https://docs.x.ai/developers/rest-api-reference/inference/videos を参照):

フィールド必須備考
modelいいえxai/grok-imagine-video(上流に渡す前にプレフィックスが除去されます)
promptT2V の場合は必須動画の説明
durationいいえ秒数
aspect_ratioいいえ16:9、9:16、1:1、4:3、3:4、3:2、2:3
resolutionいいえ480p、720p、1080p
imageいいえ画像から動画を生成する場合は { "url": "https://… or data:image/…;base64,…" }
video編集 / 延長の場合{ "url": "…mp4" } または { "file_id": "…" }

例

ジョブを送信します:

curl -X POST "$NINEROUTER_URL/v1/videos/generations" \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"xai/grok-imagine-video","prompt":"A cinematic tracking shot through a neon city at night","duration":8,"aspect_ratio":"16:9","resolution":"720p"}'
# → {"request_id":"abc123"}   (response header x-9router-connection-id: <id>)

完了するまでポーリングします(同じアカウントでジョブをポーリングできるよう、接続ヘッダーをそのまま返します):

curl "$NINEROUTER_URL/v1/videos/abc123" \
  -H "Authorization: Bearer $NINEROUTER_KEY" \
  -H "x-connection-id: <id from create response>"
# → {"status":"pending","progress":42}
# → {"status":"done","video":{"url":"https://…mp4","duration":8},"model":"grok-imagine-video"}
# → {"status":"failed","error":{"code":"…","message":"…"}}

ダウンロード:done レスポンスから video.url を取得します。

CLI で一度に実行

9router xai video \
  --prompt "A cinematic tracking shot through a neon city at night" \
  --output video.mp4
# options: --model --duration --aspect-ratio --resolution --image --timeout --port --api-key

ジョブを送信し、進行状況を表示しながらポーリングして、video.mp4.part にダウンロードします。成功すると、アトミックにファイル名を変更します。Ctrl+C で正常にキャンセルでき、失敗時はゼロ以外の終了コードを返します。

注意事項と制限

  • 上流のジョブはアカウントに紐付けられます。ジョブを作成した接続と同じ接続でポーリングしてください(x-connection-id ヘッダーを使用します。値は作成レスポンスの x-9router-connection-id です)。
  • 作成 POST は自動再試行されません(再試行すると、動画が2本作成され、課金される可能性があります)。401 の場合に限り、トークンを更新して1回だけ再試行します。この場合、ジョブが作成される前に上流がリクエストを拒否します。
  • 動画モデルには kind: "video" タグが付与され、チャットモデルの一覧とチャットのフォールバック構成から除外されます。
  • Grok Build のサブスクリプション OAuth トークンは、API キーと同じ api.x.ai/v1/videos エンドポイントに送信されます。サブスクリプションの各プランに動画生成の利用枠が含まれるかどうかは xAI が管理しており、9Router では確認されません。上流から 403 / permission_denied が返された場合、接続中のアカウントには動画へのアクセス権がありません。

コメント