API 参考

两个端点构成完整闭环:一个提交任务,一个查询结果。接口地址中的域名请替换为你实际使用的接入点。

方法路径用途
POST/v1/contents/generations/tasks创建视频生成任务,返回任务号
GET/v1/contents/generations/tasks/{task_id}查询任务状态与结果

认证

所有请求都必须携带 API Key,支持两种写法,二选一:

方式请求头
标准写法(推荐)Authorization: Bearer <API Key>
简写X-API-Key: <API Key>

认证失败的响应:

json · 401
{
  "error": {
    "message": "Invalid API Key",
    "type": "invalid_request_error",
    "code": "invalid_api_key"
  }
}

创建任务

POST /v1/contents/generations/tasks

Content-Type: application/json

请求字段

字段类型必填说明
modelstring必填 模型 ID。可选值见 模型说明:vipro-main 或 vipro-main2.5。
contentarray必填 输入内容数组,可包含文本与素材。结构见下方 content 结构。
durationinteger可选 期望的视频时长(秒)。不传则由上游按默认值处理。参考模式下语义会变化,见 参考模式。
resolutionstring可选 分辨率:480p / 720p / 1080p。不传由上游决定;取值会参与计费倍率。
ratiostring可选 画面宽高比,如 16:9 / 9:16 / 1:1。不传由上游决定。
seedinteger可选 随机种子。相同 seed + 相同提示词可提高结果复现度。
generate_audioboolean可选 是否同步生成音频。
watermarkboolean可选 是否在视频上带水印。
return_last_frameboolean可选 为 true 时额外返回尾帧图片,便于接续生成长视频。
safety_identifierstring可选 终端用户唯一标识,用于内容安全追溯。多租户场景建议传。
reference_modestring可选 在 vipro-main2.5 上用来声明本次是生成 / 编辑 / 延长(generate / edit / extend)。 编辑与延长本身两个模型都支持,此字段只是让 2.5 更早确定任务类型。详见 参考模式。
source_duration_secondsnumber可选 在 vipro-main2.5 上声明待编辑 / 待延长源视频的时长(秒),影响计费。详见 参考模式。

除上表外,上游模型支持的其他字段也会被原样透传。如遇到本文未列出的上游参数,可直接按上游文档传入。

content 结构

content 是一个数组,按顺序描述这次要生成什么。文本用 text 类型, 素材用 image_url / video_url / audio_url 类型。

条目类型

type取值字段说明
texttext提示词。建议放在数组第一位。
image_urlimage_url.url图片素材地址。
video_urlvideo_url.url视频素材地址。
audio_urlaudio_url.url音频素材地址。

素材角色 role

素材条目可带 role 字段声明用途:

role适用类型说明
reference_imageimage_url参考图片。图生视频、多图参考都用它。
reference_videovideo_url参考视频。用于视频编辑、视频延长。
reference_audioaudio_url参考音频。用于指定音色或对白。

完整示例

json
{
  "model": "vipro-main2.5",
  "content": [
    { "type": "text", "text": "@图1 的人物走进 @图2 的场景,自然转头看向镜头" },
    { "type": "image_url",
      "image_url": { "url": "https://your-cdn.com/person.jpg" },
      "role": "reference_image" },
    { "type": "image_url",
      "image_url": { "url": "https://your-cdn.com/scene.jpg" },
      "role": "reference_image" }
  ],
  "duration": 5,
  "resolution": "720p",
  "ratio": "16:9",
  "seed": 12345
}

素材引用语法:2.5 支持在提示词里用 @图1、@图2、@音频1 指代 content 中对应顺序的素材,模型会据此理解每个素材的角色。

创建响应

提交成功后返回 200,body 中只有任务标识:

json · 200 OK
{
  "id": "task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO",
  "upstream_id": "cgt-20261010080537-ckd7m"
}
字段类型说明
idstring任务号,轮询时使用。请持久化保存。
upstream_idstring上游侧的任务标识,排查问题时提供给技术支持可加快定位。

创建响应里不含视频地址。任务成功与否只能在轮询阶段得知——这是异步任务制的固有形态,不是接口缺陷。

查询任务

GET /v1/contents/generations/tasks/{task_id}

响应字段

字段类型说明
idstring任务号,与创建时返回的一致。
upstream_idstring上游侧任务标识。
modelstring实际执行的模型标识。
statusstring任务状态,取值见下方 状态取值。
created_atinteger任务创建时间(Unix 秒)。
updated_atinteger状态最后更新时间(Unix 秒)。
content.video_urlstring成功时返回,生成的视频地址(临时签名链接)。
error.codestring失败时返回,错误码,如 OutputVideoSensitiveContentDetected。
error.messagestring失败时返回,错误描述。
seedinteger本次实际使用的随机种子。
resolutionstring实际生成分辨率。
ratiostring实际画幅比例。
durationinteger实际视频时长(秒)。
framespersecondinteger帧率。
generate_audioboolean是否生成了音频。
output_formatstring输出容器格式,通常为 mp4。
usage.completion_tokensinteger本次任务的上游用量,可用于对账。

成功响应示例:

json · succeeded
{
  "id": "task_eGPN7DPXHZxymgJlf0TxYHbRZHDgdOCO",
  "upstream_id": "cgt-20261010080537-ckd7m",
  "model": "doubao-seedance-2-0-fast-260128",
  "status": "succeeded",
  "created_at": 1791590737,
  "updated_at": 1791591000,
  "content": {
    "video_url": "https://ark-acg-cn-beijing.tos-cn-beijing.volces.com/....mp4?X-Tos-Expires=86400&..."
  },
  "seed": 23751,
  "resolution": "720p",
  "ratio": "16:9",
  "duration": 15,
  "framespersecond": 24,
  "generate_audio": true,
  "output_format": "mp4",
  "draft": false,
  "service_tier": "default",
  "execution_expires_after": 172800,
  "usage": {
    "completion_tokens": 324900,
    "total_tokens": 324900
  }
}

失败响应示例:

json · failed
{
  "id": "task_xxxx",
  "model": "doubao-seedance-2-0-260128",
  "status": "failed",
  "error": {
    "code": "OutputVideoSensitiveContentDetected",
    "message": "The request failed because the output video may contain sensitive information. Request id: 02179160179632000000000000000000000ffffac190631189091"
  },
  "created_at": 1791601796,
  "updated_at": 1791602115,
  "usage": {}
}

失败会自动退款。轮询到 failed 时系统自动退回本次已扣积分,不需要调用方申请。详见 计费与错误码。

响应中会附带一个 _proxy_model 字段,是网关内部的路由标识,可直接忽略,不参与业务逻辑。

状态取值

status是否终态说明
queued否任务已受理,排队等待执行。
running否正在生成中。
succeeded是生成成功,content.video_url 可下载。
failed是生成失败,error 中有原因,自动退款。
expired是任务超时未完成,自动退款。
cancelled是任务被取消。

素材要求

限制

项目限制
请求体大小200 MB
素材数量由上游模型能力决定,建议参考图不超过 10 张
任务号保留7 天(过期后查询返回 404)
结果视频链接有效期约 24 小时,请及时转存
失败退款窗口任务提交后 24 小时内

注意事项

GET /v1/videos/{task_id} 这个路径不存在。 部分早期资料里写过它,但本服务未提供该路由。轮询请一律使用 GET /v1/contents/generations/tasks/{task_id}。