POST /v1/videos 路径,通过 model=veo_3_1-fast-extend 区分。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/videosAuthorization: Bearer 你的令牌Content-Type: multipart/form-data(推荐)或 application/json| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
model | string | 是 | 固定 veo_3_1-fast-extend |
remix_id | string | 是 | 原视频的 video_id(格式 video_<uuid>),获取方式见下 |
prompt | string | 是 | 延长视频的提示词描述 |
remix_idcompleted 后,从轮询返回的 remix_id 字段直接读取。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 来源。{
"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_ 前缀)。{
"code": "do_response_failed",
"message": "upstream error: code=fail_to_fetch_task, message=任务不存在(traceid: ...)"
}data.size(值是 video_<uuid> 形式)保存为 remix_idGET /v1/videos/{task_id} 等到原视频 status=completed,从 video_url 下载第一段 8s mp4model=veo_3_1-fast-extend)+ remix_id + prompt(后 7 秒提示词)生成第二段completed,从 video_url 下载第二段 7s mp4data.size(如 video_ab5cc8a6-fc79-4266-b17d-ec55f33462d2),这个值就是后面要传的 remix_id。ffmpeg 的 concat demuxer 无重编码拼接:-fast 派生),编码参数会自动对齐。data.expire_at(毫秒时间戳)约 5 小时后失效,第一段视频签名链接也是有过期时间的(24h 左右)。客户拼接前必须先把两段下载到本地,别留链接给前端拼接(用户打开慢就过期了)。veo_3_1-lite(提交时 data.size 直接是真实尺寸如 1280x720,不返 video_<uuid> remix_id 兜底值)。lite 视频不能用作延长源。| 提交方式 | 稳定性 |
|---|---|
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
}status: failed,错误体如下:{
"id": "task_xxx",
"status": "failed",
"status_update_time": 1778211452,
"error": {
"message": "提交中含有违反平台政策的内容,请你立即停止或调整你的提交内容"
}
}| HTTP | 触发场景 |
|---|---|
| 400 | remix_id 格式错或漏 prompt |
| 401 | 令牌无效 |
| 404 | remix_id 不存在或超过 12 小时 |
| 503 | 模型不存在 |