> ## 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, 動画の remix と extend 操作は対象外です. モデルの入力要件とチャネルの利用条件は変わりません. 素材の事前審査を省略しても, プロバイダー自身のコンテンツ審査は省略されません. 中国本土からは `https://toapis.com` を `https://toapis.cn` に置き換えられます.
</Note>

## リクエスト

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

以下は Seedance 2 の例です. 他のモデルでは, そのモデルのドキュメントに従ってメディアフィールドと生成パラメータを指定し, `private_asset_review: true` を追加してください.

```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`                              |

モデルが対応している `video_list` は引き続き使用でき, 唯一のメディア入力としても指定できます. Kling Omni と Gemini Omni 1.1 の参照動画リクエストなどが該当します. このフィールドは上記のプライベート素材審査の対象外で, モデル本来の規則に従います. スイッチで未対応のフィールドや形式が使えるようになるわけではありません.

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

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

## 結果の確認

1. 受理されたリクエストは動画タスクを返します. HTTP 接続で審査完了まで待つ方式ではありません. タスクの受理は審査通過や動画生成開始を意味しません.
2. 素材ライブラリに対応するチャネルでは, 再利用できる記録を確認します. 記録がなければ素材を保存し, チャネルごとの各素材に専用グループを自動作成して審査を申請します. 同じユーザー, 素材の取得元, チャネルへの並行リクエストは準備処理を共有し, グループ作成や審査を重複して行いません.
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 を使ってください.
* 審査が必要な場合はチャネルごとに独立したコピーを保存します. 現在の既定の削除基準は 60 日間未使用であることですが, 実際の保存期間は設定によります. 自動作成したグループも素材コピーとともに削除し, 旧 API の素材や共有グループはこの処理の対象にしません. 動画の送信が受け付けられた時点で使用とみなし, 完成を待ちません. 削除後は再準備するため, 元の URL を引き続きアクセス可能にしてください.
* 同じ業務リクエストの通信再試行には同じ `client_business_id` を使用します. 既存のタスクが返され, 新しい動画タスクは作られません. 別の動画や失敗後の新しい試行には新しい業務 ID を使用します. 審査待ちを理由にタスクを繰り返し作成しないでください.
* 動画が送信されたか未確認の場合は, 元のタスクを照会するかサポートへ連絡し, すぐに新しい業務 ID で再送しないでください.

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

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

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

入力エラーでは boolean の型, asset:// 参照, URL や Base64 の形式を確認してください. ダウンロード失敗ではアクセス権と有効期限を確認します. 機能が無効, 利用可能な生成チャネルがない, 審査設定に問題がある場合はプラットフォームへお問い合わせください. 審査を設定したチャネルで設定エラーが起きても, 審査を自動で省略することはありません.
