跳到导航

Veo 3.1

根据文本、一到两帧画面或最多三张参考图,生成带声音的 8 秒视频,分辨率可选 720p、1080p 或 4K;可选 Quality、Fast 或 Lite 三个档位,各自单独定价。

  • 异步:创建请求返回任务 ID,任务成功后才能拿到视频。
  • 一个模型 ID,三个档位:用 quality 选择 Quality、Fast 或 Lite,每个档位在每种分辨率下各自单独定价。
  • 没有 duration 字段:长度由模型决定,价格按条计算(价目表将其描述为带声音的 8 秒视频)。
  • 参考图需要 Fast 或 Lite:不传 quality 时使用 Fast;指定 Quality 会被拒绝。文本和帧请求默认使用 Quality。
  • 按每条视频的档位和分辨率计费,而不是按秒计费。失败的任务不收费。
POST/v1/videos/tasks试一试

在调试窗口里打开本模型,填入你的 BeatAPI API 密钥即可创建任务。调用是真实的,费用从你自己的余额中扣除。

接口与鉴权

POST https://api.beatapi.io/v1/videos/tasks

Authorization string 必需

你的 BeatAPI API 密钥,以 Bearer <BEATAPI_API_KEY> 形式发送。在控制台创建密钥。密钥只能保存在你的服务端,不要放进浏览器或移动端应用。

请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。

请求流程

1

创建任务

向接口 POST 下方的参数。返回 201 表示任务已被接受,其价格已从你的余额中预留;任务在后台运行。保存 data.id。

2

等待任务完成

调用 GET /v1/tasks/{task_id},两次调用之间等待 data.poll_after_seconds 秒(图片 5 秒,视频 8 秒),直到 status 为 succeeded 或 failed。也可以为 task.succeeded 和 task.failed 注册 Webhook;仍需保留轮询作为兜底,因为因处理超时而终止的任务不会发送事件。

3

保存结果

状态为 succeeded 时,下载每个 data.output.media[].url 并保存你需要的文件;BeatAPI 不承诺结果链接的保留时长。状态为 failed 时,读取 data.error_code 和 data.error_message:预扣的金额已退回你的余额,data.retryable 表示再次发送相同请求是否可能成功。

输入模式

模式必填输入说明
文生视频model、prompt任意档位。不传 quality 时使用 Quality。
首帧model、prompt、images(1 个链接)视频从这张图开始。任意档位。
首帧和尾帧model、prompt、images(2 个链接)images[0] 是首帧,images[1] 是尾帧。任意档位。
参考图model、prompt、reference_images(1–3 个链接)仅限 Fast 或 Lite(不传 quality 时为 Fast)。aspect_ratio 必须是 16:9 或 9:16。不能与 images 同时使用。

请求参数

model string 必需

要运行的模型。Veo 3.1 只有一个 ID,档位通过 quality 选择。

取值:veo-3.1

取值有误时

  • 未传:"model" is required
  • 把图片模型发到了这个端点:"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint

prompt string 必需

视频里发生什么:主体、动作、运镜、风格和声音。

长度:1–5000 个字符

  • 长度按字符数计算(一个中日韩字符算一个字符)。
  • 使用参考图时,说明每张图的用途,并按位置引用,例如“第一张参考图”。

取值有误时

  • 未传:"prompt" is required
  • 为空或超过长度上限:"prompt" has an unsupported length

quality string 可选

档位:Quality、Fast 或 Lite。每个档位在每种分辨率下各自单独定价。

可选值:Quality, Fast, Lite

  • 取值区分大小写:写 Fast,不要写 fast。
  • 不传时:文本和帧请求使用 Quality;参考图请求使用 Fast,即支持参考图的较便宜档位。
  • Quality 不能与 reference_images 一起使用。请传 Fast 或 Lite,或不传 quality。
  • 档位决定价格,见“计费”。完成的任务上的 usage 会显示实际扣费。

不传 quality 时,各模式的价格并不相同:文本和帧请求按最贵的 Quality 档计费。请明确传入 quality。

取值有误时

  • 取值不在列表中:"quality" must be one of: [Quality Fast Lite]
  • Quality 与 reference_images 同时传:Veo 3.1 Quality does not support reference images

images string[] 可选

一张首帧,或一张首帧加一张尾帧。

数量:1–2
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。

  • 一个链接:视频从这张图开始。两个链接:images[0] 是首帧,images[1] 是尾帧。
  • 若要传入引导视频、但不作为帧的图片,请使用 reference_images(Fast 或 Lite)。

取值有误时

  • 多于两个链接:"images" accepts at most 2 items
  • 空数组:"images" requires at least 1 item
  • 与 reference_images 同时传:Cannot combine "images" with reference inputs in one task
  • 不是 https:// 链接:"images[0]" must be a public HTTPS URL

reference_images string[] 可选

一到三张图片,用来引导视频的内容、角色或风格。

数量:1–3
每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。

  • 需要 Fast 或 Lite。不传 quality 时使用 Fast。
  • aspect_ratio 必须是 16:9 或 9:16(不传则为 16:9)。
  • 图片按列表顺序使用;在提示词中按位置引用。

取值有误时

  • 多于三个链接:"reference_images" accepts at most 3 items
  • 空数组:"reference_images" requires at least 1 item
  • 与 images 同时传:Cannot combine "images" with reference inputs in one task
  • 搭配 quality: "Quality":Veo 3.1 Quality does not support reference images
  • 搭配 aspect_ratio: "auto":Veo 3.1 reference mode requires aspect_ratio 16:9 or 9:16

aspect_ratio string 可选默认值: 16:9

视频的宽高比(宽:高)。auto 表示由模型决定。

可选值:16:9, 9:16, auto
默认值:16:9

  • 使用 reference_images 时不接受 auto:请用 16:9 或 9:16。

取值有误时

  • 取值不在列表中:"aspect_ratio" must be one of: [16:9 9:16 auto]
  • auto 与 reference_images 同时传:Veo 3.1 reference mode requires aspect_ratio 16:9 or 9:16

resolution string 可选默认值: 720p

输出分辨率。每个档位在每种分辨率下各有价格;4K 最贵。

可选值:720p, 1080p, 4k
默认值:720p

  • 4k 和 4K 含义相同,两者都接受。其他取值为小写。
  • 价目表中将该档位写作 4K。

取值有误时

  • 取值不在列表中(例如 1080P):"resolution" must be one of: [720p 1080p 4k 4K]

watermark string 可选

可选的水印文字,原样传给模型。不传则使用模型的默认行为。

  • 它是字符串,不是开关:传 true 或 false 会被拒绝。

取值有误时

  • 不是字符串:"watermark" must be a string

enable_translation boolean 可选

作为模型的提示词翻译开关原样传给模型。不传则使用模型的默认行为。

取值有误时

  • 不是 true 或 false:"enable_translation" must be a boolean

网关还会在创建任务之前检查以下组合:

  • images 不能与参考素材字段同时使用。

输入素材限制

网关会在创建任务之前读取每一项输入,超出这些限制的输入会被拒绝,并返回点名该输入的 400 bad_request。不扣费。

  • 网关在创建任务前只检查每张图片是否为公开 HTTPS 链接,不会检查大小、格式或尺寸。因此模型无法使用的图片会在提交后导致任务失败;失败信息会说明需要修改什么,并全额退还预扣费用。
  • 只有本地文件?先用 POST /v1/files 上传,再传入返回的 data.url。

选择档位

一个模型 ID 涵盖三个档位。它们是价格各不相同的独立产品,用 quality 选择。

quality文本和帧参考图不传 quality 时
Quality接受拒绝用于文本和帧请求
Fast接受接受用于参考图请求
Lite接受接受不会替你选择
  • 各分辨率下的价格见“计费”下方的表格。在每种分辨率下,Quality 都是最贵的档位,Lite 都是最便宜的。

该模型不接受的字段

传入下列字段会在扣费前被拒绝,而不是被忽略:

  • duration → field "duration" is not supported by model veo-3.1。每条 Veo 3.1 视频都是 8 秒,没有可选项。
  • reference_videos、reference_audios、generate_audio、seed、sound、task_type、output_format → field "<name>" is not supported by model veo-3.1(其中是你传入的字段名)。没有用于开启或关闭声音的字段。
  • 其他任何未知字段 → unknown field: <name>。

请求示例

curl --request POST \
--url https://api.beatapi.io/v1/videos/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "veo-3.1",
"prompt": "A slow tracking shot along a rain-lit night market, neon reflections on wet stone, ambient crowd sound",
"quality": "Fast",
"aspect_ratio": "16:9",
"resolution": "720p"
}'

文生视频(Fast)

Fast 档位的 8 秒 720p 片段。特意传了 quality:不传的话,文本请求会按 Quality 计费。

curl --request POST \
--url https://api.beatapi.io/v1/videos/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "veo-3.1",
"prompt": "A slow tracking shot along a rain-lit night market, neon reflections on wet stone, ambient crowd sound",
"quality": "Fast",
"aspect_ratio": "16:9",
"resolution": "720p"
}'

文生视频(Quality,1080p)

Quality 档位,1080p 竖屏。

curl --request POST \
--url https://api.beatapi.io/v1/videos/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "veo-3.1",
"prompt": "A cinematic aerial reveal of a quiet coastal village at sunrise, gulls calling, waves on the shore",
"quality": "Quality",
"aspect_ratio": "9:16",
"resolution": "1080p"
}'

文生视频(Lite,4K)

4k 和 4K 是同一个值。

curl --request POST \
--url https://api.beatapi.io/v1/videos/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "veo-3.1",
"prompt": "A close-up of coffee being poured into a white cup, steam rising, soft kitchen sounds",
"quality": "Lite",
"aspect_ratio": "16:9",
"resolution": "4k"
}'

首帧和尾帧

视频从第一张图过渡到第二张图。images 只传一个链接时,视频从该图开始。

curl --request POST \
--url https://api.beatapi.io/v1/videos/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "veo-3.1",
"prompt": "The camera pushes in from the bottle on the table to the singer on a neon stage in one continuous move",
"images": [
"https://media.beatapi.io/samples/smart-bottle.png",
"https://media.beatapi.io/samples/neon-singer.png"
],
"quality": "Quality",
"aspect_ratio": "16:9",
"resolution": "720p"
}'

参考图

需要 Fast 或 Lite,且 aspect_ratio 为 16:9 或 9:16。

curl --request POST \
--url https://api.beatapi.io/v1/videos/tasks \
--header "Authorization: Bearer $BEATAPI_API_KEY" \
--header 'Content-Type: application/json' \
--data '{
"model": "veo-3.1",
"prompt": "The singer from the second reference image walks past the bottle from the first reference image on a neon street, handheld camera",
"reference_images": [
"https://media.beatapi.io/samples/smart-bottle.png",
"https://media.beatapi.io/samples/neon-singer.png"
],
"quality": "Fast",
"aspect_ratio": "16:9",
"resolution": "720p"
}'

响应

创建任务(201)

任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。

{
"data": {
"id": "task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ",
"object": "task",
"task_kind": "video",
"capability_id": "veo-3.1",
"capability_version": 1,
"media_type": "video",
"model": "veo-3.1",
"status": "queued",
"stage": "queued",
"created_at": 1791993600,
"updated_at": 1791993600,
"completed_at": null,
"poll_after_seconds": 8,
"output": null,
"usage": {
"credits_reserved": 0.3,
"credits_settled": 0,
"credits_refunded": 0,
"credits_charged": 0.3
},
"request_id": "req_5f0c2a9e4b7d4e31",
"error_code": null,
"error_message": null
}
}
字段类型说明
data.idstring任务 ID:task_ 后接 32 位字母和数字。用于轮询以及匹配 Webhook 事件。
data.objectstring固定为 task。
data.task_kindstringimage 或 video。
data.capability_idstring你发送的模型 ID。
data.capability_versioninteger模型的契约版本,当前为 1。
data.media_typestringimage 或 video。
data.modelstring你发送的模型 ID(与 capability_id 相同)。
data.statusstringqueued、processing、succeeded 或 failed。只有后两个是终态。
data.stagestring与 status 相同;为旧版客户端保留。
data.created_atinteger任务创建时间,Unix 秒。
data.updated_atinteger最后一次变更时间,Unix 秒。
data.completed_atinteger | null任务结束时间,Unix 秒;运行中为 null。
data.poll_after_secondsinteger运行中:下一次轮询前需要等待的秒数(图片 5,视频 8)。
data.typical_secondsobject运行中且近期样本足够时出现:在最近的 window 内,根据 samples 个任务统计的完成时间 p50 和 p90,单位为秒。
data.outputobject | null任务结果;status 为 succeeded 之前为 null。见下方输出字段。
data.usage.credits_reservednumber创建任务时从你的余额中预扣的美元金额。
data.usage.credits_chargednumber该任务的费用(美元);失败的任务为 0。
data.usage.credits_settlednumber最终结算扣除的美元金额;任务成功时设置,否则为 0。
data.usage.credits_refundednumber退回你余额的美元金额;失败的任务在退款记录完成后等于预扣金额。
data.usage.billable_duration_secondsinteger仅视频:计价所依据的秒数。模型未上报时长时不出现。
data.request_idstring请求 ID。联系支持时请附上。
data.error_codestring | null失败码;任务未失败时为 null。
data.error_messagestring | null出了什么问题以及该改什么;任务未失败时为 null。

任务完成

GET /v1/tasks/{task_id} 返回 HTTP 200 和 status: "succeeded",结果在 data.output 中。

{
"data": {
"id": "task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ",
"object": "task",
"task_kind": "video",
"capability_id": "veo-3.1",
"capability_version": 1,
"media_type": "video",
"model": "veo-3.1",
"status": "succeeded",
"stage": "succeeded",
"created_at": 1791993600,
"updated_at": 1791993690,
"completed_at": 1791993690,
"output": {
"media": [
{
"type": "video",
"url": "https://media.beatapi.io/outputs/task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ/0.mp4",
"mime_type": "video/mp4"
}
],
"r2_url": "https://media.beatapi.io/outputs/task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ/0.mp4"
},
"usage": {
"credits_reserved": 0.3,
"credits_settled": 0.3,
"credits_refunded": 0,
"credits_charged": 0.3
},
"request_id": "req_5f0c2a9e4b7d4e31",
"error_code": null,
"error_message": null
}
}

输出字段

字段类型说明
output.mediaobject[]生成的文件;该模型为一条 8 秒视频。
output.media[].typestring固定为 video。
output.media[].urlstring已存储视频的 HTTPS 链接。请下载并自行保存,不承诺保留期限。
output.media[].mime_typestring文件的媒体类型,通常为 video/mp4。
output.r2_urlstring再次给出视频 URL,供旧版客户端使用。请改为读取 media。

任务失败

失败的任务在 GET /v1/tasks/{task_id} 上仍然是 HTTP 200:失败信息在响应体里。预扣金额会全额退回,因此不会扣费。

{
"data": {
"id": "task_7Qm2Xc9LpR4vT8sKa1Nf6YbH3eWdJ0uZ",
"object": "task",
"task_kind": "video",
"capability_id": "veo-3.1",
"capability_version": 1,
"media_type": "video",
"model": "veo-3.1",
"status": "failed",
"stage": "failed",
"created_at": 1791993600,
"updated_at": 1791993690,
"completed_at": 1791993690,
"output": null,
"usage": {
"credits_reserved": 0.3,
"credits_settled": 0,
"credits_refunded": 0.3,
"credits_charged": 0
},
"retryable": true,
"request_id": "req_5f0c2a9e4b7d4e31",
"error_code": "processing_failed",
"error_message": "The task failed during processing on our side. Retry; a failed task is refunded."
}
}
字段类型说明
data.error_codestringbad_request 和 content_policy_violation(需修改请求)之一,或 processing_unavailable、processing_timeout、processing_failed 和 result_transfer_failed(稍后重试)之一。见错误码。
data.error_messagestring一句话,指出问题和处理方式。
data.retryableboolean仅在任务失败时出现:为 true 表示再次发送相同请求可能成功。
data.usageobject退款记录完成后(通常就在任务失败的那一刻):credits_charged 和 credits_settled 为 0;credits_refunded 等于 credits_reserved。

完整示例

创建任务,按服务端给出的轮询提示等待,然后打印结果链接。请在环境变量中设置 BEATAPI_API_KEY 并安装 requests。

import os
import time
import uuid
import requests
API = "https://api.beatapi.io"
HEADERS = {"Authorization": f"Bearer {os.environ['BEATAPI_API_KEY']}"}
def create_task(body: dict) -> dict:
# One Idempotency-Key per logical request: a retry with the same key cannot create a second task.
headers = {**HEADERS, "Idempotency-Key": str(uuid.uuid4())}
for attempt in range(3):
response = requests.post(f"{API}/v1/videos/tasks", headers=headers, json=body, timeout=60)
if response.status_code in (429, 503) and attempt < 2:
time.sleep(int(response.headers.get("Retry-After", 10)))
continue
break
try:
payload = response.json()
except ValueError: # an edge error page is not JSON
response.raise_for_status()
raise
if not response.ok:
error = payload["error"]
raise RuntimeError(f"{response.status_code} {error['code']}: {error['message']} (request_id={error.get('request_id')})")
return payload["data"]
def wait_for_task(task_id: str, timeout_seconds: int = 1800) -> dict:
deadline = time.monotonic() + timeout_seconds
while time.monotonic() < deadline:
response = requests.get(f"{API}/v1/tasks/{task_id}", headers=HEADERS, timeout=30)
if response.status_code == 429 or response.status_code >= 500:
time.sleep(int(response.headers.get("Retry-After", 10)))
continue
response.raise_for_status()
task = response.json()["data"]
if task["status"] in ("succeeded", "failed"):
return task
time.sleep(task.get("poll_after_seconds", 5))
raise TimeoutError(f"task {task_id} is still running; keep polling later")
task = create_task({
"model": "veo-3.1",
"prompt": "A slow tracking shot along a rain-lit night market, neon reflections on wet stone, ambient crowd sound",
"quality": "Fast",
"aspect_ratio": "16:9",
"resolution": "720p"
})
print("created", task["id"])
task = wait_for_task(task["id"])
if task["status"] == "failed":
raise SystemExit(f"{task['error_code']}: {task['error_message']}")
for item in task["output"]["media"]:
print(item["url"])

计费

  • 按条计费,而不是按秒:每条视频都是 8 秒,价格取决于档位(quality)和分辨率。已包含声音。
  • 下方列表中,每个档位和分辨率各占一行。在每种分辨率下,Quality 都是最贵的档位,Lite 都是最便宜的;同一档位内,4K 最贵。
  • 不传 quality 时,文本或帧请求按 Quality 计费,参考图请求按 Fast 计费。想确定价格,请传 quality。
  • 价格在创建任务时预扣,视频生成完成后结算。任务失败(包括提交后被内容审核拒绝)会全额退款。

当前牌价,与价格页一致。享有协商折扣的账户实付更低;任务的 data.usage 始终显示实际扣费金额。

选项牌价(美元)
8 秒 · Lite · 720p · 含音频$0.15
8 秒 · Lite · 1080p · 含音频$0.25
8 秒 · Lite · 4K · 含音频$0.75
8 秒 · Fast · 720p · 含音频$0.3
8 秒 · Fast · 1080p · 含音频$0.4
8 秒 · Fast · 4K · 含音频$0.9
8 秒 · Quality · 720p · 含音频$1.85
8 秒 · Quality · 1080p · 含音频$1.9
8 秒 · Quality · 4K · 含音频$2.5

常见错误

错误或现象原因处理方式
400 Veo 3.1 Quality does not support reference imagesquality: "Quality" 与 reference_images 一起传了。传 Fast 或 Lite,或不传 quality(会使用 Fast)。
400 Veo 3.1 reference mode requires aspect_ratio 16:9 or 9:16aspect_ratio: "auto" 与 reference_images 一起传了。传 16:9 或 9:16,或不传。
400 Cannot combine "images" with reference inputs in one task同一请求中同时传了帧(images)和 reference_images。只用帧或只用参考图,不要两者并用。
400 field "duration" is not supported by model veo-3.1Veo 3.1 的视频固定为 8 秒,所以没有 duration 字段。删除 duration。
400 "quality" must be one of: [Quality Fast Lite]拼写不同,例如 fast 或 quality。传 Quality、Fast 或 Lite,首字母大写。
400 "watermark" must be a stringwatermark 传成了 true 或 false。传文字,或删除该字段。
账单比预期高文本或帧请求没有传 quality,因此按 Quality 计费。传 quality: "Fast" 或 "Lite";查看任务上的 usage.credits_charged。
任务 failed,原因为 content_policy_violation提示词、输入图片或生成结果被内容审核拒绝。修改提示词或图片。原样重试仍会失败;不收费。
402 insufficient_credits余额低于该档位和分辨率的价格。充值,或选择更便宜的档位或分辨率。

HTTP 错误速查

任务生成之前的错误会以非 2xx 响应返回,不扣费。请根据 error.code 或 error.retryable 判断处理方式;message 会指出问题所在。完整列表和重试策略见错误码。

{
"error": {
"code": "bad_request",
"message": "\"prompt\" is required",
"retryable": false,
"request_id": "req_5f0c2a9e4b7d4e31"
}
}
HTTP 状态码error.code处理方式
400bad_request, content_policy_violation修改请求;message 会点名出错的字段。不要原样重试。
401missing_api_key, invalid_api_key(旧版客户端可能看到 unauthorized)以 Authorization: Bearer <key> 发送有效的密钥。
402insufficient_credits充值,或提高密钥的额度,然后重新发送。
403forbidden该密钥或账户不能使用此模型(例如免费额度只覆盖部分模型)。不要原样重试。
404not_found在 GET /v1/tasks/{task_id} 上:该任务在此密钥所属账户下不存在。请检查 ID。
409idempotency_conflict换一个新的 Idempotency-Key,或等待使用该键的第一个请求完成。
429rate_limit_exceeded等待 Retry-After 秒(也见 error.retry_after_seconds)后重试。
500internal_error退避重试;若持续出现,请带上 request_id 联系支持。
503processing_unavailable, processing_timeout, processing_failed, result_transfer_failed未扣费。使用指数退避重试。

身份验证

AuthorizationBearer

Send your API key as Authorization: Bearer <BEATAPI_API_KEY>.

请求头

Idempotency-Keystring可选<=255 characters

请求体使用 JSON,并设置 Content-Type: application/json。Idempotency-Key 为可选:每个逻辑请求发送一个唯一值(最长 255 个字符),仅在重试完全相同的请求体时复用。24 小时内,用相同的键和请求体重试会再次返回第一次的响应,并带上 Idempotent-Replayed: true;相同的键搭配不同的请求体则返回 409 idempotency_conflict。非 2xx 的响应不会被保存,因此 400 或 402 之后的重试会重新执行。

请求

This endpoint expects an object.
modelenum必需

要运行的模型。Veo 3.1 只有一个 ID,档位通过 quality 选择。

取值:veo-3.1

取值有误时

  • 未传:"model" is required
  • 把图片模型发到了这个端点:"model" nano-banana-2 is served by POST /v1/images/tasks, not this endpoint
允许的值:
promptstring必需1-5000 characters

视频里发生什么:主体、动作、运镜、风格和声音。

长度:1–5000 个字符

  • 长度按字符数计算(一个中日韩字符算一个字符)。
  • 使用参考图时,说明每张图的用途,并按位置引用,例如“第一张参考图”。

取值有误时

  • 未传:"prompt" is required
  • 为空或超过长度上限:"prompt" has an unsupported length
aspect_ratioenum可选默认为 16:9

视频的宽高比(宽:高)。auto 表示由模型决定。

可选值:16:9, 9:16, auto

默认值:16:9

  • 使用 reference_images 时不接受 auto:请用 16:9 或 9:16。

取值有误时

  • 取值不在列表中:"aspect_ratio" must be one of: [16:9 9:16 auto]
  • auto 与 reference_images 同时传:Veo 3.1 reference mode requires aspect_ratio 16:9 or 9:16
允许的值:
enable_translationboolean可选

作为模型的提示词翻译开关原样传给模型。不传则使用模型的默认行为。

取值有误时

  • 不是 true 或 false:"enable_translation" must be a boolean
imageslist of strings可选

一张首帧,或一张首帧加一张尾帧。

数量:1–2

每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。

  • 一个链接:视频从这张图开始。两个链接:images[0] 是首帧,images[1] 是尾帧。
  • 若要传入引导视频、但不作为帧的图片,请使用 reference_images(Fast 或 Lite)。

取值有误时

  • 多于两个链接:"images" accepts at most 2 items
  • 空数组:"images" requires at least 1 item
  • 与 reference_images 同时传:Cannot combine "images" with reference inputs in one task
  • 不是 https:// 链接:"images[0]" must be a public HTTPS URL
qualityenum可选

档位:Quality、Fast 或 Lite。每个档位在每种分辨率下各自单独定价。

可选值:Quality, Fast, Lite

  • 取值区分大小写:写 Fast,不要写 fast。
  • 不传时:文本和帧请求使用 Quality;参考图请求使用 Fast,即支持参考图的较便宜档位。
  • Quality 不能与 reference_images 一起使用。请传 Fast 或 Lite,或不传 quality。
  • 档位决定价格,见“计费”。完成的任务上的 usage 会显示实际扣费。

说明:不传 quality 时,各模式的价格并不相同:文本和帧请求按最贵的 Quality 档计费。请明确传入 quality。

取值有误时

  • 取值不在列表中:"quality" must be one of: [Quality Fast Lite]
  • Quality 与 reference_images 同时传:Veo 3.1 Quality does not support reference images
允许的值:
reference_imageslist of strings可选

一到三张图片,用来引导视频的内容、角色或风格。

数量:1–3

每一项都必须是公网 https:// 链接。本地文件请先上传(POST /v1/files),再传入返回的 data.url。

  • 需要 Fast 或 Lite。不传 quality 时使用 Fast。
  • aspect_ratio 必须是 16:9 或 9:16(不传则为 16:9)。
  • 图片按列表顺序使用;在提示词中按位置引用。

取值有误时

  • 多于三个链接:"reference_images" accepts at most 3 items
  • 空数组:"reference_images" requires at least 1 item
  • 与 images 同时传:Cannot combine "images" with reference inputs in one task
  • 搭配 quality: "Quality":Veo 3.1 Quality does not support reference images
  • 搭配 aspect_ratio: "auto":Veo 3.1 reference mode requires aspect_ratio 16:9 or 9:16
resolutionenum可选默认为 720p

输出分辨率。每个档位在每种分辨率下各有价格;4K 最贵。

可选值:720p, 1080p, 4k

默认值:720p

  • 4k 和 4K 含义相同,两者都接受。其他取值为小写。
  • 价目表中将该档位写作 4K。

取值有误时

  • 取值不在列表中(例如 1080P):"resolution" must be one of: [720p 1080p 4k 4K]
允许的值:
watermarkstring可选

可选的水印文字,原样传给模型。不传则使用模型的默认行为。

  • 它是字符串,不是开关:传 true 或 false 会被拒绝。

取值有误时

  • 不是字符串:"watermark" must be a string

响应

任务对象。任务成功之前 output 为 null。标注“运行中”的字段会在任务结束后消失。

错误

400
Bad Request Error
401
Unauthorized Error
402
Payment Required Error
403
Forbidden Error
409
Conflict Error
429
Too Many Requests Error
500
Internal Server Error
503
Service Unavailable Error