视频任务流程
PopGo 的视频接口统一为异步任务模型。客户端提交任务后得到任务 ID,轮询任务状态,完成后读取结果地址或下载内容。
调用地址
POST https://api.popgo.site/v1/videos
GET https://api.popgo.site/v1/videos/{task_id}
GET https://api.popgo.site/v1/videos/{task_id}/content
Authorization: Bearer YOUR_API_KEY
创建和查询都使用 PopGo 的公开路径。不要根据某个渠道的内部路径改写客户端请求。
通用字段
| 字段 | 类型 | 说明 |
|---|---|---|
model | string | 必填,使用模型与价格页中的公开模型 ID |
prompt | string | 必填,描述画面、动作、镜头和声音目标 |
duration / seconds | integer | 模型支持的时长;具体字段和固定档位看模型页 |
resolution | string | 模型支持的分辨率,例如 480p、720p、1080p 或 4K |
aspect_ratio | string | 模型支持的比例;不要只写在提示词里 |
| 参考素材字段 | array / string | 根据模型页使用图片、视频或音频字段 |
最小提交示例
curl -X POST https://api.popgo.site/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "YOUR_MODEL",
"prompt": "清晨薄雾中的竹林,镜头缓慢向前推进",
"seconds": 5,
"resolution": "480p",
"aspect_ratio": "16:9"
}'
创建成功后保存响应中的 id:
{ "id": "YOUR_TASK_ID", "status": "queued" }
轮询和进度
curl https://api.popgo.site/v1/videos/YOUR_TASK_ID \
-H "Authorization: Bearer YOUR_API_KEY"
常见状态包括:
| 状态 | 含义 | 客户端动作 |
|---|---|---|
queued | 已创建,等待处理 | 延迟后继续轮询 |
in_progress | 正在生成 | 读取 progress(如果返回)并继续轮询 |
completed | 生成完成 | 读取结果 URL 或调用 /content 下载 |
failed | 生成失败 | 读取错误信息,不要盲目重复扣费请求 |
任务响应可能包含 progress 百分比,也可能只返回状态。没有进度字段时,客户端应显示“处理中”而不是伪造百分比。
完成和下载
{
"id": "YOUR_TASK_ID",
"status": "completed",
"progress": 100,
"url": "https://api.popgo.site/v1/videos/YOUR_TASK_ID/content"
}
优先使用完成响应中的 url;需要稳定下载时调用:
curl -L https://api.popgo.site/v1/videos/YOUR_TASK_ID/content \
-H "Authorization: Bearer YOUR_API_KEY" \
-o output.mp4
失败排查
- HTTP 400:检查模型 ID、字段类型、时长、分辨率、比例和参考素材数量。
- HTTP 401/403:检查 Key、认证头和模型权限。
- 查询 HTTP 400:确认使用的是 PopGo 返回的公开任务 ID,并调用
/v1/videos/{task_id}。 completed但没有 URL:保留脱敏任务响应,检查模型页规定的结果字段和/content下载路径。- 轮询超时:降低时长或分辨率,确认上游任务确实已创建,再按指数退避继续查询。
视频计费由对应模型的价格策略决定,可能按次、按秒或按规格计费。预估额度前必须查看模型页,不要从状态轮询次数推算生成成本。
轮询、超时与重试边界
创建请求只发送一次,立即保存 id 和提交的模型、时长、分辨率、素材模式。POST 超时可能发生在任务已经创建之后:先查任务记录,不要直接重发。查询和下载可以针对同一个 id 重试,不会因此创建第二个视频。
常规间隔3–5秒;C使用10–15秒,Kling可10秒并预留至少15分钟。遇到429、502、503或临时网络错误采用有上限的退避,并遵守 Retry-After。400参数错误先修改,401/403先修复认证或权限。达到客户端截止时间后显示“等待超时”,保存原任务以便继续查询,不把它伪装成上游失败。
progress 可能长期为0后直接100,也可能缺失;model、usage、分辨率、真实时长和fps也可能缺失。保留提交参数,实际时长/画面以下载媒体为准;缺少usage不代表免费。queued与in_progress不是失败,completed才进入下载。
结果地址可能过期或需要鉴权;优先通过PopGo的/content访问。completed后内容临时不可用时有限重试下载,不重新创建。大文件应设置足够下载超时,确认响应是视频而不是JSON错误页。不要把PopGo API Key发送到第三方媒体地址。
排错时区分五个阶段
| 阶段 | 能证明什么 | 不能据此断定什么 |
|---|---|---|
| 界面校验 | 素材模式、数量与来源是否被本地接受 | 没有请求不等于上游拒绝 |
| PopGo解析和能力校验 | HTTP400/500是否在任务创建前发生 | 上游没有日志不自动证明它故障 |
| 实际发出的载荷 | 图片/视频/音频字段和角色是否正确 | 正确载荷不保证公网素材可读取 |
| 任务接受与轮询 | id、状态和错误所在阶段 | 200或id不证明引用有效或免费 |
| 最终媒体 | 首帧、主体、动作与声音是否采用参考 | 仅有下载URL不证明生成质量 |
记录脱敏模型名、请求时间、公开任务id占位符、模式、素材数量/来源和错误短语;不得附带Key、Cookie、签名URL或完整私人素材。容量错误与内容审核错误需分别处理;即使失败也要核对实际用量和账单。先修正已知问题,再决定是否承担新的生成费用。