• 文生视频、图生视频、视频编辑与延长
  • 不需要传时长,由模型自行决定,通常 3 到 10 秒
  • 可以用上一次的任务 ID 做多轮对话式修改
POST/v1/videos

认证

string必填

所有接口均使用 Bearer Token 进行认证。

获取 API Key:访问控制台 创建。

请求时在请求头中添加:

Authorization: Bearer YOUR_OAIRoute_KEY

请求参数

提交成功只返回任务 ID,不含视频本身。拿成片用 task_id 轮询获取任务状态,成片地址在 result.videos[0].url,该地址约 24 小时后过期,请及时转存。

string必填

取值 gemini-omni-flash-preview 或 gemini-omni-1.1-flash。

string条件必填

文生视频时是场景描述;图生视频、视频编辑时是要执行的动作或风格指令。

prompt 与媒体字段至少要有一个。

string可选

输出分辨率,取值 360p、720p、1080p、4k,默认 720p,大小写不敏感。

2160p 按 4k 处理。gemini-omni-flash-preview 目前只支持 720p。

string可选

输出画幅,取值 16:9、9:16,默认 16:9。

传其他值会静默回落为 16:9。带视频输入时该字段失效,比例跟随源视频。

string[]可选

1 张按首帧处理;多张按多主体或风格参考处理,需要在 prompt 里说明各自角色。

gemini-omni-flash-preview 最多 16 张,gemini-omni-1.1-flash 与帧图合计不超过 10 张。

string可选

首帧。单独传是首帧;与 last_frame_image 同传是首尾帧过渡。

string可选

尾帧,只能与 first_frame_image 一起使用。

单独传返回 invalid_frame_images;建议与首帧同比例并匹配 aspect_ratio。

object[]可选

带角色的图片数组,每项含 url 与 role。

role 取值 first_frame、last_frame、reference。last_frame 必须已有首帧。

string[]可选

要编辑或延长的视频。

gemini-omni-flash-preview 最多 1 段,gemini-omni-1.1-flash 最多 1 段且不超过 10 秒,只接受直链,不支持 YouTube 链接。与 extend_from_task_id 互斥。

metadata 的元素字段
string可选

显式指定任务类型,取值 text_to_video、image_to_video、reference_to_video、edit、extend。

省略时由平台按输入推断。

string可选

上一次的任务 ID。必须是本人所有、已完成、且属于 Gemini Omni 的任务。与 video_urls 互斥。

boolean可选

为 true 时先做内容审查,默认 false。

模式判定

可以显式传 metadata.task 指定任务类型,也可以交给平台按输入推断。

只有提示词是文生视频;带 image_urls 是图生视频;带 video_urls 是视频编辑或延长;带 extend_from_task_id 是接续上一次的生成。

首尾帧两种写法二选一:用 first_frame_image / last_frame_image,或用 image_with_roles 里 role 为 first_frame / last_frame 的条目,不要同时用。

image_urls 与 image_with_roles 都带参考图时,以 image_urls 为准,两者不会合并。

支持的模型列表

模型 ID定位
gemini-omni-1.1-flash当前主力,最高 4K,支持视频编辑与多轮接续
gemini-omni-flash-preview预览版,最多 16 张参考图,目前固定 720p
omni-flash-ext预览版的延长专用入口

使用限制

  • 没有 duration 参数,长度由模型决定
  • 带视频输入时 aspect_ratio 不生效
  • last_frame_image 不能单独使用
  • video_urls 与 extend_from_task_id 不能同时传
  • 成片链接在 result.videos[].url 里以数组形式返回,并按 expires_at 过期

响应

提交成功返回统一的受理结构:

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01K8SGYNNNVBQTXNR4MM964S7K"
    }
  ]
}
integer总是返回

状态码,200 表示任务已受理。

array总是返回

本次提交的任务列表,逐项提交时按顺序排列。

data[] 的元素字段 · 2 项
string总是返回

受理状态,提交成功时为 submitted。

string总是返回

任务 ID,用它轮询结果。

错误

HTTPtype说明
400invalid_request_error请求参数无效,或参数组合冲突
401authentication_error身份验证失败,需检查 API Key
402payment_required账户余额不足,需先充值
429rate_limit_error调用频率过高,稍后重试

参数错误在提交阶段同步返回,不创建任务、不扣费。

更多状态码与重试建议见错误码与限流,常见报错的排查步骤见常见问题。

查询任务

GET /v1/tasks/{task_id} 返回任务进度与结果,status 为 completed 时成片地址在 result.videos[0].url,元素带 expires_at 过期时间戳。

建议每 5 到 10 秒轮询一次,客户端总超时设为 10 到 15 分钟。status 取值 pending、processing、completed、failed、cancelled,以状态判定完成,不要依赖 progress。

失败任务自动退回费用,error.message 给出原因。