创建视频

POST /v1/videos

说明

概述

Google Gemini Veo 系列视频生成接口,支持文生视频与图生视频两种模式。走 OpenAI 兼容 Video API 异步任务流:提交任务拿 task_id → 间隔轮询 /v1/videos/{task_id} → 完成后通过 url / video_url 直链或 /v1/videos/{task_id}/content 拉取 mp4。

模型矩阵

模型名 4K 多图参考 用途
veo3 / veo-3.0-generate-001 标准 3.0
veo-3.0-fast-generate-001 3.0 快速档
veo3.1 / veo-3.1-generate-preview 标准 3.1,支持 4K
veo-3.1-fast-generate-preview 3.1 快速档
veo3.1-pro 3.1 旗舰,最高画质
veo3.1-components ✅(最多 3 张) 3.1 多图参考(Ingredients to Video)

模型名带 components 关键字时启用多图参考能力,使用 input_reference[] 多 part 上传最多 3 张参考图(角色/物体/背景),上游基于这些图保持跨镜头一致性。

提交格式

Content-Type: multipart/form-data

字段 类型 必填 说明
model string 模型名,见上表
prompt string 视频提示词
seconds string 时长(秒):4 / 6 / 8,默认 6
resolution string 分辨率:720p / 1080p / 4k(4k 仅 3.1 系列),默认 720p
aspectRatio string 比例:16:9 横屏 / 9:16 竖屏,默认 16:9
input_reference file 单张参考图(File 二进制 part),用作图生视频的起始锚点;3.0/3.1 标准款使用
input_reference[] file 多张参考图(最多 3 张),仅 *-components 模型;浏览器/客户端需以多个同名 part 形式发出

cURL 示例(文生视频)

curl https://api.openai-hub.com/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -F model="veo3.1" \
  -F prompt="一只猫在月光下跳跃,慢动作" \
  -F seconds="6" \
  -F resolution="1080p" \
  -F aspectRatio="16:9"

cURL 示例(图生视频,单图)

curl https://api.openai-hub.com/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -F model="veo3.1" \
  -F prompt="角色慢慢转身看向镜头" \
  -F seconds="6" \
  -F resolution="720p" \
  -F aspectRatio="9:16" \
  -F input_reference="@./character.jpg"

cURL 示例(多图参考,components 专属)

curl https://api.openai-hub.com/v1/videos \
  -H "Authorization: Bearer $YOUR_API_KEY" \
  -F model="veo3.1-components" \
  -F prompt="主角在指定背景里行走" \
  -F seconds="8" \
  -F resolution="1080p" \
  -F aspectRatio="16:9" \
  -F "input_reference[]=@./character.jpg" \
  -F "input_reference[]=@./background.jpg" \
  -F "input_reference[]=@./prop.jpg"

提交响应

返回 OpenAI Video Object:

{
  "id": "task_sgAaePZCzNYA2tngW6wqCiDoaqklroGV",
  "object": "video",
  "model": "veo3.1",
  "status": "queued",
  "progress": 0,
  "created_at": 1777955300,
  "seconds": "6"
}

轮询任务状态

GET /v1/videos/{task_id},建议 10s 间隔。

进行中

{
  "id": "task_sgAaePZCzNYA2tngW6wqCiDoaqklroGV",
  "status": "in_progress",
  "progress": 35
}

完成(直返 url,逆向上游典型响应)

{
  "id": "task_sgAaePZCzNYA2tngW6wqCiDoaqklroGV",
  "url": "https://pro.filesystem.site/cdn/20260505/2b0e4884a6ab5bd4215906440c3c99.mp4",
  "size": "720x1280",
  "model": "veo3.1",
  "object": "video",
  "status": "completed",
  "seconds": "5",
  "progress": 100,
  "video_url": "https://pro.filesystem.site/cdn/20260505/2b0e4884a6ab5bd4215906440c3c99.mp4",
  "created_at": 1777955300,
  "completed_at": 1777955508
}

当响应里出现 urlvideo_url 字段(mp4 直链)时,客户端可直接使用该 URL 渲染/下载视频,无需再调用 /content 接口。优先级 url > video_url

完成(无直链,需要走 /content)

{
  "id": "task_xxxx",
  "object": "video",
  "model": "veo-3.1-generate-preview",
  "status": "completed",
  "progress": 100,
  "created_at": 1777955300,
  "completed_at": 1777955508
}

响应中无 url 字段时,调 GET /v1/videos/{task_id}/content 由网关代理拉取 mp4 流。

失败

{
  "id": "task_xxxx",
  "status": "failed",
  "error": { "message": "内容审核未通过:检测到违规元素", "code": "content_policy_violation" }
}

计费

  • 计费维度:seconds × resolution_ratio × group_ratio
  • resolution_ratio:720p / 1080p = 1.0;4K 在 veo-3.1-generate-preview = 1.5veo-3.1-fast-generate-preview ≈ 2.333;3.0 系列不支持 4K(请求会被上游拒)
  • group_ratio:用户分组倍率
  • 失败任务(状态 failed)不扣费;成功提交但内容审核拒绝的任务会扣费(按 OpenAI 同款行为)

内容审核

上游对参考图与提示词均做内容审核,下列内容会被拒绝:

  • 真实人物面部特写、未成年人
  • 商标 / LOGO 等品牌识别
  • 暴力、血腥、性内容

审核失败任务状态为 failed,且消耗的配额不退

请求头

名称位置类型必填说明
AuthorizationheaderstringBearer 形式的 API Key,例如 Bearer sk-xxxx

请求体

字段类型必填说明
modelstring模型名,例如 veo3.1 / veo3.1-pro / veo3.1-components / veo-3.0-generate-001
promptstring视频提示词
secondsstring时长(秒):4 / 6 / 8,默认 6
resolutionstring分辨率:720p / 1080p / 4k(4k 仅 3.1 系列),默认 720p
aspectRatiostring比例:16:9 横屏 / 9:16 竖屏,默认 16:9
input_referencestring单张参考图(File 二进制 part),用作图生视频起始锚点;3.0/3.1 标准款
input_reference[]string多张参考图(最多 3 张),仅 *-components 模型;客户端以多个同名 part 形式发出