功能与接口

操作请求
查询GET https://top.qingyuntop.ai/v1/videos/{task_id}
下载视频GET https://top.qingyuntop.ai/v1/videos/{task_id}/content

鉴权与任务 ID

每次查询与下载携带 Authorization: Bearer YOUR_API_KEY。用创建响应返回的原始 ID 替换示例;不要使用控制台登录令牌或供应商任务 ID。

返回状态与字段

字段/状态含义
id青云视频任务 ID,创建与查询保持一致。
objectvideo。
model原始请求模型名称。
queued排队中。
in_progress生成中。
completed成功,可以下载。
failed失败;error 可能有 message、code。
progress百分比数值,是阶段进度,不是精确剩余时间。

示例:

{
  "id": "task_doubao_example",
  "object": "video",
  "model": "doubao-seedance-2-5-260628",
  "status": "completed",
  "progress": 100
}

统一查询输出视频对象,不包含豆包原始 content 或 usage。需要查看尾帧、上游错误或用量时,可用同一个公共 task ID 请求豆包格式查询。部分失败可能只有 failed 状态而没有 error,应同时检查任务日志。

查询和下载代码

Python 需安装 requests,Node.js 使用 22+ .mjs。cURL 是分步操作;Python 与 Node.js 会自动轮询。示例默认生成 MP4;若创建时选 mov,将保存文件名改为 .mov。

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

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

HTTP 报错时示例会退出并显示错误。达到等待时间只结束本地等待,不取消服务端任务,可保留 ID 继续查询。content 接口返回视频字节,不是 JSON;尾帧请从豆包查询的 content.last_frame_url 获取。

错误处理

情况处理
401 / 403检查青云 Key、访问权限和模型分组。
创建 400检查模型参数、角色、时长和清晰度;2.5 编辑必须 duration=-1、ratio=adaptive。
404核对 ID 类型、所属账号与完整路径;不要给任务列表旧接口补参数。
429 或查询 5xx延迟重试 GET,增加轮询间隔,不要重发 POST 创建。
InvalidParameter.TaskTypeConstraint / TaskTypeMismatch核对 2.5 的任务类型、素材和提示词是否一致。
素材无法读取使用直达文件的 HTTPS URL 或完整图片 data URL,确保无登录限制、未过期。
artifact_not_found 或下载失败确认任务成功且存在 content.video_url;上游链接过期时内容代理也无法恢复。

创建请求超时且没有 ID 时先检查任务日志。本文未约定幂等键行为,不应自动重复 POST。失败后修正参数再提交新任务。

官方说明视频 URL 通常有效 24 小时,2.5 视频下载有次数限制,成功后及时保存;这不是青云永久存储承诺。