Veo 视频生成
POST v1/video/generationsGoogle Veo 视频生成接口(官方格式)。
端点说明:
创建视频: POST /v1/video/generations
查询状态: GET /v1/video/generations/
支持的模型(根据官方文档):
模型 分辨率 时长 特殊功能
veo-3.1-generate-preview 720p, 1080p(仅8秒), 4k(仅8秒) 4/6/8秒 图生视频、首尾帧插值、参考图片(最多3张)、视频延展
veo-3.1-fast-generate-preview 720p, 1080p(仅8秒), 4k(仅8秒) 4/6/8秒 图生视频、首尾帧插值、参考图片(最多3张)、视频延展
veo-3.0-generate-001 720p, 1080p(仅8秒), 4k(仅8秒) 4/6/8秒 图生视频、首尾帧插值
veo-3.0-fast-generate-001 720p, 1080p(仅8秒), 4k(仅8秒) 4/6/8秒 图生视频、首尾帧插值
veo-2.0-generate-001 不支持设置 5/6/8秒 图生视频、首尾帧插值
分辨率与时长约束:
720p:支持 4、6、8 秒时长
1080p:仅支持 8 秒时长
4k:仅支持 8 秒时长
视频延展(extension)时:仅支持 720p
功能说明:
1.文生视频:仅需 prompt 即可生成视频
2.图生视频:使用 image 参数提供起始帧图片(所有 Veo 模型支持)
3.首尾帧插值:使用 image + lastFrame 参数指定首尾帧(所有 Veo 模型支持)
4.参考图片引导(仅 Veo 3.1):使用 referenceImages 参数提供最多 3 张参考图片
5.视频延展(仅 Veo 3.1):使用 video 参数提供要延展的视频
personGeneration 参数说明:
Veo 3.1 文生视频/扩展:仅支持 "allow_all"
Veo 3.1 图生视频/插帧/参考图片:仅支持 "allow_adult"
Veo 3.0 文生视频:仅支持 "allow_all"
Veo 3.0 图生视频:仅支持 "allow_adult"
Veo 2.0:文生视频支持全部,图生视频支持 "allow_adult" 和 "dont_allow"
注意事项:
使用参考图片、1080p、4k 分辨率时,时长必须为 8 秒
Veo 2.0 不支持 resolution 参数
视频延展仅支持 Veo 生成的视频,且输入视频不超过 141 秒
图片/视频大小限制:
单次请求总大小不超过 10MB(Base64 编码后)
使用多张参考图片时,所有图片 Base64 编码后的总大小不超过 10MB
建议使用压缩后的图片以避免超出限制
请求参数
Authorization
在 Header 添加参数 Authorization,其值为在 Bearer 之后拼接 Token。
Authorization: Bearer ******************Header 参数
| 参数 | 类型 | 必填 | 说明 | 示例 |
|---|---|---|---|---|
| Content-Type | string | 可选 | 请求体的数据格式类型 | application/json |
| Accept | string | 可选 | 客户端期望接收的响应数据格式 | application/json |
Body 参数
Content-Type: application/json
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| model | string | 必需 | 模型 ID。推荐使用 veo-3.1-generate-preview 以支持所有高级功能(如参考图、首尾帧)。其他选项包括 veo-3.0... 或 veo-2.0...。 |
| prompt | string | 必需 | 提示词。描述视频内容、动作、风格等。 • Veo 3.x 特性:支持对话和音效提示(使用引号,如 He said, "Hello!")。 |
| negative_prompt | string | 必需 | 反向提示词。描述不希望出现在视频中的内容(如“模糊”、“变形”)。 |
| duration | integer | 必需 | 视频时长(秒)。 • Veo 3.x:支持 4、6、8(默认 8)。 • Veo 2:支持 5、6、8。 • 注意:使用参考图、首尾帧或延展功能时,固定为 8秒。 |
| resolution / size | string | 必需 | 视频分辨率。 • 720p:原生生成(默认)。 • 1080p:上采样(Veo 3.0/3.1 支持)。 • 4K / 2160p:仅 Veo 3.1 支持。 |
| aspect_ratio | string | 必需 | 宽高比。通常为 "16:9"(默认)或 "9:16"(竖屏)。 • 限制:使用参考图片时仅支持 16:9。 |
| fps | integer | 必需 | 帧率。每秒帧数(通常固定为 24fps)。 |
| style | string | 必需 | 风格预设。指定视频的视觉风格(如电影感、动画等)。 |
| guidance_scale | integer | 必需 | 引导系数。控制模型对提示词的遵循程度。 |
| seed | integer | 必需 | 随机种子。用于提高生成结果的一致性(不保证完全确定性)。 |
| n | integer | 必需 | 生成数量。一次请求生成的视频数量。 |
| audio | boolean | 可选 | 是否生成音频。 • Veo 3.x:默认 true(支持原生音频)。 • Veo 2:不支持。 |
| response_format | string | 必需 | 响应格式。指定返回数据的格式。 |
| response_type | string | 必需 | 响应类型。指定响应的具体类型。 |
| image | object | 可选 | 图生视频(起始帧)。提供一张图片作为视频的第一帧。 • 支持 imageBytes (Base64) 或 url。 • 大小限制:Base64 不超过 10MB。 |
| video | object | 可选 | 视频延展。提供一段视频以生成后续内容(Scene Extension)。 • 支持 videoBytes (Base64) 或 url。 |
| referenceImages | array [object] | 可选 | 参考图片引导(仅 Veo 3.1)。提供最多 3张 图片以保持角色/物体一致性。 • 用途:多镜头角色一致性或特定风格应用。 • 限制:此时时长固定为 8秒,仅支持 16:9。 |
| metadata | object | 可选 | 高级元数据。包含额外的配置项,如 personGeneration(人物生成权限设置)等。 |
| req_key | string | 必需 | 请求标识。用于追踪请求的唯一键值。 |
| image_urls | array[string] | 必需 | 图片链接数组。可能用于批量处理或特定的多图输入模式。 |
请求示例 (JSON)
{
"model": "veo-3",
"prompt": "A realistic 1080p video of a hot air balloon floating over a green meadow at sunrise, gentle wind, colorful wildflowers in the foreground, 20 seconds long, cinematic lighting, no blurriness",
"negative_prompt": "blurry, low resolution, watermark, text, logo, overexposed",
"duration": 20,
"resolution": "1080p",
"fps": 30,
"style": "cinematic",
"aspect_ratio": "16:9",
"guidance_scale": 9.0,
"seed": 123456789,
"response_format": "mp4",
"n": 1,
"response_type": "sync"
}返回响应
200 成功
Content-Type: application/json
响应参数
| 字段名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 必需 | 任务 ID。本次生成任务的唯一标识符。 |
| object | string | 必需 | 对象类型。通常为 "video.generation"。 |
| created | integer | 必需 | 创建时间戳。任务创建时的 Unix 时间戳。 |
| model | string | 必需 | 模型名称。执行此任务的模型 ID(例如 veo-3.1-generate-preview)。 |
| status | string | 必需 | 最终状态。此时应为 "SUCCEEDED" 或 "COMPLETED"。 |
| data | array [object] | 必需 | 结果数据数组。包含生成的视频文件信息。 |
| ├─ video_id | string | 可选 | 视频 ID。视频资源的内部标识符。 |
| ├─ url | string | 可选 | 视频下载链接。生成的视频文件的访问地址。 |
| ├─ expires_at | integer | 可选 | 过期时间戳。链接失效的时间。 |
| ├─ format | string | 可选 | 文件格式。例如 "mp4"。 |
| ├─ resolution | string | 可选 | 分辨率。例如 "1920x1080"。 |
| ├─ duration_actual | integer | 可选 | 实际时长。视频的实际播放时长(秒)。 |
| ├─ fps | integer | 可选 | 帧率。每秒帧数。 |
| ├─ aspect_ratio | string | 可选 | 宽高比。例如 "16:9"。 |
| ├─ size_bytes | integer | 可选 | 文件大小。视频文件占用的字节数。 |
| └─ variation_index | integer | 可选 | 变体索引。如果是批量生成多个视频,表示这是第几个。 |
| metadata | object | 可选 | 元数据。包含生成时的配置信息。 |
| ├─ prompt | string | 必需 | 提示词。用于生成视频的原始文本提示。 |
| ├─ negative_prompt | string | 必需 | 反向提示词。生成时使用的负面提示词。 |
| ├─ style | string | 必需 | 风格。使用的风格预设。 |
| ├─ seed | integer | 必需 | 种子值。生成时使用的随机种子。 |
| └─ guidance_scale | integer | 必需 | 引导系数。生成时使用的引导比例。 |
| generation_time_seconds | number | 必需 | 生成耗时。实际处理该任务花费的时间(秒)。 |
| usage | object | 必需 | 用量统计。关于 Token 消耗的统计信息。 |
| ├─ prompt_tokens | integer | 必需 | 提示词 Token。输入文本消耗的 Token 数。 |
| ├─ video_tokens | integer | 必需 | 视频 Token。生成视频内容消耗的 Token 数。 |
| ├─ total_tokens | integer | 必需 | 总 Token 数。此次请求的总消耗量。 |
| └─ duration_billed_seconds | integer | 必需 | 计费时长。用于计费的视频时长(秒)。 |
| error | null | 必需 | 错误信息。如果成功则为 null;如果失败则包含错误详情。 |
响应示例
{
"id": "video-gen-7f2d9c4a8b1e0c3d",
"object": "video.generation",
"created": 1741234567,
"model": "veo-3",
"status": "completed",
"data": [
{
"video_id": "vid-9a8b7c6d5e4f3b2a1",
"url": "https://veo-api-resource.xxx.com/gen/vid-9a8b7c6d5e4f3b2a1.mp4?sig=e1f2d3c4b5a6&exp=1741320967",
"expires_at": 1741320967,
"format": "mp4",
"resolution": "1080p",
"duration_actual": 20.0,
"fps": 30,
"aspect_ratio": "16:9",
"size_bytes": 125829120,
"variation_index": 0,
"metadata": {
"prompt": "A realistic 1080p video of a hot air balloon floating over a green meadow at sunrise, gentle wind, colorful wildflowers in the foreground, 20 seconds long, cinematic lighting, no blurriness",
"negative_prompt": "blurry, low resolution, watermark, text, logo, overexposed",
"style": "cinematic",
"seed": 123456789,
"guidance_scale": 9.0,
"generation_time_seconds": 38.5
}
}
],
"usage": {
"prompt_tokens": 156,
"video_tokens": 30000,
"total_tokens": 30156,
"duration_billed_seconds": 20
},
"error": null
}示例代码
import http.client
import json
conn = http.client.HTTPSConnection("nxaiapp.com")
payload = json.dumps({
"model": "veo-3",
"prompt": "A realistic 1080p video of a hot air balloon floating over a green meadow at sunrise, gentle wind, colorful wildflowers in the foreground, 20 seconds long, cinematic lighting, no blurriness",
"negative_prompt": "blurry, low resolution, watermark, text, logo, overexposed",
"duration": 20,
"resolution": "1080p",
"fps": 30,
"style": "cinematic",
"aspect_ratio": "16:9",
"guidance_scale": 9,
"seed": 123456789,
"response_format": "mp4",
"n": 1,
"response_type": "sync"
})
headers = {
'Accept': 'application/json',
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
}
conn.request("POST", "/v1/video/generations", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))