Skip to content

视频生成任务 ​

创建 Seedance 视频生成任务并轮询查询结果。接口路径、请求与响应字段均与火山引擎官方一致:用 content 数组描述文本、图片、视频、音频输入。

请求地址:https://www.sky-ze.com/api/v3/contents/generations/tasks

创建任务 ​

http
POST /api/v3/contents/generations/tasks

请求参数 ​

参数类型必填说明
modelstring✓模型 ID,见 视频模型与计费
contentarray✓输入内容数组,见下方 content 结构
durationinteger视频时长(秒)。Seedance 2.0 系列 4–15;Seedance 2.5 为 4–30;传 -1 由模型自选
resolutionstring分辨率:480p / 720p / 1080p / 4k(按模型支持)
ratiostring宽高比:16:9 / 4:3 / 1:1 / 3:4 / 9:16 / 21:9 / adaptive
seedinteger随机种子
generate_audioboolean是否生成同步音频,默认 true
watermarkboolean是否添加水印,默认 false
draftboolean样片模式,Seedance 2.5 支持
return_last_frameboolean是否返回尾帧
execution_expires_afterinteger任务过期时间(秒),范围 3600–259200

content 结构 ​

类型字段说明
texttext提示词
image_urlimage_url.url、role图片地址;role 可为 first_frame / last_frame / reference_image
video_urlvideo_url.url、role视频地址;role 为 reference_video
audio_urlaudio_url.url、role音频地址;role 为 reference_audio
draft_taskdraft_task.id复用样片任务,Seedance 2.5 支持

image_url / video_url / audio_url 的 url 支持公网 URL,或在控制台 素材库 生成并复制的 asset://<素材ID> 引用。真人素材需本人完成活体认证后才能引用。

请求示例 ​

bash
curl https://www.sky-ze.com/api/v3/contents/generations/tasks \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-key" \
  -d '{
    "model": "doubao-seedance-2.0",
    "content": [
      {"type": "text", "text": "一只猫在海边奔跑,电影感,夕阳"},
      {"type": "image_url", "image_url": {"url": "https://example.com/cat.jpg"}, "role": "reference_image"}
    ],
    "duration": 4,
    "resolution": "720p",
    "ratio": "16:9",
    "generate_audio": false
  }'
python
import requests

resp = requests.post(
    "https://www.sky-ze.com/api/v3/contents/generations/tasks",
    headers={"Authorization": "Bearer your-api-key"},
    json={
        "model": "doubao-seedance-2.0",
        "content": [
            {"type": "text", "text": "一只猫在海边奔跑,电影感,夕阳"},
            {"type": "image_url", "image_url": {"url": "https://example.com/cat.jpg"}, "role": "reference_image"},
        ],
        "duration": 4,
        "resolution": "720p",
        "ratio": "16:9",
        "generate_audio": False,
    },
)
print(resp.json())
javascript
const resp = await fetch('https://www.sky-ze.com/api/v3/contents/generations/tasks', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer your-api-key'
  },
  body: JSON.stringify({
    model: 'doubao-seedance-2.0',
    content: [
      { type: 'text', text: '一只猫在海边奔跑,电影感,夕阳' },
      { type: 'image_url', image_url: { url: 'https://example.com/cat.jpg' }, role: 'reference_image' }
    ],
    duration: 4,
    resolution: '720p',
    ratio: '16:9',
    generate_audio: false
  })
})

console.log(await resp.json())

响应 ​

json
{
  "id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
}

id 为任务 ID,用于后续查询。

查询任务 ​

http
GET /api/v3/contents/generations/tasks/{task_id}

路径参数 ​

参数类型说明
task_idstring创建任务返回的任务 ID

请求示例 ​

bash
curl https://www.sky-ze.com/api/v3/contents/generations/tasks/task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx \
  -H "Authorization: Bearer your-api-key"

响应字段 ​

字段类型说明
idstring任务 ID
modelstring实际执行的模型版本
statusstring任务状态,见下方状态说明
content.video_urlstring生成的视频地址,成功时返回
content.last_frame_urlstring尾帧图片地址,return_last_frame=true 时返回
usage.completion_tokensinteger实际计费 token 用量
usage.total_tokensinteger实际 token 总用量
errorobject失败信息,包含 code 与 message
durationinteger实际视频时长(秒)
resolutionstring输出分辨率
ratiostring输出宽高比
created_atinteger创建时间(Unix 秒)
updated_atinteger更新时间(Unix 秒)

任务状态 ​

状态说明
queued排队中
running生成中
succeeded成功,视频地址见 content.video_url
failed失败,原因见 error.message
cancelled已取消
expired超时

成功响应示例 ​

json
{
  "id": "task_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "model": "doubao-seedance-2-0-260128",
  "status": "succeeded",
  "content": {
    "video_url": "https://example.com/result.mp4"
  },
  "usage": {
    "completion_tokens": 108900,
    "total_tokens": 108900
  },
  "duration": 4,
  "resolution": "720p",
  "ratio": "16:9",
  "created_at": 1760000000,
  "updated_at": 1760000300
}

轮询查询 ​

视频生成为异步任务,通常 1–3 分钟完成。建议创建任务后每 5 秒查询一次,直到状态为 succeeded、failed、cancelled 或 expired。

python
import time
import requests

base_url = "https://www.sky-ze.com"
headers = {"Authorization": "Bearer your-api-key"}
task = requests.post(
    f"{base_url}/api/v3/contents/generations/tasks",
    headers=headers,
    json={
        "model": "doubao-seedance-2.0",
        "content": [{"type": "text", "text": "一只猫在海边奔跑,电影感,夕阳"}],
        "duration": 4,
        "resolution": "720p",
    },
).json()

while True:
    result = requests.get(f"{base_url}/api/v3/contents/generations/tasks/{task['id']}", headers=headers).json()
    if result["status"] in ("succeeded", "failed", "cancelled", "expired"):
        break
    time.sleep(5)

print(result)

说明 ​

  • content.video_url 为预签名地址,24 小时内有效,请及时下载
  • 仅成功生成的视频计费;失败、取消的任务不计费
  • 计费方式见 视频模型与计费 与 计费规则

天绛白泽 | Token工厂