Open API

Seedance 動画生成 API

LMU AI 経由で Seedance(Volcengine Ark)の動画生成をネイティブ非同期プロトコルで呼び出します。タスクの作成、照会、一覧取得、キャンセルと、ポーリングの完全な例を紹介します。

Seedance(Volcengine Ark)の動画生成は、ベンダーのネイティブ非同期プロトコルを使用します。公式 SDK や curl コマンドのアドレスを LMU AI のアドレスに、キーを LMU AI の API キーに置き換えるだけで、リクエストボディは変更不要です。認証、課金とウォーターマーク、同時実行数の制限、エラーコードに関する共通ルールは、動画生成 API の概要を参照してください。

ベース URL

https://api.lmuai.com
操作エンドポイント
タスクの作成POST /api/v3/contents/generations/tasks
タスクの照会GET /api/v3/contents/generations/tasks/{id}
タスクの一覧取得GET /api/v3/contents/generations/tasks
キャンセル / 削除DELETE /api/v3/contents/generations/tasks/{id}

グループで動画生成を有効にする必要があります

API キーのグループで「動画生成」が有効になっている必要があります。有効でない場合、呼び出しは 403 を返します。モデル名はグループで有効化されている名前と完全に一致する必要があります(大文字と小文字を区別)。利用可能なモデルは GET /v1/models で確認できます。

1. タスクの作成

POST /api/v3/contents/generations/tasks

パラメータ型必須説明
modelstringはいモデル名。グループで有効化されている名前と完全に一致する必要があります(大文字と小文字を区別)
contentarrayはい入力コンテンツ。テキスト:{"type":"text","text":"…"}、参照画像:{"type":"image_url","image_url":{"url":"…"},"role":"first_frame"}。role には first_frame(先頭フレーム)または reference_image(参照画像)を指定できます
resolutionstringいいえ解像度:480p / 720p / 1080p
durationintegerいいえ動画の長さ(秒)
ratiostringいいえアスペクト比:16:9 / 9:16 / 1:1 / 4:3
generate_audiobooleanいいえ音声も同時に生成するかどうか
curl https://api.lmuai.com/api/v3/contents/generations/tasks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "seedance-2.5",
    "content": [
      {"type": "text", "text": "Waves gently lapping the beach at dusk, slow motion"}
    ],
    "resolution": "720p",
    "duration": 5,
    "ratio": "16:9",
    "generate_audio": true
  }'
import requests

BASE = "https://api.lmuai.com"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

resp = requests.post(f"{BASE}/api/v3/contents/generations/tasks", headers=HEADERS, json={
    "model": "seedance-2.5",
    "content": [{"type": "text", "text": "Waves gently lapping the beach at dusk, slow motion"}],
    "resolution": "720p",
    "duration": 5,
    "ratio": "16:9",
    "generate_audio": True,
})
resp.raise_for_status()
task_id = resp.json()["id"]
print(task_id)
const BASE = "https://api.lmuai.com";
const headers = {
  Authorization: "Bearer YOUR_API_KEY",
  "Content-Type": "application/json",
};

const resp = await fetch(`${BASE}/api/v3/contents/generations/tasks`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "seedance-2.5",
    content: [{ type: "text", text: "Waves gently lapping the beach at dusk, slow motion" }],
    resolution: "720p",
    duration: 5,
    ratio: "16:9",
    generate_audio: true,
  }),
});
const data = await resp.json();
console.log(data.id);

レスポンス:

{
  "id": "cgt-20261022103211-ab12c"
}

先頭フレーム参照画像を使用するには、content に画像アイテムを追加します:

{
  "model": "seedance-2.5",
  "content": [
    {"type": "text", "text": "The camera slowly pushes in as waves gently lap the beach"},
    {"type": "image_url", "image_url": {"url": "https://example.com/first-frame.png"}, "role": "first_frame"}
  ],
  "resolution": "720p",
  "duration": 5
}

注意事項

  • 先頭フレームモード(role が first_frame)では、ratio を送信しないでください。アスペクト比は先頭フレーム画像に従い、送信するとアップストリームが 400 でリクエストを拒否します。
  • callback_url はアップストリームに転送されません。渡してもコールバックは届かないため、ポーリングを使用してください。

2. タスクの照会

GET /api/v3/contents/generations/tasks/{id}

status の値:queued → running → succeeded / failed / cancelled。成功時、動画の URL は content.video_url に含まれます。

curl https://api.lmuai.com/api/v3/contents/generations/tasks/TASK_ID \
  -H "Authorization: Bearer YOUR_API_KEY"

レスポンス(成功時):

{
  "id": "cgt-20261022103211-ab12c",
  "model": "seedance-2.5",
  "status": "succeeded",
  "content": {
    "video_url": "https://…/video.mp4"
  },
  "usage": {
    "completion_tokens": 108900,
    "total_tokens": 108900
  },
  "created_at": 1792629131,
  "updated_at": 1792629262
}

3. タスクの一覧取得

GET /api/v3/contents/generations/tasks?limit=20&offset=0

現在の API キーで作成したタスクを返します(limit は 1〜100、デフォルトは 20)。レスポンスは {object, data[], has_more} です。動画リンクの有効期限が切れた後も、タスクの記録は引き続き照会できます。

4. キャンセル / 削除

DELETE /api/v3/contents/generations/tasks/{id}

  • キュー待ち(queued)のタスクは無料でキャンセルできます。
  • 生成が始まったタスク(running)はキャンセルできず、409 が返されます。
  • 完了したタスクはアップストリームの記録を削除できますが、返金はありません。

5. 完全な例:作成とポーリング

import time, requests

BASE = "https://api.lmuai.com"
HEADERS = {"Authorization": "Bearer YOUR_API_KEY"}

# 1. Create the task
resp = requests.post(f"{BASE}/api/v3/contents/generations/tasks", headers=HEADERS, json={
    "model": "seedance-2.5",
    "content": [{"type": "text", "text": "Waves gently lapping the beach at dusk, slow motion"}],
    "resolution": "720p", "duration": 5, "ratio": "16:9",
})
resp.raise_for_status()
task_id = resp.json()["id"]

# 2. Poll until a final state (every 10 seconds)
while True:
    task = requests.get(f"{BASE}/api/v3/contents/generations/tasks/{task_id}", headers=HEADERS).json()
    status = task["status"]
    if status in ("succeeded", "failed", "cancelled", "canceled", "expired"):
        break
    time.sleep(10)

# 3. Download (the link is valid for 24 hours)
if status == "succeeded":
    url = task["content"]["video_url"]
    with open(f"{task_id}.mp4", "wb") as f:
        f.write(requests.get(url).content)
else:
    print("Generation failed:", task)

6. 課金とエラーコード

Seedance は出力 Token 数で課金されます。タスク作成時に見積額が凍結され、残高が不足している場合は 402 が返されます。成功時は実際の使用量で精算され、失敗またはキャンセルされたタスクは全額返金されます。ユーザーおよび API キーごとに同時に生成できるタスクは最大 5 件で、それを超えるとリクエストは 429 を返します。

詳細なルールは、概要の課金とウォーターマーク、同時実行数の制限、エラーコードを参照してください。もう一方のプロバイダーについては、Wan 動画生成 APIを参照してください。

最終更新:

このページの目次