视频和异步任务接口
视频生成通常是异步任务:提交请求后先得到任务 ID,再轮询任务状态,成功后获取视频或任务产物。
视频接口选择
| 接口 | 说明 | 推荐程度 |
|---|---|---|
/v1/videos | OpenAI 风格视频任务提交 | 新接入优先使用,但要求匹配的视频任务适配器 |
/v1/videos/{task_id} | OpenAI 风格视频任务查询 | 配合 /v1/videos 使用 |
/v1/videos/{task_id}/content | 获取视频内容或产物代理 | 取决于渠道是否提供产物 |
/v1/video/generations | 兼容视频任务提交路径 | 旧客户端兼容 |
/v1/video/generations/{task_id} | 兼容视频任务查询路径 | 旧客户端兼容 |
/v1/videos/{video_id}/remix | 基于已有视频二次生成 | 条件支持,要求渠道支持 |
/v1/videos 和 /v1/video/generations 的路由可以存在,但不代表当前实例已经配置了可用的视频任务模型。服务需要有匹配的视频任务渠道或任务插件;否则可能返回能力不支持、模型不存在,或只有通用任务回执而不是完整的视频对象。
OpenAI 风格视频提交
bash
export COREROUTER_API_KEY="sk-xxxxxxxxxxxxxxxx"
curl https://api.corerouter.tech/v1/videos \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $COREROUTER_API_KEY" \
-d '{
"model": "video-model-id",
"prompt": "一只橘猫在舞台上弹钢琴,电影感灯光",
"seconds": "4",
"size": "1280x720"
}'
如果渠道支持图片转视频,可以传入图片 URL:
bash
curl https://api.corerouter.tech/v1/videos \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $COREROUTER_API_KEY" \
-d '{
"model": "video-model-id",
"prompt": "让图片中的主体缓慢转身",
"image": "https://example.com/input.jpg",
"seconds": "4",
"size": "1280x720"
}'
也可以使用 multipart/form-data,字段名通常包括 model、prompt、input_reference、seconds 和 size:
bash
curl https://api.corerouter.tech/v1/videos \
-H "Authorization: Bearer $COREROUTER_API_KEY" \
-F "model=video-model-id" \
-F "prompt=让图片中的主体缓慢转身" \
-F "[email protected]" \
-F "seconds=4" \
-F "size=1280x720"
查询视频任务
提交成功后,响应里通常会包含 id 或 task_id。使用返回的任务 ID 查询:
bash
curl https://api.corerouter.tech/v1/videos/task_xxxxxxxxxxxxxxxx \
-H "Authorization: Bearer $COREROUTER_API_KEY"
常见状态:
| 状态 | 含义 |
|---|---|
queued | 已提交,等待处理 |
in_progress | 生成中 |
completed | 已完成 |
failed | 失败,查看 error |
获取视频内容
如果任务渠道支持产物代理,可以访问:
bash
curl -L https://api.corerouter.tech/v1/videos/task_xxxxxxxxxxxxxxxx/content \
-H "Authorization: Bearer $COREROUTER_API_KEY" \
--output output.mp4
是否能直接下载内容取决于视频渠道和任务插件。部分渠道只会返回结果 URL,需要从查询结果里读取。
兼容视频接口
已有客户端如果使用 /v1/video/generations,可以继续这样调用:
bash
curl https://api.corerouter.tech/v1/video/generations \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $COREROUTER_API_KEY" \
-d '{
"model": "video-model-id",
"prompt": "城市夜景延时摄影",
"seconds": "5",
"size": "1280x720"
}'
兼容路径实际读取的通用字段主要是 model、prompt、seconds、duration、size、image、images、input_reference 和 metadata。width、height、fps、seed 等字段不会自动转换成 size,不要只传这些字段后期待服务端推断视频尺寸。
查询:
bash
curl https://api.corerouter.tech/v1/video/generations/task_xxxxxxxxxxxxxxxx \
-H "Authorization: Bearer $COREROUTER_API_KEY"
通用任务接口
/v1/tasks/{key} 是更底层的通用任务提交入口。key 代表任务插件或任务类型,普通用户不需要直接猜测这个值。
bash
curl https://api.corerouter.tech/v1/tasks/task-plugin-key \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $COREROUTER_API_KEY" \
-d '{
"model": "task-model-id",
"prompt": "生成一个演示任务",
"metadata": {
"quality": "standard"
}
}'
查询通用任务:
bash
curl https://api.corerouter.tech/v1/tasks/task_xxxxxxxxxxxxxxxx \
-H "Authorization: Bearer $COREROUTER_API_KEY"
查询任务产物:
bash
curl https://api.corerouter.tech/v1/tasks/task_xxxxxxxxxxxxxxxx/artifacts \
-H "Authorization: Bearer $COREROUTER_API_KEY"
下载某个产物:
bash
curl -L https://api.corerouter.tech/v1/tasks/task_xxxxxxxxxxxxxxxx/artifacts/video/content \
-H "Authorization: Bearer $COREROUTER_API_KEY" \
--output artifact.bin
常见问题
model field is required:请求体或表单缺少model。prompt is required:视频任务通常需要prompt。seconds must be between 1 and 3600:视频时长超出限制或传了负数。- 提交成功但一直排队:上游任务队列繁忙,稍后轮询,或换用其他模型。
- 查询不到任务:确认使用的是提交响应里的任务 ID,且 API Key 仍有权限访问该任务。
- 下载内容失败:当前任务渠道可能只提供结果 URL,不支持
/content代理下载。
CoreRouter API 文档