功能与鉴权

流式入口仍是 POST https://top.qingyuntop.ai/v1/responses。设置 stream: true,生成参数和素材规则见Responses 创建。Q3、Q2 Pro 等官方型号是否可由本站使用,仍以当前 Key 的 GET /v1/models 及分组权限为准。

所有本站请求使用基础地址 https://top.qingyuntop.ai。请求头为 Authorization: Bearer YOUR_API_KEY,将 YOUR_API_KEY 替换为青云TOP API 的 API Key,保留 Bearer 后的一个空格。无需额外登录接口,也不需要 Vidu 厂商 Token。

SSE 流传递 JSON 事件和文本,不是逐帧视频或 MP4 二进制。即使已收到进度事件,也需等待任务成功后再下载视频。

代码示例

请求头 Content-Type: application/json。下方示例逐段输出 SSE,便于观察事件;业务客户端应按 SSE 空行分隔事件并合并同一事件的 data 行,再解析 JSON。网络 chunk 不一定是一条完整事件。

点击标签切换 cURL、Python 或 Node.js。cURL 为 Bash 写法;Python 需安装 requests;Node.js 使用 18 或更新版本(含导入语句时保存为 .mjs)。图片示例使用 Vidu 官方示例素材,也可换成你自己的公开可访问图片 URL。

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": "viduq2",
  "input": "一只猫在阳光照耀的窗边伸懒腰,镜头缓缓推进。",
  "seconds": 5,
  "stream": true,
  "metadata": {
    "action": "text_to_video",
    "resolution": "720p"
  }
}'

如何处理事件

事件处理方式
response.created立即保存事件内 response.id 和 response.metadata.task_id
response.in_progress根据 response.metadata 中的 task_status、task_progress 等观察任务状态;进度可能重复或暂缺
response.output_text.delta累积文本输出;成功输出包含 video 预览 HTML,不是视频文件字节
response.completed检查最终结果,再查询产物并下载
response.failed读取错误信息,记录响应与任务 ID
response.incomplete当前观察未完整结束,读取 incomplete_details 并继续查询原响应;不能直接认定视频失败

也可能出现输出项建立、输出完成等事件。按事件 type 处理,忽略暂不使用的事件,不依赖固定事件数量或顺序间隔。

最终视频预览位于 response 的 output[].content[] 中、type=output_text 项的 text。不要把任意返回文本未经处理插入网页;需要播放时优先通过受控的产物下载/访问流程。

断线与等待超时

客户端断线、读取超时或服务端观察超时都不等于上游任务已经取消。用已保存的响应 ID 调用 Responses 查询,避免重复提交新任务。

后台模式也可配合 stream 使用,但初次接入建议先使用后台提交加定时查询。只需要最终视频文件时,统一视频接口通常更简单。