API リファレンス
動画
/v1/videos/v1/videos/{task_id}/v1/videos/{task_id}/content非同期の動画生成(Seedance、Kling、Veo、Wan、Grok Imagine …)。/v1/videos は、テキストから動画と画像から動画の入力を OpenAI 形式の 1 つのリクエストで受け付けます。ポーリング用の task_id を返します — または送信時に Webhook を登録できます。
#リクエストパラメーター
modelstring必須モデルページにある動画モデルの ID(例:doubao-seedance-2.5)。
promptstring必須シーンの説明。image2video では動きの方向を指定します。
imagestring任意image2video のみ:開始フレームの画像(URL または base64)。
imagesarray任意1 つのタスクで複数の画像を受け付けるベンダー向けの参照フレーム。
durationnumber任意クリップの長さ(秒) — 料金ティアの軸の 1 つです。対応値はモデルカードを参照してください。
secondsnumber任意一部のモデルファミリーがクリップの長さに使うエイリアス。duration を優先して使用してください。
resolutionstring任意モデルが対応している場合の出力解像度ティア(720p や 1080p など)。
sizestring任意幅 x 高さ形式のサイズを使うモデルファミリー向けの、アスペクト比またはサイズの指定。
webhook_urlstring任意タスクが終了状態になったときに呼び出される HTTPS URL — コールバックの仕様は動画ガイドを参照してください。
webhook_secretstring任意設定すると、配信に X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret)) が付きます。
ベンダーパラメーターのパススルー
失敗したタスクは自動で返金
#実行中のタスクをキャンセル
/v1/videos/:task_id終了状態に達していないタスクを停止します。成功すると確保済みの利用枠が返金され、タスクは理由 "cancelled by user" の failed として記録され、登録済みの Webhook は task.failed として送信されます。
大半のプロバイダーはキャンセル不可
curl -X DELETE https://www.aisplice.store/v1/videos/task_xxx \
-H "Authorization: Bearer sk-YOUR_KEY"{
"id": "task_xxx",
"task_id": "task_xxx",
"status": "cancelled"
}"cancelled" はこのレスポンスにしか現れない点に注意してください。後でポーリングすると、タスクは failed と報告されます。移行先の状態がそれだからです。
- 404 task_not_exist不明なタスク ID か、別のアカウントのものです。
- 409 task_not_cancellableタスクはすでに終了しています — 停止するものはありません。
- 501 task_cancel_not_supportedこのプロバイダーはキャンセル API を提供していません。
#既存の動画をリミックス
/v1/videos/:video_id/remix対応モデルで、完成した動画を新しいプロンプトで再生成します。送信するのは prompt だけです:モデル、長さ、解像度、料金の要素はすべて元のタスクから引き継がれ、リクエストは元の動画を生成したチャネルに固定されます。
curl https://www.aisplice.store/v1/videos/task_xxx/remix \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: remix-of-task_xxx" \
-d '{"prompt": "Same shot, at night"}'{
"task_id": "task_yyy",
"status": "queued",
"remixed_from_video_id": "task_xxx"
}リミックスは新しい課金対象タスク
- 400 invalid_requestリミックスには prompt が必須です。
- 400 task_not_existソース動画の ID が不明か、別のアカウントのものです。
- 400 task_channel_disable元の動画を生成したチャネルは現在無効になっています。
#関連するエラー
- 404 not_found不明なパス、不明なモデル名、または期限切れか他アカウントの task_id です。
- 422 unprocessable_entityゲートウェイが転送したパラメーター値をベンダーが拒否しました(対応していないサイズや長さなど)。
- 401Bearer トークンが無効か、ありません。このパスでは error.code が付きません — ステータスで判定してください。
- 402 insufficient_user_quotaウォレット残高が事前確保の見積額に足りません。
- 429キー単位のレート制限です。ボディは空なので、Retry-After の時間だけ待ってください。insufficient_user_quota が付いた 429 は、レート制限ではなく 1 日の利用上限額によるものです。
- 503 model_not_found不明なモデルか、現在そのモデルを提供できる正常なチャネルがありません。
#リクエスト例
# submit
curl https://www.aisplice.store/v1/videos \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "doubao-seedance-2.5", "prompt": "A drone shot of a lighthouse at dawn"}'
# poll every 5s
curl https://www.aisplice.store/v1/videos/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# download when completed
curl -L https://www.aisplice.store/v1/videos/$TASK_ID/content -o out.mp4 -H "Authorization: Bearer sk-YOUR_KEY"#レスポンス
// POST — submit accepted
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/videos/{task_id}
{
"task_id": "task_xxx",
"status": "in_progress", // queued | in_progress | completed | failed
"progress": "45%"
}
// terminal state
{
"task_id": "task_xxx",
"status": "completed",
"metadata": {"url": "https://…"}
}まだ解決しませんか?
リクエスト ID かエラーメッセージを送っていただければ、こちらで調査します。