動画APIの概要
curl --request POST \
--url https://api.mixroute.ai/v1/video/generationsimport requests
url = "https://api.mixroute.ai/v1/video/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/video/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixroute.ai/v1/video/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/video/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mixroute.ai/v1/video/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/video/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body動画シリーズ
動画APIの概要
動画モデルファミリーを選択し、共通の非同期エンドポイントとKlingのネイティブワークフローの違いを確認します。
POST
/
v1
/
video
/
generations
動画APIの概要
curl --request POST \
--url https://api.mixroute.ai/v1/video/generationsimport requests
url = "https://api.mixroute.ai/v1/video/generations"
response = requests.post(url)
print(response.text)const options = {method: 'POST'};
fetch('https://api.mixroute.ai/v1/video/generations', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.mixroute.ai/v1/video/generations",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.mixroute.ai/v1/video/generations"
req, _ := http.NewRequest("POST", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.mixroute.ai/v1/video/generations")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.mixroute.ai/v1/video/generations")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body以下から動画モデルファミリーを選択して、リクエストスキーマと例を確認してください。大半のファミリーでは共通の非同期エンドポイントを使用します。Klingは個別のネイティブエンドポイントとタスク照会を使用し、レスポンス構造も異なります。
上記の共通エンドポイントと以下のワークフローはKlingには適用されません。Klingでは、送信時の
アカウントのモデルマーケットプレイスまたはモデル一覧にある、正確な
動画モデルファミリー
| ファミリー | パラメータリファレンス | リクエスト構造 |
|---|---|---|
| Seedance | Seedance | model、prompt、assetに加え、ベンダーのすべての生成フィールドにはmetadataを使用します。 |
| Doubao | Doubao | doubao-seedance-*ルート。トップレベルにmodel/prompt/assetを配置し、プロバイダーのフィールドはmetadata内に配置します。 |
| Dreamina | Dreamina | dreamina-seedance-*ルート。トップレベルにmodel/prompt/assetを配置し、プロバイダーのフィールドはmetadata内に配置します。 |
| Google Veo | Veo | トップレベルのmodel/promptと、metadata内でフラットに配置するmetadata.durationSeconds、metadata.aspectRatioなど。 |
| MiniMax H3 | MiniMax H3 | トップレベルにmodel/promptを配置し、H3のフィールドはmetadata.content、metadata.resolution、metadata.duration、metadata.ratioの下に配置します。 |
| Wan | Wan | modelはルートに配置し、ネイティブのinputとparametersはmetadata内にネストします。 |
| Kling | KlingネイティブAPI | /kling/…を使用します。モデルはパスに指定し、ネイティブのsettings/options/contentsを使用します。metadataは使用しません。 |
| OpenAI Sora 2 | Sora 2 | 専用のモデルページとダウンロードエンドポイントを参照してください。 |
| Gemini Omni | Gemini Omni | 専用のモデルページを参照してください。Veoの生成フィールドを流用しないでください。 |
エンドポイントと認証
| 操作 | メソッドとURL |
|---|---|
| タスクを作成 | POST https://api.mixroute.ai/v1/video/generations |
| タスクの照会 | GET https://api.mixroute.ai/v1/video/generations/{task_id} |
| Soraのダウンロード | GET https://api.mixroute.ai/v1/video/generations/download?id={task_id} |
data.idを保存し、Klingタスクの照会を使用してsucceededとoutputs[].urlを読み取ってください。
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
model識別子を使用してください。ベンダーがリリースしただけでは、MixRouteで利用できるとは限りません。
ワークフロー
- ファミリーのページを選択し、そのモデルのリクエストを作成します。
- 送信し、MixRouteの
task_idを保持します(一部のルートではidも返されます)。 - 成功するか、最終的な失敗状態になるまで、動画タスクの照会を使用してください。送信の成功は、動画の生成が完了したことを意味しません。
- 利用するルートが返す結果URLを読み取ってください。別のダウンロードエンドポイントが必要なSoraルートでは、動画のダウンロードを使用してください。
送信時のレスポンス
ゲートウェイのレスポンス例:{
"task_id": "TASK_ID",
"id": "TASK_ID",
"object": "video",
"model": "dreamina-seedance-2-0-260128",
"status": "queued"
}
送信時のタスクIDを保持し、上流のオペレーション名やファイルIDに置き換えないでください。送信後のタイムアウトは、タスクが作成されなかった証拠にはなりません。有料タスクの重複を避けるため、再送信する前にコンソールを確認してください。