Seedance 视频 API 怎么调用
最后更新:
按支持规格提交一次,保存任务 ID,轮询到完成后读取视频地址。接受任务不等于视频已生成。
先选支持规格,再提交任务
视频生成使用专用任务接口,不是 Chat Completions。按下面的型号、时长、分辨率和比例组合填写,提交成功后保存 task_id;查询这个任务直到 completed,再读取结果。
| 模型 | 时长 | 分辨率 | 比例 |
|---|---|---|---|
| seedance-2.0-fast | 4 秒 | 480p | 16:9 |
| seedance-2.5 | 4 秒 | 480p | 16:9 |
| seedance-2.0-mini | 5 秒 | 720p | 9:16 |
第一步:发送文生视频请求
下面的 prompt 描述一个主体、一种运动和一个镜头,适合先验证完整交付。接口接收文本及所列规格参数;不要把图片字段或其他平台的扩展参数直接加进来。HTTP 202 表示任务已受理,响应中的 task_id 用于后续查询。
curl https://api.kkaiapi.com/v1/videos/generations \
-H "Authorization: Bearer $KKAI_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"seedance-2.0-fast","prompt":"纸船在平静湖面上缓慢漂动,固定镜头,自然日光。","seconds":4,"resolution":"480p","ratio":"16:9"}'第二步:查询同一个任务
把返回的 task_id 保存到自己的任务记录,并填入下面的 TASK_ID 环境变量。每隔几秒查询一次:processing 继续等待,completed 读取 result.url,failed 读取 error.code。得到下载地址后还要下载并检查实际视频,才能确认交付可用。
curl "https://api.kkaiapi.com/v1/videos/tasks/$TASK_ID" \
-H "Authorization: Bearer $KKAI_API_KEY"| status | 怎样处理 |
|---|---|
| processing | 保留 task_id,稍后继续查询 |
| completed | 读取 result.url,下载并审核视频 |
| failed | 记录 error.code,核对任务与费用状态 |
按秒报价,按支持的任务规格消费
下表列出当前每秒售价。一次任务的费用按请求秒数与对应单价计算;多次重新生成属于多次任务,应一起计入预算。提交时会预留额度,终态与费用处理见视频文档和控制台记录。
| 模型 | 模型 ID | 视频价格(CNY) |
|---|---|---|
| seedance-2.0-fast | seedance-2.0-fast | ¥0.3 / 1 秒 |
| seedance-2.0-mini | seedance-2.0-mini | ¥0.4 / 1 秒 |
| seedance-2.5 | seedance-2.5 | ¥0.6 / 1 秒 |
遇到超时,先找任务而不是重发
已经拿到 task_id 时,网络恢复后继续查询原任务,不要再创建一张相同任务。POST 超时但没有拿到 ID 时,保留时间、模型与请求编号,先核对任务和费用记录;服务端可能已经受理,不能把客户端超时当成“没有发生”。
接口返回 unsupported_video_specification 时,回到规格表检查四项组合。invalid_video_request 则先检查 JSON 和字段。视频完成后核对主体、运动、时长、画幅与声音是否符合任务要求,再进入剪辑或发布。
常见问题
能把时长改成任意秒数吗?
当前接口只接受页面所列的已支持组合。换时长或分辨率前先看视频文档,不能由每秒计价推断任意规格都可用。
202 响应里为什么没有视频地址?
202 表示任务受理,结果尚在生成。用 task_id 查询到 completed 后,读取 result.url。
可以上传图片做参考吗?
本文这组接口规格是文生视频,示例不包含图片输入。需要带图能力时,应以明确支持该输入的接口文档为准。
查询状态会新建视频任务吗?
GET 查询读取已有任务;创建任务使用 POST。等待期间持续查询同一 task_id,避免重复提交。
失败以后可以直接循环重试吗?
先确认任务终态与失败原因,修正参数或处理对应问题后再决定是否新建任务。每个新生成任务都可能产生新的费用。