> ## Documentation Index
> Fetch the complete documentation index at: https://docs.tokenlab.sh/llms.txt
> Use this file to discover all available pages before exploring further.

# ビデオ生成

> 明示的な公開操作、非同期ポーリング、およびモデル固有のメディア入力を使用してビデオを生成します。

ビデオ生成は非同期です。 `POST /v1/videos/generations` は公開タスクIDを返し、通常は `poll_url` を返します。最終的なビデオは後のステータス応答に表示されます。

選択した Seedance モデルが TokenLab 素材ライブラリを使用できる場合、画像 URL と対応するインライン data URL は生成前に再利用可能な TokenLab 素材として準備されます。準備に 60 秒を超える場合は、返された `auto_material_asset_ids` が `ACTIVE` になってから再試行してください。選択したモデルが素材ライブラリを使用できない場合、通常の画像入力は通常の画像パスで処理されます。

## 対応する操作

本番環境では明示的な `operation` を使用してください。TokenLabは入力からいくつかの操作を推測できますが、明示的な操作値は検証、サポート、および再試行を明確にします。

| 操作                   | 必要または典型的な入力                                                           | 使用例                         |
| -------------------- | --------------------------------------------------------------------- | --------------------------- |
| `text-to-video`      | `prompt`                                                              | テキストのみから生成                  |
| `image-to-video`     | `image_url` または互換性のある `image`                                         | 開始画像をアニメーション化               |
| `reference-to-video` | `reference_images` およびサポートされているモデルのオプションの `video_urls` / `audio_urls` | アイデンティティ、スタイル、またはアセットの参照を保持 |
| `start-end-to-video` | `start_image`, `end_image`                                            | 最初と最後のフレームを制御               |
| `video-to-video`     | `video_url` またはモデル固有の `task_id`                                       | 既存のクリップを変換またはアップスケール        |
| `motion-control`     | `image_url` と `video_url`                                             | 対象にモーション参照を適用               |
| `audio-to-video`     | `audio_url`                                                           | 音声条件付きのビデオフロー               |
| `video-extension`    | `task_id`, `extend_at` またはモデル固有の拡張フィールド                               | 生成されたビデオを続行                 |

## モデル発見

```bash theme={null}
curl "https://api.tokenlab.sh/v1/models?recommended_for=video" \\
  -H "Authorization: Bearer sk-your-api-key"
```

`model` には TokenLab に表示されるモデル ID を使い、機能差分は `operation` と対応するメディア入力で選択してください。例: `wan-2.7`、`happyhorse-1.0`、`viduq3`、`viduq3-mix`、`pixverse-v6`、`kling-3.0-video`、`veo3.1`、`seedance-2.0`。操作固有の接尾辞を TokenLab のモデル名として使わないでください。

`reference_images`, `kling_elements`, `output_audio`, `duration`, `resolution`, または `aspect_ratio` のような専門的なフィールドに依存する前に、選択したモデルの詳細を確認してください。

## リクエストの作成

```bash theme={null}
curl https://api.tokenlab.sh/v1/videos/generations \\
  -H "Authorization: Bearer sk-your-api-key" \\
  -H "Content-Type: application/json" \\
  -d '{
    "model": "veo3.1",
    "operation": "text-to-video",
    "prompt": "日差しの中を歩く猫の穏やかなシネマティックショット",
    "duration": 4,
    "aspect_ratio": "16:9"
  }'
```

本番メディア入力には、インラインの `data:` URL よりも公開 `https` URL を優先してください。一時 URL を使用する場合は、TokenLab がタスク作成を完了するまで有効に保ってください。

## 入力とモデル固有のフィールド

* Veo 3ファミリーのリクエストは、`output_audio` が省略された場合、デフォルトでオーディオオンになります。モデルがトグルをサポートしている場合は、サウンドに依存するUXのために明示的に設定してください。
* `kling_elements` は `kling-3.0-video` 画像条件付きリクエスト用です。各要素を `prompt` で `@name` として参照してください。 `output_audio=true` と組み合わせないでください。
* Seedance 2.0 ファミリーで 4K 出力、Fast/Mini の解像度上限、またはマルチモーダル参照入力を使う前に、[Seedance 2.0 ビデオモデルガイド](/ja/guides/seedance-2-video)を確認してください。
* `grok-imagine-video` の場合、video-to-video は公開の `.mp4` `video_url` を使用します。モデル固有の制限（`duration` や `resolution` など）はモデル詳細から取得する必要があります。

## PixVerse および HappyHorse

| モデル                          | 操作                                                                            | 入力                                                                          | 解像度                     | 長さ                                                | 音声セレクター                        |
| ---------------------------- | ----------------------------------------------------------------------------- | --------------------------------------------------------------------------- | ----------------------- | ------------------------------------------------- | ------------------------------ |
| `pixverse-c1`, `pixverse-v6` | `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video` | `prompt`; `image_url`; `start_image` + `end_image`; `reference_images`      | 360p, 540p, 720p, 1080p | 1 ～ 15 秒の任意の整数                                    | `output_audio`, デフォルトは `false` |
| `pixverse-v5.6`              | `text-to-video`, `image-to-video`, `start-end-to-video`, `reference-to-video` | C1 および V6 と同じフィールド                                                          | 360p, 540p, 720p, 1080p | 5、8、または 10 秒。1080p は 5 または 8 秒をサポートします。           | `output_audio`, デフォルトは `false` |
| `happyhorse-1.0`             | `text-to-video`, `image-to-video`, `reference-to-video`, `video-to-video`     | `prompt`; `image_url`; `reference_images`; `video_url` + `reference_images` | 720p, 1080p             | 生成操作では 3 ～ 15 秒。video-to-video 出力は最大 15 秒に制限されます。 | `output_audio` を送信しないでください。    |

TokenLab では、上記の PixVerse モデルは `operation=video-extension` を受け付けません。

```bash theme={null}
curl https://api.tokenlab.sh/v1/videos/generations \
  -H "Authorization: Bearer sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "pixverse-v6",
    "operation": "image-to-video",
    "prompt": "A slow camera move through a neon-lit street",
    "image_url": "https://example.com/start.jpg",
    "resolution": "1080p",
    "duration": 5,
    "output_audio": true
  }'
```

## ポーリング結果

最初に返された `poll_url` を使用してください。固定エンドポイントが必要な場合は、作成応答から同じ `id` / `task_id` を使用して `GET /v1/tasks/{id}` を使用してください。

完了したビデオタスクは、モデルと出力数に応じて `video_url`, `video`, または `videos` を返す場合があります。 `billing_transaction_id` はタスク識別子ではなく、請求識別子として扱ってください。

## 一般的な落とし穴

* 古いビデオステータスパスをハードコーディングしないでください。 `poll_url` を優先してください。
* モデル詳細が許可していない限り、最初のフレームフィールドを専用の参照画像フローと組み合わせないでください。
* `duration` が入力参照ビデオの長さを示すとは限りません。通常は生成された出力の長さを制御します。
* タイムアウト後にタスクがすでに作成されたかどうかを確認せずに作成リクエストを再試行しないでください。

## APIリファレンス

| トピック        | リファレンス                                                  |
| ----------- | ------------------------------------------------------- |
| ビデオの作成      | [ビデオの作成](/ja/api-reference/video/create-video)          |
| ビデオステータスの取得 | [ビデオステータスの取得](/ja/api-reference/video/get-video-status) |
| タスクステータスの取得 | [タスクステータスの取得](/ja/api-reference/tasks/get-task-status)  |
| タスクのキャンセル   | [タスクのキャンセル](/ja/api-reference/tasks/cancel-task)        |
| 請求と価格設定     | [請求と価格設定](/ja/guides/billing)                           |

## OpenAI 形式と Volc 互換の動画 API

複数モデルにまたがる TokenLab の統一動画 API には `/v1/videos/generations` を使います。Volc 形式の `content[]` や Action リクエストを使う既存の Seedance 2.0 連携を移行する場合は、`/api/v3` 配下の Seedance 互換エンドポイントを使えます。どちらも TokenLab Bearer API Key と非同期ポーリングを使いますが、リクエストと応答の形は異なります。
