功能与鉴权
流式入口仍是 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 使用,但初次接入建议先使用后台提交加定时查询。只需要最终视频文件时,统一视频接口通常更简单。