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

# 動画タスク内で素材を審査する

> private_asset_review を使い, 同じ動画タスクで素材の審査と動画生成を行います

動画生成リクエストに `private_asset_review: true` を設定すると, 実際に使う素材を自動で準備し, すべての審査通過後に動画生成を送信します. 素材リストの重複指定, 素材グループの事前作成, 個別の審査ポーリングは不要です.

<Note>
  この方式は, オンデマンド素材審査が有効な Seedance の非同期動画チャネルでのみ利用できます. すべての動画モデルや同期 API に対応するものではありません. 機能が無効な場合や対応チャネルがない場合, リクエストは失敗します. 中国本土からは `https://toapis.com` を `https://toapis.cn` に置き換えられます.
</Note>

## リクエスト

`POST /v1/videos/generations` を使います. 画像, 動画, 音声は従来の入力フィールドに指定し, boolean のスイッチを追加します.

```bash theme={null}
curl --request POST \
  --url https://toapis.com/v1/videos/generations \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "seedance-2",
    "client_business_id": "avatar-demo-001",
    "prompt": "Animate the character in image 1 using the movement in video 1.",
    "duration": 5,
    "aspect_ratio": "16:9",
    "image_with_roles": [
      {"url": "https://files.example.com/avatar.jpg", "role": "reference_image"}
    ],
    "video_with_roles": [
      {"url": "https://files.example.com/motion.mp4", "role": "reference_video"}
    ],
    "private_asset_review": true
  }'
```

サンプルのアドレスは自分の公開 URL に置き換えてください. 実際に使用する全素材が審査対象となり, 一部だけの選択はできません. モデルの件数制限とロールの検証は変わりません.

| フィールド                  | 型       | 説明                                                                 |
| ---------------------- | ------- | ------------------------------------------------------------------ |
| `private_asset_review` | boolean | 省略可能, 既定値は `false`. `true` でオンデマンド審査を有効化. 省略または `false` では従来の処理を維持 |

次の入力フィールドを使用してください. モデルごとの件数制限とロールの組み合わせは変わりません:

画像は `image_with_roles[].url` > `reference_images` > `image_urls` > `images` > `image` の順で最初の空でないフィールドを使用し, 結合しません. 複数の画像フィールドの併用を禁止するモデルは引き続きエラーになります. プロンプトや metadata は走査せず, 無視される入力フィールドはそのままです.

| 素材種別    | 動画入力フィールド                | ロール                                            |
| ------- | ------------------------ | ---------------------------------------------- |
| `image` | `image_with_roles[].url` | `first_frame`, `last_frame`, `reference_image` |
| `video` | `video_with_roles[].url` | `reference_video`                              |
| `audio` | `audio_with_roles[].url` | `reference_audio`                              |

HTTP(S) URL は前後の空白を除いて照合し, UTF-8 で最大 2048 バイトです. 認証情報の埋め込みはできません. 同じ URL と種別は再利用し, 種別が異なる場合はエラーになります. 画像は純粋な Base64 と `data:image/...;base64,...` にも対応し, デコードして検証と保存を行ってから審査します. 動画と音声には HTTP(S) が必要です. ローカルパスは使えません. 先に[画像をアップロード](../../uploads/images)して URL を取得することもできます.

空のファイルは使用できません. オンデマンド保存の上限は画像が 20 MiB, 動画と音声が 100 MiB です. モデルや審査サービスには, 形式, 長さ, サイズについてさらに厳しい制限がある場合があります. 上記のアップロード先は画像用です. 動画と音声には[動画アップロード](../../uploads/videos)と[音声アップロード](../../uploads/audios)を使用してください.

## 結果の確認

1. 受理されたリクエストは動画タスクを返します. HTTP 接続で審査完了まで待つ方式ではありません. タスクの受理は審査通過や動画生成開始を意味しません.
2. プラットフォームが素材のコピーを保存し, 選択したチャネルに利用可能な審査記録があるか確認します. 必要な場合だけ審査を開始します. 同じユーザー, URL, チャネルへの並行リクエストは準備処理を共有します.
3. 実際に使用する全素材の審査通過後に動画生成を送信します. 初回の準備には数分かかることがあります. 利用可能な記録があれば再審査を省略しますが, 動画生成は非同期です.

返されたタスク ID または `client_business_id` で同じ動画タスクを確認します:

```bash theme={null}
curl --request GET \
  --url https://toapis.com/v1/videos/generations/avatar-demo-001 \
  --header 'Authorization: Bearer YOUR_API_KEY'
```

既存の[動画タスク照会](../../tasks/video-status)と[タスク Webhook](../../webhooks/task-webhooks)を使用します. 審査中は `queued` のままになることがあります. 旧素材 API のポーリングは不要です. `completed` が動画完成を示し, `failed` の場合は `error.message` を確認します.

素材準備の期限は既定で 1 ラウンド 20 分です. そのラウンドの準備開始から計測し, 全素材で共有します. 素材ごとに 20 分あるわけではなく, その後の動画生成時間も含みません. 期限はプラットフォームの設定によって変わり, チャネル切り替え時には新しい準備ラウンドが始まります. 審査拒否または準備タイムアウトの場合, 動画を送信せずにタスクが終了します.

初回審査を通過しなかった場合, 動画生成料金は発生しません. 通過後は通常の動画処理と同じく料金の仮確保と精算を行います. 審査記録の再利用で動画の料金体系は変わりません.

## 再利用, 再試行, 保存期間

* 次回も素材と `private_asset_review: true` を送信します. 素材 ID の保存は不要です. 同じユーザーとチャネル内で, URL は完全なアドレス, Base64 画像はデコード内容の摘要で照合します. 内容が同じ純粋な Base64 と data URI は同じ記録を再利用します. ユーザーやチャネルをまたいだ共有は行いません.
* URL が変わると新しい素材として扱います. 同じ URL の内容変更をファイル内容から検出する仕組みではないため, 更新時は新しいバージョンの URL を使ってください.
* 独立したコピーを保存します. 既定では 30 日を超えて未使用のコピーが削除対象になりますが, 実際の保存期間は設定によります. 動画の送信が受け付けられた時点で使用とみなし, 完成を待ちません. 削除後のリクエストでは再準備するため, 元の URL を引き続きアクセス可能にしてください.
* 同じ業務リクエストの通信再試行には同じ `client_business_id` を使用します. 既存のタスクが返され, 新しい動画タスクは作られません. 別の動画や失敗後の新しい試行には新しい業務 ID を使用します. 審査待ちを理由にタスクを繰り返し作成しないでください.
* 動画が送信されたか未確認の場合は, 元のタスクを照会するかサポートへ連絡し, すぐに新しい業務 ID で再送しないでください.

## 既存の素材 API との併用

スイッチを省略または `false` にすると, 従来の[プライベートアバター素材 API](./private-avatar)と `asset://` 参照は従来どおり利用できます. `true` の場合, メディアフィールド内の `asset://` は HTTP 400 になります. 過去の記録の検索, コピー, 移行は行いません.

このスイッチはモデルの機能や素材要件を変更せず, 別途必要な[実在人物の認証](./real-avatar)も代替しません. 以前の `private_assets` フィールドは受け付けません. boolean の `private_asset_review` を使用してください.

入力エラーでは boolean の型, asset:// 参照, URL や Base64 の形式を確認してください. ダウンロード失敗ではアクセス権と有効期限を確認します. 機能が無効な場合や対応チャネルがない場合はプラットフォームへお問い合わせください.
