视频生成概览
UniAll 视频模型默认共用一套异步任务生命周期。模型 ID、输入字段和能力限制以各模型页面为准;任务轮询、状态处理、错误和结果获取统一以本页为准。
模型
- Happy Horse
- Seedance 2.0
- Seedance 2.5
- Grok Video 1.5
- Grok Imagine
- Veo 3.1
- Gemini Omni Flash Preview
- Vidu Q3
- Hailuo
- Kling
- Wan 2.6
- Sora 2
默认接口
{BASE_URL} 为 https://api.uniall.ai。
| 操作 | 方法 | 接口 |
|---|---|---|
| 创建任务 | POST | /v1/videos |
| 查询状态与结果 | GET | /v1/videos/{task_id} |
| 下载已完成的视频 | GET | /v1/videos/{task_id}/content |
每次请求都要携带 Authorization: Bearer sk-***。部分模型页面会注明兼容创建路径或特定协议例外;模型 ID 和请求体仍以对应模型页面为准。
视频任务生命周期
1. 保存任务 ID
创建成功后会返回公开 id。部分响应还会在 task_id 中返回同一个值用于兼容。离开创建流程前应保存其中任意一个。
{
"id": "task_xxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxx",
"object": "video.generation.job",
"model": "model-name",
"status": "queued",
"progress": 0,
"created_at": 1785801600
}
2. 轮询任务
每 3 到 10 秒查询一次任务:
curl "{BASE_URL}/v1/videos/task_xxxxxxxxxxxxx" \
-H "Authorization: Bearer sk-***"
仅当 status 变为 completed 或 failed 时停止轮询。任务仍为 queued 或 in_progress 时,不要重复创建同一任务。
| 状态 | 终态 | 含义 |
|---|---|---|
queued | 否 | 任务已受理,正在等待处理。 |
in_progress | 否 | 正在生成视频或处理结果。 |
completed | 是 | 最终结果已就绪。 |
failed | 是 | 任务未生成结果;检查 error。 |
3. 读取结果
任务完成后,可从 video_url、result.video_url 或 result.outputs[0] 读取公开结果。这几个字段可能指向同一个视频。
{
"id": "task_xxxxxxxxxxxxx",
"task_id": "task_xxxxxxxxxxxxx",
"object": "video.generation.job",
"model": "model-name",
"status": "completed",
"progress": 100,
"video_url": "https://example.com/generated-video.mp4",
"result": {
"video_url": "https://example.com/generated-video.mp4",
"outputs": [
"https://example.com/generated-video.mp4"
]
},
"error": null
}
需要最终文件时,使用带鉴权的内容接口:
curl -L "{BASE_URL}/v1/videos/task_xxxxxxxxxxxxx/content" \
-H "Authorization: Bearer sk-***" \
-o output.mp4
任务完成前不要调用内容接口。生成媒体应及时下载,不要把结果 URL 当作永久存储地址。
4. 处理失败
{
"id": "task_xxxxxxxxxxxxx",
"object": "video.generation.job",
"model": "model-name",
"status": "failed",
"progress": 100,
"result": null,
"error": {
"code": "task_failed",
"message": "Video generation failed"
}
}
参数错误应先修正输入再创建新任务。临时服务错误可使用退避策略重试,但原任务仍在运行时不要反复提交同一请求。
公共响应字段
| 字段 | 类型 | 说明 |
|---|---|---|
id | string | 用于轮询的公开任务 ID。 |
task_id | string | 存在时为 id 的兼容别名。 |
object | string | 任务对象类型,通常为 video.generation.job。 |
model | string | 创建任务时使用的公开模型 ID。 |
status | string | queued、in_progress、completed 或 failed。 |
progress | integer | 可用时为 0 到 100;不能代替 status 判断终态。 |
video_url | string 或 null | 任务完成后的公开结果 URL。 |
result | object 或 null | 完成后的输出详情,包括 video_url 或 outputs。 |
error | object 或 null | 失败任务的公开 code 和 message。 |
created_at | integer | 可用时为 Unix 创建时间戳。 |
completed_at | integer | 可用时为 Unix 完成时间戳。 |
模型例外
Gemini Omni Flash Preview 通过 POST /v1beta/interactions 创建请求。需要后续查询时,使用返回的 interaction_id 调用 GET /v1/videos/generations/{interaction_id};终态、错误处理和结果字段仍遵循上面的公共规则。
Sora 2 原生 OpenAI 格式等特定协议页面可能直接流式返回自身格式,而不是标准视频任务。此类场景以对应页面的响应流程为准。