Skip to Content
API動画生成動画タスクの作成

動画を作成

動画生成タスクを送信します。リクエストはタスク id とポーリング URL を含む 202 Accepted をすぐに返し、生成は非同期で実行されます。タスクをポーリングするか、webhook を受け取り、その後 動画ステータスの取得 で結果を読み取ります。

POST https://api.ofox.ai/v1/videos

リクエストパラメータ

パラメータ必須説明
modelstringModel slug。例:google/veo-3.1 または bytedance/seedance-2.0
promptstring動画のテキスト説明
durationinteger動画の長さ(秒)
resolutionstring480p / 720p / 1080p / 1K / 2K / 4K
aspect_ratiostring16:9 / 9:16 / 1:1 / 4:3 / 3:4 / 3:2 / 2:3 / 21:9 / 9:21
sizestring正確なピクセル数 WIDTHxHEIGHT(例:1280x720)。resolution + aspect_ratio の代替
frame_imagesarrayフレーム制御(画像から動画 / 最初と最後のフレーム)。存在する場合 ⇒ 画像から動画として扱われます。以下を参照
input_referencesarray被写体 / スタイルのガイド(参照から動画)。正確なフレームアンカーではありません。以下を参照
generate_audioboolean音声出力に対応するモデルではデフォルトで true
seedinteger決定的生成の seed(すべてのプロバイダーで保証されるわけではありません)
callback_urlstring終端状態の webhook URL。HTTPS 必須(Webhooks を参照)
providerobjectプロバイダー固有の passthrough。Provider passthrough を参照

frame_images[] 要素

各要素は出力の1フレームを固定します。frame_typefirst_frame または last_frame です。

{ "type": "image_url", "image_url": { "url": "https://example.com/first.jpg" }, "frame_type": "first_frame" }

input_references[] 要素

画像 / 音声 / 動画参照を type で渡します。これらは被写体、スタイル、一貫性のガイドであり、正確なフレームアンカーではありません:

{ "type": "image_url", "image_url": { "url": "https://example.com/subject.jpg" } } { "type": "audio_url", "audio_url": { "url": "https://example.com/voice.mp3" } } { "type": "video_url", "video_url": { "url": "https://example.com/ref.mp4" } }
メディアtype最大数その他の制約
画像image_url≤ 9
音声audio_url≤ 31クリップあたり ≤ 15s
動画video_url≤ 1

いずれかの上限を超えると 400 too_many_references が返ります(Errors を参照)。

frame_imagesinput_references は同時に使用できません。1つのリクエストではどちらか一方のみを使用し、両方は使用しません。両方を送信すると 400 references_conflict が返ります。

生成モード(暗黙)

gen_mode フィールドはありません。モードは送信した入力から推定されます:

モード検出条件
text2videoframe_imagesinput_references もない
img2videoframe_images に1つの first_frame がある
img2video_endframe_imagesfirst_frame + last_frame がある
imgref2videoinput_references が画像のみ
mixref2videoinput_references が画像 / 音声 / 動画の混在

レスポンス

202 Accepted — タスクは status: "pending"polling_url 付きで受理されます:

{ "id": "9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718", "status": "pending", "polling_url": "https://api.ofox.ai/v1/videos/9bcf3c60-7db2-4e1a-a1b2-c3d4e5f60718" }

タスクが終端状態になるまで polling_url をポーリングします(または webhook を待ちます)。動画ステータスの取得 をご覧ください。

リクエスト例

1つの /v1/videos スキーマですべての生成モードに対応します。モードは入力から暗黙的に選択されます。以下の各例はそのまま実行できます。

frame_images / input_references なし → テキストから動画。

Terminal
curl -X POST https://api.ofox.ai/v1/videos \ -H "Authorization: Bearer $OFOX_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "google/veo-3.1", "prompt": "A golden retriever running on the beach at sunset", "duration": 5, "resolution": "1080p", "aspect_ratio": "16:9", "generate_audio": true }'

組み合わせ可能なオプション

以下のフィールドは生成モードとは独立しています。上記の任意のリクエスト body に追加できます。

ポーリングの代わりに、タスクが終端状態に達したときにあなたのエンドポイントで POST を受け取ります。

{ "model": "google/veo-3.1", "prompt": "...", "callback_url": "https://your-app.example/webhooks/ofox-video" }

callback_url は HTTPS である必要があります。payload と署名については Webhooks をご覧ください。

Provider passthrough

プロバイダー固有のパラメータは provider.options.<slug> 経由で渡され、一致したプロバイダーだけが受け取ります。watermark のようなパラメータはすべてのモデルで対応しているわけではないため、top-level field ではなく provider passthrough に置かれます(これは OpenRouter の provider-passthrough 慣例に従います)。モデルが受け付ける passthrough option は、そのモデルの capabilities に依存します。

{ "model": "alibaba/wan-2.7", "prompt": "...", "provider": { "options": { "dashscope": { "watermark": false, "audio_setting": "..." } } } }
Last updated on