视频生成 Videos
视频生成为异步任务模式:先创建任务拿到任务 ID,再轮询查询结果。所有视频模型共用同一套 POST /v1/videos 接口,只需更换 model 参数。
支持的模型
| 模型系列 | 说明 | 详细文档 |
|---|---|---|
| Seedance 官方一致接入 | Seedance 2.0/2.5 系列(dreamina-seedance-*),官方路径 /api/v3/contents/generations/tasks + 统一素材入口,兼容 /v1/videos | Seedance 使用说明 · 素材库 |
| Kling 可灵 | 快手视频生成模型 | Kling 使用说明 |
| Grok Imagine | xAI grok-imagine-video 系列,1–15 秒(默认 8 秒),1.5 版支持原生音频与 1080p | Grok Imagine 使用说明 |
接口总览
| 操作 | 方法与路径 | 适用 |
|---|---|---|
| 创建视频任务(统一接口) | POST $URL/v1/videos | Seedance / Kling |
| 查询任务状态 | GET $URL/v1/videos/{task_id} | Seedance / Kling |
| 创建任务(官方一致) | POST $URL/api/v3/contents/generations/tasks | Seedance |
| 查询/列表/取消(官方一致) | GET / DELETE $URL/api/v3/contents/generations/tasks* | Seedance |
| 素材库(统一素材入口) | POST $URL/?Action=<Action>&Version=2024-01-01 | Seedance |
两套接口风格
- 统一接口
/v1/videos:所有模型通用,响应为 OpenAI Video 风格(id/status/video_url)——本文所述; - 官方一致路径:Seedance 走官方文档同款路径
/api/v3/contents/generations/tasks,素材库POST /?Action=xxx,见 Seedance 使用说明。
1. 创建任务
bash
curl $URL/v1/videos \
-H "Authorization: Bearer $YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dreamina-seedance-2-0-mini-260615",
"prompt": "一只戴着墨镜的猫走在霓虹灯街道上",
"seconds": "5",
"size": "720p"
}'返回:
json
{
"id": "cgt-xxxxxxxx",
"model": "dreamina-seedance-2-0-mini-260615",
"status": "in_progress",
"created_at": 1785000000
}2. 查询任务
用上一步返回的 id 轮询任务状态(建议每 5~10 秒一次):
bash
curl $URL/v1/videos/cgt-xxxxxxxx \
-H "Authorization: Bearer $YOUR_API_KEY"生成完成后返回:
json
{
"id": "cgt-xxxxxxxx",
"model": "dreamina-seedance-2-0-mini-260615",
"status": "completed",
"video_url": "https://..."
}任务状态说明
| 状态 | 含义 | 处理建议 |
|---|---|---|
queued | 排队中 | 继续轮询 |
in_progress | 生成中 | 继续轮询 |
completed | 生成成功 | 从返回体获取视频地址,请尽快下载保存 |
failed | 生成失败 | 查看 error.message |
幂等提示
如果你在请求中携带自定义的 client_request_id(幂等键),请确保每个新任务使用全新的唯一值(如 UUID)。复用旧值会命中上游幂等缓存,直接返回历史任务的结果。
超时说明
- 任务超过 20 分钟未完成会自动置为失败,不会无限等待,请通过轮询获取最终状态。
新模型接入
我们会持续接入新的视频模型。新模型上线后会在本节新增对应的使用说明页,接口调用方式保持不变,仅 model 名称与个别参数不同。
