1. Veo(Google 视频生成)
心流API 接口文档
  • 引言
  • 在线调试说明
  • 发出请求
  • 中转站基本介绍
    • API 快速开始指南
    • 联系客服
    • 代理接口调用地址
    • API Key 额度查询服务
  • 通用接口
    • 文本通用接口
      POST
    • 图片通用接口
      POST
    • 视频通用接口
      POST
  • 图像模型
    • GPT Image 2(OpenAI 生图)
      • GPT Image 2 文生图
      • GPT Image 2 图生图(编辑)
    • Gemini Nano Banana(Google 生图)
      • Gemini Nano Banana 图片生成
      • 文本通用接口(Gemini 原生格式)
    • Grok Imagine(xAI 生图)
      • Grok 文生图(同步)
  • 视频模型
    • Grok Imagine 1.0 视频
      • Grok Imagine 1.0 视频生成
    • Grok Imagine 1.5 Video Preview(xAI 文生/图生视频)
      • Grok Imagine Video Preview 视频生成
      • Grok Imagine Video 1.5 Preview 视频生成
    • Grok Imagine 1.5 720p(xAI 图生视频)
      • Grok Imagine 1.5 Super 视频生成
    • Veo(Google 视频生成)
      • Veo 视频生成
        POST
      • Veo 视频延长(Extend)
        POST
    • Omni 系列(omni_flash · 文生 / 图生 / 视频修改)
      • Omni 视频生成(omni_flash-10s)
    • Grok Video 3 系列(xAI 新族)
      • Grok Video 3 视频生成
    • Sora 2(OpenAI 视频生成)
      • Sora 2 视频生成
    • Grok Video 10s
      • Grok Video 6s/10s/12s 视频生成
    • HappyHorse 1.0 系列(阿里淘天)
      • HappyHorse 1.0 视频生成
    • 豆包 Seedance 2.0 Fast
      • 豆包 Seedance 2.0 Fast 视频生成
    • 视频任务查询(共用)
      GET
    • 视频内容下载(共用)
      GET
  • 系统 API(客户可用)
    • 拉取模型列表
    • 查询当前令牌用量
    • 系统状态 / 公告
  • 各种插件/软件使用教程
    • Codex 配置教程
    • OpenClaw Clawdbot 自定义中转站配置教程
    • N8N 工作流使用中转API 教程
    • opencode 配置教程
    • Gemini CLI 中转站配置使用教程
    • Claude Code 安装使用教程
    • CherryStudio调用cluade MCP
    • Cherry Studio配置教程
    • Cherry Studio配置 banana pro 4K和分辨率教程
    • CherryStudio配置o4推理级别
    • 扣子工作流简单配置从输入到获取url
    • dify添加模型
    • cline 配置教程
    • aider 配置教程
    • Cursor 配置教程
    • lobechat 设置教程
    • ChatBox(推荐使用)
    • 开源gpt_academic
    • nextchat 设置教程
    • zotero gpt 配置方法
    • CLAUDE DEV 配置教程
    • 沉浸式翻译 设置gpt翻译
    • 浏览器插件ChatGPT Sidebar
    • chatgpt-on-wechat 配置教程
    • chatgpt GPT Academic 学术优化配置gpt教程
    • RikkaHub 配置教程
    • coze 工作流使用中转API 教程
    • n8n 工作流获取本地图片生成视频例子
    • OpenClaw 最新版本 自定义中转站配置教程
    • OpenClaw配合CC switch自定义中转站配置教程
  • 帮助中心
    • AI返回字段: 思考相关
    • HTTP状态码及其含义
    • 自建图床API
  • Python配置方式
    • python 使用 语音转文本
    • python 使用文本转语音
    • python 使用Embeddings 向量化
    • python 调用DALL·E
    • python简单调用 openai function-calling demo
    • python 简单langchain 调用openai demo
    • python llama_index 配置
    • Python基础对话
    • Python使用gpt-4o识别图片-本地图片
    • Python使用gpt-4o识别图片
    • Python使用Claude识别图片
    • python 库流式输出
    • gpt realtime模型调用
    • python request 请求 流式输出demo
    • python 使用gpt-image-1 创建编辑图片
    • python openai官方库(使用AutoGPT,langchain等)
    • python 连续对话
  • php配置方式
    • php使用图片编辑demo
  • nodejs 配置方式
    • nodejs 基础对话
  1. Veo(Google 视频生成)

Veo 视频延长(Extend)

POST
/v1/videos

Veo 视频延长#

基于已生成的 Veo 视频继续生成续集。视频延长仅在原视频生成后 12 小时内有效,超时后报「任务不存在」。
走与 Veo 视频生成相同的 POST /v1/videos 路径,通过 model=veo_3_1-fast-extend 区分。

不支持延长的 model#

veo_3_1-lite(提交时 size 字段直接返回真实尺寸如 1280x720,不返 video_xxx remix_id 兜底值)。如果原视频用 lite 生成,无法延长。

接入地址#

线路Base URL
国内加速(推荐)https://cdn.wusag.com
海外直连https://api.xinliu.one

请求#

方法:POST {Base URL}/v1/videos
Header:
Authorization: Bearer 你的令牌
Content-Type: multipart/form-data(推荐)或 application/json

参数#

字段类型必填说明
modelstring是固定 veo_3_1-fast-extend
remix_idstring是原视频的 video_id(格式 video_<uuid>),获取方式见下
promptstring是延长视频的提示词描述

如何获取 remix_id#

方法 1(推荐):原视频任务进入 completed 后,从轮询返回的 remix_id 字段直接读取。
方法 2(兜底):原视频提交瞬间返回 JSON 的 data.size 字段就是 video_<uuid> 形式,与 remix_id 同值;提交瞬间 JSON 里没有 data.remix_id 字段,只有 size 字段可用。任务进入 processing/completed 后 size 仍是 video_xxx(不像旧文档说的会变回真尺寸),但 remix_id 字段会另外出现。
veo_3_1-lite 例外:提交瞬间 size 直接 = 1280x720 真实尺寸,没有可用的 remix_id 来源。

multipart 示例#

JSON 示例#

提交后立即返回#

{
  "id": "task_L8U9zbndRbBvple5xYGQ3HBzeeUvlZWu",
  "task_id": "task_L8U9zbndRbBvple5xYGQ3HBzeeUvlZWu",
  "object": "video",
  "model": "veo_3_1-fast-extend",
  "status": "queued",
  "progress": 0,
  "seconds": "0",
  "size": "video_540c03e7-8332-4dfc-9ed2-9adedacc6ad1",
  "remix_id": "video_540c03e7-8332-4dfc-9ed2-9adedacc6ad1",
  "remixed_from_video_id": "ab5cc8a6-fc79-4266-b17d-ec55f33462d2",
  "created_at": 1778147858
}
字段说明:
size:返回 video_<uuid> 形式,这就是延长任务自己的 remix_id——意味着延长视频还能再次延长(继续叠 7 秒)
remix_id:与 size 同值的独立字段,提交瞬间就返回
remixed_from_video_id:原视频 ID(已自动去掉 video_ 前缀),与提交时传的 remix_id 字段对应
seconds:multipart 提交时返回 "0"(不可信);JSON 提交时不返回该字段
返回新的 task_id,仍走 GET /v1/videos/{task_id} 轮询,completed 后从 video_url 拉视频。

任务完成响应#

{
  "id": "task_J0SmvXNGrJVOFWCk45XrmVCrNcz4w2eB",
  "task_id": "task_J0SmvXNGrJVOFWCk45XrmVCrNcz4w2eB",
  "object": "video",
  "model": "veo_3_1-fast-extend",
  "status": "completed",
  "size": "video_a8721965-3546-4a6c-a7ca-4b75ff4b8115",
  "remix_id": "video_a8721965-3546-4a6c-a7ca-4b75ff4b8115",
  "remixed_from_video_id": "2732f143-4f0b-4168-950b-a0b62f151e1f",
  "video_url": "https://.../videos/video_<uuid>_<timestamp>?...",
  "storage_type": "local",
  "expire_at": 1778166397402,
  "created_at": 1778147859,
  "completed_at": 1778147992
}
字段说明:
video_url:延长后的 7 秒视频文件直链。
expire_at:毫秒级 Unix 时间戳,文件过期时间。约 5 小时后失效,客户必须在过期前下载到本地。
storage_type: "local":视频文件由服务端自存提供。
remix_id / size:都是延长任务自己的 video_<uuid>,意味着这段延长视频还能再次作为延长源(再叠 7 秒)。
remixed_from_video_id:原视频 ID(去掉 video_ 前缀)。

错误返回(remix_id 无效或超时)#

{
  "code": "do_response_failed",
  "message": "upstream error: code=fail_to_fetch_task, message=任务不存在(traceid: ...)"
}

15 秒视频拼接流程#

心流不提供「一步生成 15 秒视频」的合成 model。要 15 秒成片,组合已有两个接口两步走:

流程#

1.
调用「Veo 视频生成」接口生成第一段 8 秒视频,提交瞬间从 data.size(值是 video_<uuid> 形式)保存为 remix_id
2.
轮询 GET /v1/videos/{task_id} 等到原视频 status=completed,从 video_url 下载第一段 8s mp4
3.
12 小时内调用本接口(model=veo_3_1-fast-extend)+ remix_id + prompt(后 7 秒提示词)生成第二段
4.
轮询第二段任务到 completed,从 video_url 下载第二段 7s mp4
5.
客户端拼接两段视频(ffmpeg concat 等)得到 15 秒成片

第一步 · 生成 8 秒视频#

提交瞬间记 data.size(如 video_ab5cc8a6-fc79-4266-b17d-ec55f33462d2),这个值就是后面要传的 remix_id。

第二步 · 延长 7 秒#

第三步 · 客户端拼接(ffmpeg 示例)#

下载两段视频到本地后用 ffmpeg 的 concat demuxer 无重编码拼接:
前提:两段视频编码格式 / 帧率 / 分辨率一致。本接口与「Veo 视频生成」用同一 base model 系列时(如都用 -fast 派生),编码参数会自动对齐。
过期窗口提醒:第二段延长视频 data.expire_at(毫秒时间戳)约 5 小时后失效,第一段视频签名链接也是有过期时间的(24h 左右)。客户拼接前必须先把两段下载到本地,别留链接给前端拼接(用户打开慢就过期了)。

不支持本流程的 model#

veo_3_1-lite(提交时 data.size 直接是真实尺寸如 1280x720,不返 video_<uuid> remix_id 兜底值)。lite 视频不能用作延长源。

任务级失败(异步任务进 failed 状态)#

multipart 与 JSON 两种提交方式稳定性差异:
提交方式稳定性
application/json稳定,2~3 分钟内完成
multipart/form-data偶发 task.error.message: "connection error: FLOW_CONTROL_ERROR",任务进 failed 状态(HTTP/2 边缘流控异常,与接口参数无关,重试可恢复)
失败示例:
{
  "id": "task_xxx",
  "model": "veo_3_1-fast-extend",
  "object": "video",
  "status": "failed",
  "error": { "message": "connection error: FLOW_CONTROL_ERROR" },
  "status_update_time": 1778148396
}
建议:延长任务优先用 JSON body 提交,遇到 FLOW_CONTROL_ERROR 重试一次即可。

任务级失败 - 内容安全审核拒绝#

Google Veo 对每个任务都会做内容审核。提交时 200 拿到 task_id,但审核不通过的任务会进 status: failed,错误体如下:
{
  "id": "task_xxx",
  "status": "failed",
  "status_update_time": 1778211452,
  "error": {
    "message": "提交中含有违反平台政策的内容,请你立即停止或调整你的提交内容"
  }
}
常见触发场景:
涉及暴力 / 色情 / 仇恨 / 未成年人不当内容
真实人物(明星 / 政治人物 / 普通人肖像)的图生视频
政治敏感、特定地区敏感主题
版权 IP 角色(迪士尼 / 漫威 / 卡通 IP 等)
参考图本身被识别为违规(即便 prompt 没问题)
处理方式:调整 prompt 措辞 / 更换参考图 / 避开敏感主题后重新提交。本类失败按任务失败计,不消耗额度。

错误码#

HTTP触发场景
400remix_id 格式错或漏 prompt
401令牌无效
404remix_id 不存在或超过 12 小时
503模型不存在

请求参数

Authorization
在 Header 添加参数
Authorization
,其值为在 Bearer 之后拼接 Token
示例:
Authorization: Bearer ********************
Header 参数

Body 参数application/json

示例
{
    "model": "string",
    "remix_id": "string",
    "prompt": "string"
}

请求示例代码

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
请求示例请求示例
Shell
JavaScript
Java
Swift
curl --location '/v1/videos' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
    "model": "string",
    "remix_id": "string",
    "prompt": "string"
}'

返回响应

🟢200成功
application/json
成功
Bodyapplication/json

示例
{}
修改于 2026-06-05 16:48:25
上一页
Veo 视频生成
下一页
Omni 视频生成(omni_flash-10s)
Built with