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

# Seedance 2.0・2.5 動画生成API：料金と使い方

> LaoZhang APIでSeedance 2.0と2.5の動画タスクを作成してMP4を保存し、トークン単価（USD）と、タスクごとに2行出る呼び出しログの見方を確認できます。

Seedance 2.0と2.5は、テキスト・画像・動画・音声から動画を生成するモデルです。Volcengine Ark互換の非同期タスクとして呼び出し、`SeeDance2` グループのトークンが必要です。

| 項目 | 内容 |
| - | - |
| モデル | `doubao-seedance-2-5-260628`（2.5）、`doubao-seedance-2-0-260128`（2.0 standard）、`doubao-seedance-2-0-fast-260128`（fast）、`doubao-seedance-2-0-mini-260615`（mini） |
| ベースURL | `https://api.laozhang.ai/seedance/api/v3` |
| タスクの作成 | `POST /contents/generations/tasks` |
| タスクの取得 | `GET /contents/generations/tasks/{id}`（成功するまでポーリング） |
| 動画のダウンロード | `content.video_url`、または `GET https://api.laozhang.ai/v1/videos/{id}/content` |
| トークングループ | `SeeDance2`（設定は下の「トークンの設定」を参照） |
| 課金 | トークン数に応じた課金。グループ倍率0.1714×で、Volcengineの人民元定価をUSDに換算します。固定レート1:7では定価の約1.2倍です。USD単価と動画1本あたりの目安は下の「課金と料金」に掲載しています |
| 呼び出しログ | タスク1件につき2行。作成時の事前引当と、完了時の精算が記録され、タスクの費用は2行の合計です |
| 結果の保存期間 | 署名付きの動画URLは通常24時間有効です。タスクが成功したらすぐ動画を保存してください |

> [!WARNING]
>
> **ベースURLには `https://api.laozhang.ai/seedance/api/v3` を使ってください。**
>
> * 公式Arkのパス `/api/v3/...` を `https://api.laozhang.ai` に直接付けないでください。
> * プレフィックスから `/api` を省かないでください。`/seedance/v3/...` は、APIのJSONではなくサイトのHTMLを返します。

## トークンの設定

| 設定 | 値 |
| - | - |
| コンソール | [トークン管理](https://api.laozhang.ai/token)でトークンを作成 |
| グループ | `SeeDance2` |
| 課金方式 | 従量優先（推奨。コンソールの表示は「按量优先」）または従量課金（「按量计费」） |
| リクエストヘッダー | `Authorization: Bearer $LAOZHANG_API_KEY` |

Seedanceのモデルは `SeeDance2` グループでのみ利用できるため、トークンもこのグループにしてください。`default` や `Wan` など他のグループのトークンでは呼び出せず、チャネルがないというエラーになります。Seedance専用のトークンを作っておくと、ログと課金の確認も楽になります。

## エンドポイント

```text theme={null}
ベースURL: https://api.laozhang.ai/seedance/api/v3

タスクの作成            POST /contents/generations/tasks
タスクの状態・結果の取得  GET  /contents/generations/tasks/{id}

MP4のダウンロード（SeedanceのベースURLとは別の互換エンドポイント）:
                        GET  https://api.laozhang.ai/v1/videos/{id}/content
```

タスクIDを付けずに `GET /contents/generations/tasks` を呼ばないでください。このリレーでは一覧エンドポイントがJSONではなくサイトのHTMLを返します。タスクを作成したら、IDを指定して1件ずつ照会します。

## 課金と料金

Seedanceはトークン数に応じた課金で、Volcengine Arkの定価に20%を上乗せしています。上乗せ分は、税金、通貨換算と国際決済、プラットフォームの運用、技術サポートなどのコストに充てています。2026年10月14日以降の換算は次のとおりです。

* USD単価 = Volcengineの人民元定価 × 0.1714（`SeeDance2` グループの倍率）
* 固定レート1:7では 0.1714 × 7 ≈ 1.2 となり、定価の約1.2倍を支払います

呼び出しログの金額には倍率がすでに含まれているため、重ねて掛けないでください。単価は、モデル、出力解像度、入力動画の有無によって決まります。1Mトークンあたりの価格は次のとおりです。

| モデルID | 出力 | 定価（入力動画なし / あり） | LaoZhang API（入力動画なし / あり） |
| - | - | -: | -: |
| `doubao-seedance-2-5-260628` | 480p、720p | ¥70 / ¥42 | \$12.00 / \$7.20 |
| `doubao-seedance-2-5-260628` | 1080p | ¥77 / ¥46 | \$13.20 / \$7.88 |
| `doubao-seedance-2-0-260128` | 480p、720p | ¥46 / ¥28 | \$7.88 / \$4.80 |
| `doubao-seedance-2-0-260128` | 1080p | ¥51 / ¥31 | \$8.74 / \$5.31 |
| `doubao-seedance-2-0-fast-260128` | 480p、720p | ¥37 / ¥22 | \$6.34 / \$3.77 |
| `doubao-seedance-2-0-mini-260615` | 480p、720p | ¥23 / ¥14 | \$3.94 / \$2.40 |

定価は[Volcengine Arkのモデル料金](https://www.volcengine.com/docs/82379/1544106?lang=zh)（中国語）によります。fastとminiは720pまでです。

入力動画なし、16:9、出力5秒の動画1本あたりの目安です。実際に出力される121フレームで計算しています（720pで約108,900トークン、1080pで約245,025トークン）。

* Seedance 2.5：720pで約\$1.31、1080pで約\$3.23
* Seedance 2.0：720pで約\$0.86、1080pで約\$2.14
* fast：720pで約\$0.69
* mini：720pで約\$0.43

実際のトークン数はタスクの `usage.completion_tokens` で、タスクの費用は呼び出しログの2行の合計です。モデルの価格は[コンソールの料金ページ](https://api.laozhang.ai/account/pricing)にもあり、グループと倍率は[モデルと料金](https://docs.laozhang.ai/ja/models.md)の一覧で確認できます。

> [!TIP]
>
> 720p前後で音声付きの短いクリップなら、[MiniMax H3](https://docs.laozhang.ai/ja/api-capabilities/minimax-h3-video-generation.md)は768Pの5秒で\$0.25、[Muse](https://docs.laozhang.ai/ja/api-capabilities/muse-video-generation.md)は10秒で\$0.30です。どちらも `default` グループのトークンで呼び出せます。全モデルの比較は[動画APIの比較](https://docs.laozhang.ai/ja/api-capabilities/video-generation-guide.md)を参照してください。

タスクの詳細では、`group_ratio: 1` と並んで `topup_convert_ratio: 0.1714` として倍率が表示されることがあります。2つのフィールドは役割が違い、`group_ratio: 1` は倍率が適用されていないという意味ではありません。

### タスクの費用を見積もる

Volcengineは、費用の見積もりに次の式を公開しています。

```text theme={null}
費用 = トークン単価 × トークン使用量
トークン使用量 ≈ (入力動画の長さ + 出力動画の長さ) × 出力の幅 × 出力の高さ × フレームレート / 1024
```

単価は出力解像度と入力動画の有無で決まり、出力の長さが使用量を左右します。

* 1080pの出力は、480pや720pよりトークンあたりの単価が高くなります。上の表を参照してください。
* 入力動画（`video_url`）があるリクエストは単価が低く、上の表の「入力動画あり」の値になります。ただし入力動画の長さも使用量に加わるため、同じ5秒の出力でも合計は高くなるのが普通です。
* Volcengineは、入力動画があるリクエストにトークン使用量の下限も設けています。見積もりが下限を下回る場合は、下限で課金されます。
* 出力が長いほどトークンを多く使います。Seedance 2.5は `duration` の既定値が `-1` で、モデルが4〜30秒の範囲で長さを決めます。費用を抑えたいときは `duration` を明示してください。

次の表は、出力5秒・16:9の動画についてVolcengineが公開している人民元の料金です（[Volcengine Arkのモデル料金](https://www.volcengine.com/docs/82379/1544106?lang=zh)、中国語）。解像度や入力の違いを比べるために使ってください。LaoZhang APIのUSD価格は、上の単価を参照してください。

| モデル | 入力 | 480p | 720p | 1080p |
| - | - | - | - | - |
| `doubao-seedance-2-5-260628` | 入力動画なし | ¥3.36 | ¥7.56 | ¥18.71 |
| `doubao-seedance-2-5-260628` | 入力動画2〜30秒 | ¥3.63–14.12 | ¥8.16–31.75 | ¥20.12–78.25 |
| `doubao-seedance-2-0-260128` | 入力動画なし | ¥2.31 | ¥4.97 | ¥12.39 |
| `doubao-seedance-2-0-260128` | 入力動画2〜15秒 | ¥2.53–5.62 | ¥5.44–12.10 | ¥13.56–30.13 |
| `doubao-seedance-2-0-fast-260128` | 入力動画なし | ¥1.86 | ¥4.00 | 非対応 |
| `doubao-seedance-2-0-fast-260128` | 入力動画2〜15秒 | ¥1.99–4.42 | ¥4.28–9.50 | 非対応 |
| `doubao-seedance-2-0-mini-260615` | 入力動画なし | ¥1.16 | ¥2.48 | 非対応 |
| `doubao-seedance-2-0-mini-260615` | 入力動画2〜15秒 | ¥1.27–2.81 | ¥2.72–6.05 | 非対応 |

各範囲は、2〜4秒の入力動画から上限の長さまでです。上限はSeedance 2.5が30秒、2.0系のモデルが15秒です。

### 1つのタスクで呼び出しログが2行になる理由

タスクを作成する時点では、最終的なトークン使用量がわかりません。LaoZhang APIはまず概算の事前引当を記録し、最終的な `usage.completion_tokens` に基づいて差額を精算します。2行は1つのタスクに属しており、2回のリクエストでも、2回分の全額課金でもありません。

| 行 | 現れるタイミング | 記録される内容 |
| - | - | - |
| 事前引当 | タスクの作成時 | 非ストリーミングと表示され、トークン、`SeeDance2` グループ、グループ倍率、送信元IPが記録されます |
| 精算 | タスクの完了時 | ストリーミングと表示され、完了トークン数と、追加の請求または返金が記録されます |

**タスクの費用 = 事前引当の金額 + 精算の金額。** たとえば事前引当が約\$0.90、精算が約\$3.58なら、合計で約\$4.48のタスクです。実際の使用量が見積もりより少なければ、精算の行で差額が返金されます。

精算の行に表示される「ストリーミング」は、精算処理に由来する表示です。クライアントがストリーミングAPIを使ったという意味でも、別のキーからのリクエストという意味でもありません。精算の行にはトークン、グループ、IPが記録されないのが普通なので、リクエストの出どころは事前引当の行で確認します。

1つのタスクを照合する手順です。

1. [呼び出しログ](https://api.laozhang.ai/log)で `doubao-seedance` または使用したモデルIDの全体を検索します。
2. 事前引当の行で、トークン、グループ、送信元IPを確認します。
3. 精算の行で、最終的な完了トークン数を確認します。
4. 非同期タスクのページで、タスクIDと作成・完了の時刻を照合し、2行を動画1本として数えます。

タスクが失敗または期限切れになったときは、呼び出しログの該当行を確認してください。想定外の課金が残っている場合は、タスクIDを添えて[サポート](mailto:hi@laozhang.ai)に連絡してください。

## タスクの流れ

**1. タスクを作成する**

`POST /contents/generations/tasks` を呼びます。`model` にはモデルIDをそのまま指定し、プロンプトと素材は `content` 配列に入れます。返ってきた `id` を保存してください。

**2. タスクをポーリングする**

`GET /contents/generations/tasks/{id}` を呼び、`status` が最終状態になるまで繰り返します。

**3. 動画をダウンロードする**

タスクが成功したら、`content.video_url` から動画をダウンロードするか、`/v1/videos/{id}/content` を呼びます。

`return_last_frame` を `true` にした場合は、`content.last_frame_url` も読み取ります。

## タスクの状態

| 状態 | 意味 | 対応 |
| - | - | - |
| `queued` | タスクが開始待ち | ポーリングを続ける |
| `running` | 動画を生成中 | ポーリングを続ける |
| `succeeded` | タスクが完了。結果は `content` に入る | 動画をダウンロードする |
| `completed` | タスクが完了（LaoZhang互換のタスクオブジェクト）。`succeeded` と同じ | 動画をダウンロードする |
| `failed` | タスクが失敗。詳細は `error` に入る | ポーリングをやめ、リクエストを修正する |
| `expired` | タスクが期限切れ | ポーリングをやめ、新しいタスクを作成する |

どのレスポンスにも、次の1つのルールを使います。

* `status` が `queued` か `running` の間は、ポーリングを続けます。
* `succeeded` と `completed` は成功として扱います。
* それ以外の値は最終状態です。失敗が確定したらポーリングをやめ、レスポンス全体をログに残します。

照会エンドポイントは、`status` と `content.video_url` を持つArk形式のタスクオブジェクトを返します。レスポンスの形が違う場合は次のとおりです。

* LaoZhang互換のタスクオブジェクトでは、URLがトップレベルの `result_url` や `data.content.video_url` に入ることがあります。
* URLが見つからないときは、`/v1/videos/{id}/content` からダウンロードします。

## モデル

| モデルID | バージョン | 向いている用途 |
| - | - | - |
| `doubao-seedance-2-0-260128` | Seedance 2.0 standard | 標準品質、先頭・末尾フレーム指定、動画編集、安定した出力 |
| `doubao-seedance-2-0-fast-260128` | Seedance 2.0 fast | 高速な生成。テキストからの動画、画像・動画・音声の参照、動画の延長、トラックの補完に対応。1080pは非対応 |
| `doubao-seedance-2-0-mini-260615` | Seedance 2.0 mini | 最も低コスト。機能はstandardとほぼ同じで、720pまで、4〜15秒 |
| `doubao-seedance-2-5-260628` | Seedance 2.5 | 4〜30秒。参照は画像30枚、動画10本、音声10本まで、音声のみの参照も可。1080pまで。MP4またはMOVで出力 |

モデルIDは2026年9月24日時点のLaoZhang APIの公開価格に基づきます。miniと2.5の機能は、Volcengineの[Seedance 2.5ガイド](https://docs.volcengine.com/docs/ark/seedance-2-5?lang=zh)（中国語）にあるモデル比較によります。Seedance 2.5では、先頭フレーム、先頭・末尾フレーム、動画編集、動画延長の各タスクに `ratio` と `duration` の制約が加わります。タスクを2.5に切り替える前に、このガイドを確認してください。

`model` にはモデルIDをそのまま指定します。コンソールのエンドポイントID（`ep-...`）や、`(2.0-audio-video)` のようなラベルは付けないでください。リレーは、ラベルなしのモデルIDでチャネルを照合します。

## 環境の準備

```bash theme={null}
export LAOZHANG_API_KEY="YOUR_API_KEY"   # 自分のLaoZhang APIキーに置き換える
```

コード例を実行する前に、次の点を確認してください。

* シェルの例は `curl` と `jq` を使います。jqは `brew install jq` または `sudo apt-get install jq` でインストールできます。
* Pythonの例には `pip install requests` が必要です。
* 作成リクエストの例はいずれも、レスポンスを `create.json` に保存します。後の「タスクの照会」で、このファイルを読み取ります。

## テキストから動画を生成する

作成リクエストはすべて `POST /seedance/api/v3/contents/generations/tasks` に送ります。ヘッダー、リクエストパラメーター、`content` の項目は、例のあとの「タスクの作成」で説明しています。

```bash theme={null}
curl -sS -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-raw '{
    "model": "doubao-seedance-2-0-fast-260128",
    "content": [
      {
        "type": "text",
        "text": "一人称視点のりんごフルーツティーの広告、4秒、テンポの速いカット割り、りんごティーを作る工程と完成品を見せる、爽やかで明るい雰囲気"
      }
    ],
    "ratio": "16:9",
    "duration": 4,
    "resolution": "720p",
    "watermark": false,
    "generate_audio": false,
    "return_last_frame": true
  }' | tee create.json
```

作成のレスポンスには、通常はタスクIDだけが入っています。

```json theme={null}
{
  "id": "cgt-example-task-id"
}
```

## 先頭・末尾フレームを指定する

```bash theme={null}
curl -sS -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-raw '{
    "model": "doubao-seedance-2-0-260128",
    "content": [
      {
        "type": "text",
        "text": "先頭フレームは画像1、最後のフレームは画像2。赤いりんごの商品のクローズアップから、完成したりんごフルーツティーのカップまでを、なめらかなトランジションでつなぐ商品CMにする。商品の見た目は一貫させ、人物は登場させない。"
      },
      {
        "type": "image_url",
        "image_url": {
          "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg"
        },
        "role": "first_frame"
      },
      {
        "type": "image_url",
        "image_url": {
          "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic2.jpg"
        },
        "role": "last_frame"
      }
    ],
    "ratio": "adaptive",
    "duration": 4,
    "resolution": "720p",
    "watermark": false,
    "generate_audio": false,
    "return_last_frame": true
  }' | tee create.json
```

## 画像・動画・音声を参照する

```bash theme={null}
curl -sS -X POST "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  --data-raw '{
    "model": "doubao-seedance-2-0-fast-260128",
    "content": [
      {
        "type": "text",
        "text": "りんごの商品ディテールは画像1、一人称視点のカメラワークは動画1を参考にし、音声1をBGMに使う。素材を手早くカットでつなぎ、最後に完成したカップをクローズアップで見せる、簡潔なりんごフルーツティーのCMを作る。"
      },
      {
        "type": "image_url",
        "image_url": {
          "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/r2v_tea_pic1.jpg"
        },
        "role": "reference_image"
      },
      {
        "type": "video_url",
        "video_url": {
          "url": "https://ark-project.tos-cn-beijing.volces.com/doc_video/r2v_tea_video1.mp4"
        },
        "role": "reference_video"
      },
      {
        "type": "audio_url",
        "audio_url": {
          "url": "https://ark-project.tos-cn-beijing.volces.com/doc_audio/r2v_tea_audio1.mp3"
        },
        "role": "reference_audio"
      }
    ],
    "ratio": "16:9",
    "duration": 4,
    "resolution": "720p",
    "watermark": false,
    "generate_audio": true
  }' | tee create.json
```

実在の人物の同一性や容姿を保ちたい場合は、通常の顔写真だけでは足りません。先に[実在の人物・バーチャルヒューマンのアセット手順](https://docs.laozhang.ai/ja/api-capabilities/seedance2-human-virtual-workflow.md)を済ませ、アセットが `Active` になったら、その `asset://...` のURIを `reference_image` として送ります。

## タスクの照会

```http theme={null}
GET https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks/{id}
```

`create.json` からタスクIDを読み取り、タスクの状態を確認します。

```bash theme={null}
TASK_ID=$(jq -r '.id' create.json)

curl -sS "https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks/$TASK_ID" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -H "Accept: application/json" | tee task.json | jq -r '.status'
```

`status` が `queued` か `running` の間は、10〜15秒おきに照会します。成功時のレスポンスは次のようになります。

```json theme={null}
{
  "id": "cgt-example-task-id",
  "model": "doubao-seedance-2-0-fast-260128",
  "status": "succeeded",
  "ratio": "16:9",
  "duration": 4,
  "resolution": "720p",
  "content": {
    "video_url": "https://example.com/generated-video.mp4",
    "last_frame_url": "https://example.com/last-frame.jpeg"
  },
  "usage": {
    "completion_tokens": 87300,
    "total_tokens": 87300
  }
}
```

結果のURLは一時的な署名付きURLで、通常は24時間有効です。本番環境では、タスクが成功したらすぐ結果をダウンロードし、自社のストレージにコピーしてください。

## 結果のダウンロード

```http theme={null}
GET https://api.laozhang.ai/v1/videos/{id}/content
```

タスクの詳細に動画URLが含まれているときは、そのURLから直接ダウンロードします。署名付きURLなので、`Authorization` ヘッダーは不要です。

```bash theme={null}
VIDEO_URL=$(jq -r '.content.video_url // .result_url // .data.content.video_url // empty' task.json)
curl -L -o seedance-output.mp4 "$VIDEO_URL"
```

解析できるURLがない場合や、ファイルだけが必要な場合は、互換エンドポイントを使います。このエンドポイントは `/seedance/api/v3` ではなく `https://api.laozhang.ai/v1` の配下にあります。タスクが成功したあと、サーバー側で保存済みの結果を探し、MP4を返すかリダイレクトします。

```bash theme={null}
curl -L "https://api.laozhang.ai/v1/videos/$TASK_ID/content" \
  -H "Authorization: Bearer $LAOZHANG_API_KEY" \
  -o seedance-output.mp4
```

## Pythonの例

テキストから動画を生成するタスクを作成し、最大20分ポーリングして、MP4を保存します。依存パッケージは `pip install requests` でインストールします。

```python theme={null}
import os
import time

import requests

API_KEY = os.environ["LAOZHANG_API_KEY"]
BASE_URL = "https://api.laozhang.ai/seedance/api/v3"
DOWNLOAD_URL = "https://api.laozhang.ai/v1/videos/{task_id}/content"
PENDING = {"queued", "running"}
SUCCESS = {"succeeded", "completed"}
POLL_INTERVAL = 15   # 状態を確認する間隔（秒）
TIMEOUT = 20 * 60    # 20分で待機を打ち切る。長い動画では値を大きくする

HEADERS = {
    "Authorization": f"Bearer {API_KEY}",
    "Accept": "application/json",
    "Accept-Encoding": "identity",
}


def task_status(task):
    status = task.get("status")
    if status is None and isinstance(task.get("data"), dict):
        status = task["data"].get("status")
    return str(status or "").lower()


def find_video_url(task):
    data = task.get("data") if isinstance(task.get("data"), dict) else {}
    for content in (task.get("content"), data.get("content")):
        if isinstance(content, dict) and content.get("video_url"):
            return content["video_url"]
    return task.get("result_url")


payload = {
    "model": "doubao-seedance-2-0-fast-260128",
    "content": [
        {
            "type": "text",
            "text": "一人称視点のりんごフルーツティーの広告、4秒、テンポの速いカット割り、爽やかで明るい雰囲気",
        }
    ],
    "ratio": "16:9",
    "duration": 4,
    "resolution": "720p",
    "watermark": False,
    "generate_audio": False,
    "return_last_frame": True,
}

create_resp = requests.post(
    f"{BASE_URL}/contents/generations/tasks",
    headers=HEADERS,
    json=payload,
    timeout=60,
)
create_resp.raise_for_status()
task_id = create_resp.json()["id"]
print("タスクID:", task_id)

deadline = time.monotonic() + TIMEOUT
while True:
    query_resp = requests.get(
        f"{BASE_URL}/contents/generations/tasks/{task_id}",
        headers=HEADERS,
        timeout=60,
    )
    query_resp.raise_for_status()
    task = query_resp.json()
    status = task_status(task)
    print("状態:", status)

    if status in SUCCESS:
        break
    if status not in PENDING:
        raise RuntimeError(f"タスク {task_id} は状態 {status!r} で終了しました: {task}")
    if time.monotonic() > deadline:
        raise TimeoutError(f"タスク {task_id} が {TIMEOUT // 60} 分以内に完了しませんでした")
    time.sleep(POLL_INTERVAL)

video_url = find_video_url(task)
if video_url:
    # 署名付きURLなので、Authorizationヘッダーを付けずにダウンロードする
    video_resp = requests.get(video_url, timeout=300)
else:
    video_resp = requests.get(
        DOWNLOAD_URL.format(task_id=task_id),
        headers={"Authorization": f"Bearer {API_KEY}", "Accept": "video/mp4,*/*"},
        timeout=300,
    )
video_resp.raise_for_status()
with open(f"{task_id}.mp4", "wb") as output:
    output.write(video_resp.content)
print(f"保存しました: {task_id}.mp4")
```

## タスクの作成

```http theme={null}
POST https://api.laozhang.ai/seedance/api/v3/contents/generations/tasks
```

### ヘッダー

| ヘッダー | 必須 | 値 |
| - | - | - |
| `Authorization` | 必須 | `Bearer $LAOZHANG_API_KEY`。`SeeDance2` グループのトークンを使う |
| `Content-Type` | 必須 | `application/json` |
| `Accept` | 推奨 | `application/json` |
| `Accept-Encoding` | 任意（デバッグ用） | `identity`。クライアントによっては正しく展開できない圧縮レスポンスを避ける |

### リクエストパラメーター

| パラメーター | 型 | 必須 | 説明 |
| - | - | - | - |
| `model` | string | 必須 | モデルIDそのまま。例：`doubao-seedance-2-0-fast-260128` |
| `content` | array | 必須 | マルチモーダルの内容の配列。テキストのプロンプトもここに入れる |
| `ratio` | string | 任意 | `16:9`、`4:3`、`1:1`、`3:4`、`9:16`、`21:9`、`adaptive` |
| `duration` | integer | 任意 | 2.0系は4〜15秒、Seedance 2.5は4〜30秒。`-1` ならモデルが長さを決める（2.5の既定値） |
| `frames` | integer | 任意 | 出力の長さ（フレーム数）。Seedance 1.0専用。Seedance 2.0と2.5では `duration` を使う |
| `resolution` | string | 任意 | `480p`、`720p`、`1080p`。fastとminiは `720p` まで。4モデルとも `4k` は非対応で、送ると400が即座に返り、課金されない |
| `watermark` | boolean | 任意 | ウォーターマークを付けるかどうか |
| `generate_audio` | boolean | 任意 | 動画に音声を含めるかどうか。既定値は `true` |
| `return_last_frame` | boolean | 任意 | 最後のフレームのURLを返すかどうか |

### `content` の項目

| フィールド | 型 | 必須 | 説明 |
| - | - | - | - |
| `type` | string | 必須 | `text`、`image_url`、`video_url`、`audio_url` |
| `text` | string | `type` が `text` のとき | プロンプトのテキスト |
| `image_url.url` | string | `type` が `image_url` のとき | 画像のURL |
| `video_url.url` | string | `type` が `video_url` のとき | 動画のURL |
| `audio_url.url` | string | `type` が `audio_url` のとき | 音声のURL |
| `role` | string | 素材には推奨 | 素材の用途 |

よく使う `role` の値です。

| `role` | 用途 |
| - | - |
| `first_frame` | 先頭フレームの画像 |
| `last_frame` | 末尾フレームの画像 |
| `reference_image` | 参照画像 |
| `reference_video` | 参照動画 |
| `reference_audio` | 参照音声 |

Seedance 2.0系のモデル（standard、fast、mini）では、音声だけを参照にはできません。`audio_url` を送るときは、同じリクエストに画像か動画を少なくとも1つ含めてください。Seedance 2.5は、音声のみの参照に対応しています。

## よくある質問

### 1つのタスクで二重に課金されましたか？

いいえ。2行は1つのタスクの事前引当と精算で、2行の合計がタスクの費用です。照合の手順は、前述の「1つのタスクで呼び出しログが2行になる理由」を参照してください。

### 5秒の動画はいくらですか？

2026年10月14日時点の価格で、入力動画なし・16:9・出力5秒（121フレーム）のタスクの目安です。

* Seedance 2.5：720pで約\$1.31、1080pで約\$3.23
* Seedance 2.0 standard：720pで約\$0.86、1080pで約\$2.14
* fast：720pで約\$0.69、mini：720pで約\$0.43

費用は長さに比例するため、10秒ならおよそ2倍です。実際のトークン数はタスク結果の `usage.completion_tokens` です。計算式は「タスクの費用を見積もる」を参照してください。

### Seedance 2.5は2.0よりどれくらい高いですか？

入力動画なしの場合、同じ解像度でトークンあたり約1.5倍です。720pでは1Mトークンあたり\$12.00と\$7.88、1080pでは\$13.20と\$8.74です。5秒・720pの動画は、2.5で約\$1.31、2.0で約\$0.86になります。

2.5で追加された機能（15秒を超えるクリップ、より多くの参照素材、音声のみの参照、MOV出力）は、後述の「どのモデルを選べばよいですか？」にまとめています。

### 失敗したタスクにも課金されますか？

いいえ。タスクIDが付かない4xxのパラメーターエラーなど、リクエストの作成が拒否された場合は課金されません。タスクが作成されたあとで `failed` や `expired` になった場合は、タスクの精算時に事前引当が返金されます。

実際の課金額は[呼び出しログ](https://api.laozhang.ai/log)で確認できます。失敗または期限切れのタスクに課金が残っている場合は、タスクIDを添えて[サポート](mailto:hi@laozhang.ai)に連絡してください。

### `SeeDance2` グループの倍率は割引ですか？

いいえ。倍率0.1714は、Volcengineの人民元定価を、残高のUSDに定価の約1.2倍で換算するためのものです。上乗せ分は、税金、通貨換算と国際決済、プラットフォームの運用、技術サポートなどのコストに充てています。換算とトークン単価は「課金と料金」を参照してください。

### 1080pが高い理由と縦向きの料金

1080pが高いのは2つの理由によるもので、アスペクト比はほとんど影響しません。トークンあたりの単価が高いこと（「課金と料金」を参照）と、出力のピクセル数に応じてトークン使用量が増えることです。5秒の動画は、720pで約108,900トークン、1080pで約245,025トークンを使うため、1080pの動画はかなり高くなります。

同じ解像度なら、どのアスペクト比でもピクセル数はほぼ同じです。720pでは16:9が1280×720、9:16が720×1280なので、横向き、縦向き、正方形の動画の費用はほぼ変わりません。計算式は「タスクの費用を見積もる」にあります。

### どのパスと `model` の値を送ればよいですか？

リクエストは `/seedance/api/v3/contents/generations/tasks` に送ります。プレフィックスから `/api` を省いた `/seedance/v3/...` と、タスクIDなしの一覧エンドポイントは、JSONではなくサイトのHTMLを返します。

`model` には `doubao-seedance-2-0-260128` のようなモデルIDをそのまま指定します。`ep-...` のエンドポイントIDや、IDのあとに付けるラベルは使わないでください。

### どのモデルを選べばよいですか？

必要な機能で選びます。

* **1080p：** 2.0 standardか2.5。fastとminiは720pまでです。
* **15秒を超える長さ、9枚を超える参照画像、音声のみの参照、MOV出力：** 2.5。2.0系のモデルは、画像9枚、動画3本、音声3本までです。
* **最も低コスト：** 価格が最も低いのはmini、fastはminiとstandardの中間です。2.0系の中で品質が最も高いのはstandardです。

4つのモデルは、どれも同じエンドポイントと `SeeDance2` グループを使います。価格は「課金と料金」、機能は「モデル」で比較できます。

### 動画の音声はオフにできますか？

Seedance 2.0と2.5は `generate_audio` の既定値が `true` で、プロンプトと映像に合わせた声、効果音、BGMをモノラルで追加します。

音声なしの動画にするには、`"generate_audio": false` を送ります。セリフを入れたいときは、会話文を二重引用符で囲むと効果的です。

### 動画URLの場所と有効期間は？

Ark形式のタスク詳細では `content.video_url` で、有効期間は24時間です。LaoZhang互換のタスクオブジェクトでは、トップレベルの `result_url` や `data.content.video_url` として返ることもあります。ファイルだけが必要なときは `/v1/videos/{id}/content` を呼びます。

Volcengineは動画URLを24時間有効に保ち、Seedance 2.5の動画URLは最大100回までダウンロードできます。タスクが成功したらすぐ動画をダウンロードして自社で保存し、ユーザーには自社のURLを渡してください。

### 音声だけを参照にできますか？

Seedance 2.5のみ可能です。Seedance 2.0系のモデル（standard、fast、mini）では、音声と一緒に画像か動画を少なくとも1つ送ってください。

## 関連ドキュメント

* [Seedanceの実在人物・バーチャルアセットAPI](https://docs.laozhang.ai/ja/api-capabilities/seedance2-human-virtual-workflow.md)
* [Wan 2.7動画生成API](https://docs.laozhang.ai/ja/api-capabilities/wan-video-generation.md)
* [Sora 2 APIの提供終了：WanまたはSeedanceへの移行](https://docs.laozhang.ai/ja/api-capabilities/sora2/official-forward.md)
* [モデルと料金](https://docs.laozhang.ai/ja/models.md)
* [呼び出しログの確認方法](https://docs.laozhang.ai/en/faq/call-logs.md)
* [Volcengine Arkのモデル料金](https://www.volcengine.com/docs/82379/1544106?lang=zh)（中国語）


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.