VIDEO API
视频生成
使用 RootFlowAI OpenAI-compatible 视频接口提交异步任务、查询状态并下载生成结果。
视频生成
RootFlowAI 的视频生成接口兼容 OpenAI Videos API。视频任务是异步执行的:先提交任务拿到 task_id,再轮询查询状态,任务完成后通过 content 接口在线播放或下载 MP4。
已完成的视频会保留 7 天,请及时下载保存。视频内容通过 RootFlowAI 代理返回,不暴露上游供应商的原始文件地址。
接口流程
POST /v1/videos
-> 返回 task_id
GET /v1/videos/{task_id}
-> 查询 queued / in_progress / completed / failed
GET /v1/videos/{task_id}/content
-> completed 后下载视频文件你也可以登录 RootFlowAI 门户,在 /account/video-tasks 查看当前账号的视频任务、预览结果并下载文件。
可用模型
当前视频模型分为按秒计费和按次计费两类。按次计费模型是固定规格,提交时即使传入不同 seconds 或 resolution,系统也会按该公开模型的固定规格处理。
需要显式传入秒数时,请把 seconds 写成 JSON 字符串,例如 "seconds": "8"。这能兼容 Sora、Veo、Seedance 等视频上游的参数格式。
| 模型 ID | 计费方式 | 规格说明 |
|---|---|---|
sora-2 | 按秒 | Sora 2 视频生成 |
veo-3.1-lite-8s-720p | 按次 | Veo 3.1 Lite,固定 8 秒,720p |
gemini-omni-720p-4s | 按次 | Gemini Omni,固定 4 秒,720p |
gemini-omni-720p-6s | 按次 | Gemini Omni,固定 6 秒,720p |
gemini-omni-720p-8s | 按次 | Gemini Omni,固定 8 秒,720p |
gemini-omni-720p-10s | 按次 | Gemini Omni,固定 10 秒,720p |
seedance-2.0-fast-480p | 按秒 | Seedance 2.0 Fast,480p |
seedance-2.0-720p | 按秒 | Seedance 2.0,720p |
实际扣费还会受到你的账号分组倍率影响,请以控制台展示和账单记录为准。
提交视频任务
curl https://api.rootflowai.com/v1/videos \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "gemini-omni-720p-4s",
"prompt": "一只黑色中华田园犬在阳光明媚的草地上快乐奔跑,毛发自然摆动,尾巴摇摆,表情开心,镜头跟随运动,真实纪录片风格,清晰自然光,充满活力。"
}'按秒计费模型示例:
curl https://api.rootflowai.com/v1/videos \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "一只黑色中华田园犬在阳光明媚的草地上快乐奔跑,真实纪录片风格。",
"seconds": "4",
"resolution": "720p"
}'响应示例:
{
"id": "task_xxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "gemini-omni-720p-4s",
"status": "queued",
"progress": 0,
"created_at": 1782892800
}记录返回的 id,后续查询和下载都使用这个任务 ID。
查询任务状态
curl https://api.rootflowai.com/v1/videos/task_xxxxxxxxxxxxxxxxxxxxx \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx"状态说明:
| 状态 | 含义 |
|---|---|
queued | 任务已提交,等待调度 |
in_progress | 正在生成 |
completed | 生成完成,可以下载 |
failed | 生成失败 |
完成响应示例:
{
"id": "task_xxxxxxxxxxxxxxxxxxxxx",
"object": "video",
"model": "gemini-omni-720p-4s",
"status": "completed",
"progress": 100,
"created_at": 1782892800,
"completed_at": 1782893010
}如果状态是 failed,响应里会带错误信息。失败任务不会返回可下载视频。
如果任务已经生成完成,但系统仍在准备视频存储,可能会短暂看到 video storage is preparing。稍后重新查询任务或下载 content 即可。
下载视频
任务状态为 completed 后,使用 content 接口下载:
curl -L https://api.rootflowai.com/v1/videos/task_xxxxxxxxxxxxxxxxxxxxx/content \
-H "Authorization: Bearer sk-xxxxxxxxxxxxxxxx" \
-o output.mp4content 接口返回的是视频二进制内容,通常为 video/mp4。任务未完成时,该接口不会返回视频文件。
下载接口会通过 RootFlowAI 的视频代理读取已转存的视频文件,不会把上游供应商的原始视频 URL 返回给用户。
在门户查看任务
登录 RootFlowAI 后进入:
/account/video-tasks视频任务中心可以查看:
- 任务 ID
- 模型
- 状态和进度
- 创建时间和更新时间
- 失败原因
- 成功任务的视频预览和下载按钮
门户只展示用户自己的视频任务信息。供应商、上游任务 ID、内部路由、采购成本和三方原始视频 URL 不会在用户侧展示。
注意事项
- 视频生成耗时通常比文本和图片更长,请使用轮询方式查询结果。
- 不要在任务未完成时反复下载 content,先查询状态更稳。
- 已完成的视频会保留 7 天,建议生成完成后及时下载保存视频文件。
- 如果任务失败,可以根据错误信息调整 prompt、模型或输入素材后重新提交。
- API Key 只应保存在服务端或可信环境,不要写进公开前端代码。