OrcaRouter は Kling の動画生成にネイティブで対応します。タスクを送信し、
タスク ID をポーリングして状態を確認、上流が完了するとレンダリングされた
MP4 を受け取ります (通常 30 - 90 秒)。
この非同期の「送信してポーリング」パターンは動画専用です。チャット /
画像 / TTS はすべて同期のリクエスト-レスポンス; Kling 動画は違います。
送信エンドポイント POST /v1/video/generations は動画プロバイダ間で
共有されます ——リクエストボディの形は model プレフィックスで選択
されます。このページは model: kling/... を扱います。ByteDance
Seedance モデルには model: byteplus/... を使い、
Seedance 動画 を参照してください。
取得エンドポイント GET /v1/video/generations/{task_id} は両方で
同一です。
モデル
すべてのモデルがテキスト-to-動画と画像-to-動画をサポートします。
高度な機能はモデルにより異なります:
| モデル | マルチソース参照¹ | 4K | ネイティブ音声² | マルチショット |
|---|
kling/kling-v2-master | | | | |
kling/kling-v2-1-master | | | | |
kling/kling-v2-5-turbo | | | | |
kling/kling-v2-6 | | | pro モード | |
kling/kling-v3 | | ✓ | ✓ | ✓ |
kling/kling-video-o1 | ✓ (制限あり) | | | |
kling/kling-v3-omni | ✓ (完全) | ✓ | ✓ | ✓ |
¹ マルチソース参照 = image_list / video_list メタデータフィールド。
これらが存在すると Kling の Omni-Video 上流エンドポイントにルーティング
されます。kling/kling-video-o1 は制限されたサブセット (5s/10s のみ、
マルチショットなし、音声なし); 完全な Omni インターフェースには
kling/kling-v3-omni を選択してください。
² ネイティブ音声 = Kling が動画に合うサウンドトラックを自動生成。
上流で追加課金。metadata.sound: "on" で切り替え。
すべてのモデルの送信エンドポイントは同じ ——POST /v1/video/generations。
変わるのは上流が上の表ごとにどの metadata フィールドを尊重するかです。
タスクの送信
/v1/video/generations に model、prompt、および上流固有のパラメータ
を metadata 配下で POST します:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "kling/kling-v3-omni",
"prompt": "cat playing piano in a sunny room",
"metadata": {
"mode": "std",
"aspect_ratio": "16:9",
"duration": "5"
}
}'
レスポンスはタスク ID を含みます:
{
"id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"object": "video",
"model": "kling/kling-v3-omni",
"status": "queued",
"progress": 0,
"created_at": 1777975188
}
POST は小文字の status: "queued" を返します。GET は大文字状態
(SUBMITTED / IN_PROGRESS / SUCCESS / FAILURE) を持つ
ラップされたエンベロープを返します ——下記の「結果のポーリング」を
参照。
共通メタデータフィールド
これら 3 つはすべてのエンドポイントバリアントに適用されます:
| フィールド | 型 | 注記 |
|---|
mode | string | std (720P) / pro (1080P) / 4k。4k は kling/kling-v3 と kling/kling-v3-omni でのみ。テキスト/画像-to-動画は既定 std、Omni-Video は既定 pro。 |
aspect_ratio | string | 16:9 / 9:16 / 1:1。Omni-Video では必須、ただし最初のフレーム参照や video_list を提供する場合は除く (その場合は入力から推測)。 |
duration | string | 秒数。既定 "5"。kling/kling-v3-omni と kling/kling-v3 は "3" から "15" を受け付ける。v2 ファミリー (v2-master、v2-1-master、v2-5-turbo、v2-6) と kling/kling-video-o1 は "5" または "10" を受け付ける。権威的なモデル別範囲は Kling Capability Map を参照。 |
これら 2 つはテキスト-to-動画と画像-to-動画のみ (Omni-Video には適用
されない):
| フィールド | 型 | 注記 |
|---|
negative_prompt | string | 避けるもの。最大 2500 文字。 |
cfg_scale | float | 範囲 [0, 1]、既定 0.5。高いほどプロンプトへの厳密な追従。v2.x モデルではサポートされない (kling-v2-master / v2-1-master / v2-5-turbo / v2-6)。 |
結果のポーリング
送信時に返されたタスク ID を使います:
curl https://api.orcarouter.ai/v1/video/generations/task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw \
-H "Authorization: Bearer sk-orca-..."
レスポンス形式はラップされています:
{
"code": "success",
"message": "",
"data": {
"task_id": "task_9q9oz6tjtgABYWC1QIqoz3sscgVz7ycw",
"status": "SUCCESS",
"progress": "100%",
"result_url": "https://v16-kling-fdl.klingai.com/.../video.mp4?...",
"action": "omniVideo",
"submit_time": 1777975188,
"start_time": 1777975241,
"finish_time": 1777975277,
"fail_reason": ""
}
}
ステータス値 (大文字、生のタスク状態):
| ステータス | 意味 |
|---|
NOT_START | タスク行は作成済みでまだディスパッチされていない (一時的、通常 2 秒未満) |
SUBMITTED | Kling 上流に送信済み、キューで待機中 |
IN_PROGRESS | Kling がレンダリング中 |
SUCCESS | 完了。data.result_url が MP4 を運ぶ |
FAILURE | 失敗。data.fail_reason に理由 |
進捗はパーセントの文字列 ("30%"、"100%") として返り、int では
ありません。
5 - 10 秒ごとにポーリングしてください。典型的な std 5 秒クリップは
30 - 60 秒で完了; 4K、15 秒、マルチショットタスクは 2 - 5 分かかります。
data.result_url は Kling 署名済み URL (ksTime / ksSecret クエリ
パラメータに注意)。長期保持が必要な場合は速やかにダウンロードまたは
再ホストしてください ——署名には上流で定義された有効期限があります。
エンドポイントバリアント
3 つのバリアントすべてが POST /v1/video/generations を共有します。
Kling が実際に提供するエンドポイントは、提供するフィールドによって
決定されます。
テキスト-to-動画
model + prompt のみ (+ 上記のオプションメタデータ)。画像入力が
ない = テキスト-to-動画:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "kling/kling-v2-6",
"prompt": "ocean waves at sunset, cinematic",
"metadata": {"mode": "pro", "duration": "5"}
}'
画像-to-動画
最初/最後のフレーム i2v にはトップレベルの image (最初のフレーム)
および/または metadata.image_tail (最後のフレーム) を追加:
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "kling/kling-v2-master",
"prompt": "the cat starts dancing",
"image": "https://example.com/cat.png",
"metadata": {"mode": "std", "duration": "5"}
}'
マルチソース参照 (Omni-Video)
image_list と video_list はリクエストを Kling の Omni-Video
エンドポイントにルーティングします。kling/kling-video-o1 と
kling/kling-v3-omni でのみ利用可能。
image_list —— マルチ画像参照:
{ "image_list": [{ "image_url": "...", "type": "first_frame" }] }
image_url (必須): URL または生の base64 (data: プレフィックスなし)。
type (オプション): first_frame / end_frame。画像をフレーム
アンカーとして使う意図がない限り省略。end のみはサポートされません
(常に最初のフレーム画像と組み合わせる)。
video_list —— 動画参照 (最大 1 動画、MP4/MOV、≤200MB):
{ "video_list": [{ "video_url": "...", "refer_type": "base", "keep_original_sound": "yes" }] }
refer_type: base (動画編集 ——入力動画が編集される; 既定) または
feature (スタイル/構図参照 ——次/前のショットを生成)。
keep_original_sound: yes / no。
kling/kling-v3-omni では、動画参照は 3-10s 時間、std/pro モード
でのみサポート (4K は不可)。
video_list が設定されている場合、metadata.sound は "off" で
なければなりません ——そうでないと Kling は組み合わせを拒否します。
プロンプト内の画像 / 動画 / 要素を <<<>>> 構文で参照します:
<<<image_1>>>、<<<video_1>>>、<<<element_1>>>。Omni 限定。
インデックスは配列順 (1 ベース) に一致します。
curl https://api.orcarouter.ai/v1/video/generations \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model": "kling/kling-v3-omni",
"prompt": "<<<image_1>>> waves at the camera, then walks toward the ocean",
"metadata": {
"image_list": [{"image_url": "https://example.com/person.jpg"}],
"mode": "pro",
"aspect_ratio": "16:9",
"duration": "5",
"sound": "on"
}
}'
高度な機能
これらの機能はテキスト-to-動画、画像-to-動画、Omni-Video エンドポイント
で動作します ——モデルサポートは異なる。metadata で渡してください。
マルチショット
それぞれ独自のプロンプトと時間を持つ複数の連続ショットで構成された
動画を生成します。kling/kling-v3 と kling/kling-v3-omni で利用可能。
| フィールド | 型 | 目的 |
|---|
multi_shot | bool | 有効化するには true に設定。トップレベルの prompt と最初/最後のフレーム入力は無視される。 |
shot_type | string | customize (multi_prompt を文字通り使用) または intelligence (Kling が自動セグメント化)。multi_shot=true 時必須。 |
multi_prompt | array | [{index, prompt, duration}]。1 - 6 ストーリーボード。各ショットの duration ≥ 1s; 合計はタスクの合計 duration と等しい必要がある。各 prompt ≤ 512 文字。 |
ネイティブ音声
Kling が動画に合うサウンドトラックを自動生成。上流で追加課金。
metadata.sound: "on" (既定 "off") で切り替え。
モデルサポート:
kling/kling-v3 と kling/kling-v3-omni: 任意のモード (std / pro / 4K)
kling/kling-v2-6: pro モードのみ
- その他のすべてのモデル: サポートなし
ウォーターマーク
metadata.watermark_info: {enabled: true} を渡してレンダリングされた
動画に Kling のウォーターマークを刻印。既定はウォーターマークなし。
Kling 動画はタスクごとに課金されます。OrcaRouter は Kling が課金する
ものをそのまま請求します ——上流の final_unit_deduction がウォレット
の引き落としとなり、マークアップはありません。最終コストは Kling の
公表料金表と一致します。
送信時には、リクエストの可能な最高コスト (例: 4K + 音声) をカバーする
小さな事前消費の保留が予約されます; 差額はタスクが成功し次第すぐに
返金されます。
実際のタスク別支出はコンソールのウォレット履歴で確認できます。
Kling SDK を直接使う
Kling 公式 SDK 用にすでに書いたコードがある場合、OrcaRouter は
/kling/v1/videos/... で Kling のネイティブワイヤフォーマットも話します。
ボディフィールドはフラットなまま (model_name、mode 等) ——変わる
のは base URL、Authorization ヘッダ、model_name の値だけ:
curl https://api.orcarouter.ai/kling/v1/videos/omni-video \
-H "Authorization: Bearer sk-orca-..." \
-H "Content-Type: application/json" \
-d '{
"model_name": "kling/kling-v3-omni",
"prompt": "cat playing piano",
"mode": "pro",
"aspect_ratio": "16:9",
"duration": "5",
"sound": "on"
}'
model_name は OrcaRouter 側のモデル ID (/v1/video/generations で
使うのと同じ名前) を使う必要があり、Kling の素のモデル名ではありません。
OrcaRouter はチャネルのモデルマッピングを通じて解決してから Kling に
転送します。
対応する取得パスは
GET /kling/v1/videos/omni-video/{task_id} (または text2video、
image2video) です。
既存のコードに合うワイヤフォーマットを選んでください。両方とも同じ
ように課金されます。
関連項目