查询 Response

GET https://top.qingyuntop.ai/v1/responses/{response_id}

请求头:Authorization: Bearer YOUR_API_KEY。状态为 queued 或 in_progress 时继续查询;completed 时从 metadata.task_id 取得视频任务 ID。

完成结果的 output[].content[].text 可能是网关生成的 <video controls ...> 预览标签。它不是视频字节,不要把这段 HTML 当作文件保存。

下载视频

使用 metadata.task_id 调用:

GET https://top.qingyuntop.ai/v1/videos/{task_id}/content

不要把 resp_... 当作 /v1/videos 的任务 ID。Response ID 和视频任务 ID 是两套不同的标识。

curl --fail-with-body "https://top.qingyuntop.ai/v1/responses/RESPONSE_ID" \
  -H "Authorization: Bearer YOUR_API_KEY"

curl --fail-with-body "https://top.qingyuntop.ai/v1/videos/VIDEO_TASK_ID/content" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -o wan-responses-video.mp4

SSE 说明

设置 stream: true 后,SSE 只传递任务进度和最终预览文本。客户端应保存 response.created 中的 ID;连接中断时改用 GET 查询。不要因为 SSE 连接结束就再次 POST 创建任务。

同步模式使用 background: false、stream: false。生成时间超出单次观察窗口时可能仍返回排队状态,继续 GET 查询即可。流式观察超时的 response.incomplete 也不等于视频任务失败。只有明确的失败状态才应停止并排查。

常见 401/403、400、429、素材读取及过期问题见原生查询的错误处理。官方上游视频通常只保留 24 小时,请及时保存。

SSE 观察示例

以下代码显示原始 SSE 事件;业务程序按 event 与 data 解析,并保存 Response ID。Python 需 requests,Node.js 使用 22+ 的 .mjs 文件。

curl --fail-with-body -N --max-time 1800 "https://top.qingyuntop.ai/v1/responses" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"wan2.7-t2v","input":"雨后老街,镜头缓慢推进。","seconds":5,"resolution":"720P","ratio":"16:9","stream":true,"background":false}'

常见事件为 response.created、response.in_progress、response.output_text.delta 和 response.completed;失败或观察超时可能产生 response.failed 或 response.incomplete。它们是网关的 Responses 事件,不是 MP4 字节。