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
| パラメータ | 型 | 必須 | 説明 |
|---|---|---|---|
model | string | はい | モデル名。グループで有効化されている名前と完全に一致する必要があります(大文字と小文字を区別) |
content | array | はい | 入力コンテンツ。テキスト:{"type":"text","text":"…"}、参照画像:{"type":"image_url","image_url":{"url":"…"},"role":"first_frame"}。role には first_frame(先頭フレーム)または reference_image(参照画像)を指定できます |
resolution | string | いいえ | 解像度:480p / 720p / 1080p |
duration | integer | いいえ | 動画の長さ(秒) |
ratio | string | いいえ | アスペクト比:16:9 / 9:16 / 1:1 / 4:3 |
generate_audio | boolean | いいえ | 音声も同時に生成するかどうか |
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を参照してください。
最終更新:
LMU AI の API キーを取得して、Claude や Codex をすぐに使う
登録は無料、プランは柔軟。1 つの API キーで Claude Code、Codex CLI、Cursor、VS Code 拡張、OpenCode、Cherry Studio などの AI ツールに接続できます。
登録する