メインコンテンツへスキップ
本文では、SeeDance Videos Generation API 接続説明を紹介します。これは、カスタムパラメータを入力することでSeeDance公式の動画を生成できるものです。

申請プロセス

APIを使用するには、まず SeeDance Videos Generation API の該当ページでサービスを申請する必要があります。ページに入ったら、「Acquire」ボタンをクリックします。以下の図のように: まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。ログインまたは登録後、現在のページに自動的に戻ります。 初回申請時には無料のクレジットが付与され、このAPIを無料で使用できます。

基本使用

まず、基本的な使用方法を理解します。これは、プロンプト content.text、タイプ content.type=text、およびモデル model を入力することで、処理された結果を得ることができます。具体的な内容は以下の通りです:

ここでは、リクエストヘッダーを設定しています。これには以下が含まれます:
  • accept:受け取りたいレスポンス結果の形式。ここでは application/json、つまりJSON形式を記入します。
  • authorization:APIを呼び出すためのキー。申請後、直接ドロップダウンから選択できます。
また、リクエストボディを設定しています。これには以下が含まれます:
  • model:生成する動画のモデル。選択可能な値:doubao-seedance-1-0-pro-250528doubao-seedance-1-0-pro-fast-251015doubao-seedance-1-5-pro-251215doubao-seedance-1-0-lite-t2v-250428doubao-seedance-1-0-lite-i2v-250428
  • content:入力内容の配列。typetext または image_url です。
  • resolution:出力解像度。選択肢は 480p / 720p / 1080p
  • ratio:アスペクト比。選択肢は 16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive
  • duration:動画の長さ(秒)。範囲は 2–12。
  • seed:ランダムシード。整数、-1 から 4294967295。
  • camerafixed:カメラを固定するかどうか。true / false
  • watermark:ウォーターマークを追加するかどうか。true / false
  • generate_audio:音声付き動画を生成するかどうか。true / falseのみ doubao-seedance-1-5-pro-251215 がサポート
  • service_tier:推論モード。default(オンライン)または flex(オフライン、価格はオンラインの50%)。
  • return_last_frame:結果に動画の最後のフレーム画像のURLを返すかどうか。
  • execution_expires_after:タスクのタイムアウト時間(秒)。範囲は 3600–259200。
  • callback_url:非同期コールバックアドレス。設定後、APIはすぐに task_id を返し、タスクが完了した際に結果をそのアドレスにPOSTします。
選択後、右側にも対応するコードが生成されていることがわかります。以下の図のように:

「Try」ボタンをクリックするとテストができます。上の図のように、以下の結果が得られました:
{
  "success": true,
  "task_id": "ec22ae22-0140-4033-8c86-a48b536da595",
  "trace_id": "1cc87db0-8ee5-4436-969b-35cc571a9fd5",
  "data": {
    "task_id": "cgt-20251222005129-62fhb",
    "status": "succeeded",
    "video_url": "https://platform.cdn.acedata.cloud/seedance/f592800a-b87c-4705-8796-cbb8018cae35.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
返された結果には複数のフィールドがあり、以下のように説明されます:
  • success:この時点での動画生成タスクの状態。
  • task_id:この時点での動画生成タスクID。
  • trace_id:この時点での動画生成トレースID。
  • data:この時点での動画生成タスクの結果リスト。
    • task_id:この時点での動画生成タスクのサーバー側ID。
    • video_url:この時点での動画生成タスクの動画リンク。
    • status:この時点での動画生成タスクの状態。
      • model:生成動画に使用されたモデル。
満足のいく動画情報が得られたことがわかります。結果の data の動画リンクアドレスに基づいて生成されたSeeDance動画を取得するだけです。 また、対応する接続コードを生成したい場合は、生成されたものを直接コピーできます。例えば、CURLのコードは以下の通りです:
curl -X POST 'https://api.acedata.cloud/seedance/videos' \
-H 'authorization: Bearer ${bearer_token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "content": [{"text":"A kitten yawning at the camera. --rs 720p --rt 16:9 --dur 5 --fps 24 --wm true --seed 11 --cf false","type":"text"}],
  "model": "doubao-seedance-1-0-pro-250528"
}'

インラインパラメータ説明

content[].text プロンプトの末尾に、--parameter value の形式で生成パラメータを追加できます(旧方式、弱い検証、誤って記入した場合は自動的にデフォルト値が使用されます)。完全なパラメータリストは以下の通りです:
インラインパラメータ対応フィールド説明取値範囲
--rsresolution出力解像度480p / 720p / 1080p
--rtratioアスペクト比16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive
--durduration動画の長さ(秒)2–12
--framesframes動画フレーム数[29, 289] の中で 25+4n の整数
--fpsframespersecondフレームレート仅支持 24
--seedseedランダムシード-1 から 4294967295
--cfcamerafixedカメラを固定するかどうかtrue / false
--wmwatermarkウォーターマークを追加するかどうかtrue / false
推奨される方法:リクエストボディ内で対応するトップレベルフィールド(例:resolutionratio など)を直接使用すること。強い検証モードで、パラメータの記入に誤りがある場合は明確なエラーメッセージが返され、問題の特定が容易になります。

音声付き動画の生成

doubao-seedance-1-5-pro-251215generate_audio パラメータを使用して音声付き動画を生成することができます:
{
  "model": "doubao-seedance-1-5-pro-251215",
  "content": [
    {
      "type": "text",
      "text": "A girl holds a fox, the wind blows her hair, you can hear the sound of the wind"
    }
  ],
  "generate_audio": true,
  "ratio": "16:9",
  "duration": 5
}
他のモデルはこのパラメータをサポートしておらず、渡された場合は無視されます。

画像から動画の最初のフレーム

画像から動画のタスクを行いたい場合、まず content パラメータには typeimage_url の項目を含める必要があります。image_url フィールドはオブジェクト形式でなければなりません:{"url": "https://..."} または Base64 形式 {"url": "data:image/png;base64,..."}
注意image_url は文字列形式(例: "image_url": "https://...")で直接渡すことはできず、オブジェクト形式 "image_url": {"url": "https://..."} を使用する必要があります。そうしないと 400 エラーが返されます。
対応するコード:
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "content": [
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/i2v_foxrgirl.png"
            }
        },
        {
            "type": "text",
            "text": "A girl holds a fox in her arms. She opens her eyes and gazes tenderly at the camera, while the fox affectionately holds her back. As the camera slowly pulls away, her hair is gently blown by the wind. --ratio adaptive  --dur 5"
        }
    ],
    "model": "doubao-seedance-1-0-pro-250528"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
クリックして実行すると、すぐに結果が得られます。以下のようになります:
{
    "success": true,
    "task_id": "dc7cceb5-3c12-4de7-a5f4-abcbba3e8e39",
    "trace_id": "b3b09de3-b7fa-4bb0-88b5-aad4b4a96fd4",
    "data": {
        "task_id": "cgt-20251222072003-x2259",
        "status": "succeeded",
        "video_url": "https://platform.cdn.acedata.cloud/seedance/6afb78b8-5ba8-424f-adcd-69423a700b50.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
生成された効果は画像から動画のもので、結果は上記と似ています。

画像から動画の最初と最後のフレーム

画像から動画の最初と最後のフレームを生成したい場合、まずパラメータ content には image_url タイプを渡し、それぞれ rolefirst_framelast_frame に設定することで、以下の内容を指定できます:
  • role:最初のフレームまたは最後のフレームを指定します。
  • image_url
    • url 画像リンク 同時に content には text タイプを入力してプロンプトのヒントを提供する必要があります。
対応するコード:
import requests

url = "https://api.acedata.cloud/seedance/videos"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
   "model": "doubao-seedance-1-0-pro-250528",
    "content": [
         {
            "type": "text",
            "text": "360-degree shot"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_first_frame.jpeg"
            },
            "role": "first_frame"
        },
        {
            "type": "image_url",
            "image_url": {
                "url": "https://ark-project.tos-cn-beijing.volces.com/doc_image/seepro_last_frame.jpeg"
            },
            "role": "last_frame"
        }
    ]
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
クリックして実行すると、すぐに結果が得られます。以下のようになります:
{
    "success": true,
    "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
    "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
    "data": {
        "task_id": "cgt-20251222073134-54qcw",
        "status": "succeeded",
        "video_url": "https://platform.cdn.acedata.cloud/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
        "model": "doubao-seedance-1-0-pro-250528"
    }
}
生成された効果はキャラクター生成動画で、結果は上記と似ています。

非同期コールバック

SeeDance Videos Generation API の生成時間が長いため(約 1-2 分)、callback_url フィールドを使用して非同期モードを利用することで、HTTP 接続が長時間占有されるのを避けることができます。 全体の流れ:クライアントがリクエストを発行する際に callback_url を指定し、API はすぐに task_id を含むレスポンスを返します。タスクが完了すると、プラットフォームは生成結果を POST JSON 形式で callback_url に送信し、結果にも同様に task_id が含まれているため、関連付けが可能です。
{
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd"
}
タスクが完了した際に、プラットフォームが callback_url にプッシュする内容は以下の通りです:
{
  "success": true,
  "task_id": "f7096c6c-9430-4392-8201-d259632d7afd",
  "trace_id": "4a4a3721-00fb-43d2-aff2-3b516ac01a8a",
  "data": {
    "task_id": "cgt-20251222073134-54qcw",
    "status": "succeeded",
    "video_url": "https://platform.cdn.acedata.cloud/seedance/95f9f5f0-fc50-4c71-bc6f-e154582c141e.mp4",
    "model": "doubao-seedance-1-0-pro-250528"
  }
}
結果の task_id フィールドはリクエスト時に返されたものと一致し、このフィールドを通じてタスクの関連付けが可能です。

エラーハンドリング

API を呼び出す際にエラーが発生した場合、API は対応するエラーコードと情報を返します。例えば:
  • 400 token_mismatched:不正なリクエスト、パラメータが欠落または無効である可能性があります。
  • 400 api_not_implemented:不正なリクエスト、パラメータが欠落または無効である可能性があります。
  • 401 invalid_token:未認証、無効または欠落した認証トークン。
  • 429 too_many_requests:リクエストが多すぎます、レート制限を超えています。
  • 500 api_error:内部サーバーエラー、サーバーで何かがうまくいきませんでした。

エラー応答の例

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

結論

この文書を通じて、SeeDance Videos Generation API を使用して、入力プロンプトと参照画像を通じて動画を生成する方法を理解しました。この文書が、API の接続と使用に役立つことを願っています。何か問題があれば、いつでも技術サポートチームにお問い合わせください。