兼容与 AI 助手
正文OpenAI Videos 兼容接口
用 OpenAI Videos API 的请求和响应格式调用 PopNow 的视频模型。
如果你的代码已经在用 OpenAI Videos API,把它指向 PopNow 就能保留大部分逻辑。兼容接口位于 https://api.popnow.ai/v1,和原生 API 共用密钥、限额、校验和积分。
| OpenAI 风格的调用 | 作用 |
|---|---|
POST /v1/videos | 创建视频任务 |
GET /v1/videos/{id} | 读取状态 |
GET /v1/videos/{id}/content | 重定向(302)到生成好的文件 |
GET /v1/models | 以 OpenAI 列表格式列出可调用的模型 |
这里只列出视频、图片和音频模型;聊天和文本接口不属于 PopNow API。
创建视频
curl -X POST "https://api.popnow.ai/v1/videos" \
-H "Authorization: Bearer $POPNOW_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"model": "alibaba/wan-3.0/image-to-video",
"prompt": "Waves roll in slowly, the camera drifts toward the lighthouse",
"input_reference": "https://media.popnow.ai/movie/lighthouse.webp",
"seconds": "5",
"size": "1280x720"
}'各字段如何映射到模型自己的输入:
| OpenAI 字段 | 对应 |
|---|---|
model | /v1/models 里的视频模型 ID |
prompt | prompt |
input_reference | image_url / image_urls(HTTPS 链接或 popnow:// 上传文件) |
seconds | duration_seconds |
size(宽x高) | resolution 和/或 aspect_ratio;模型按像素取值时对应 width / height |
所选模型不支持的字段会以 400 拒绝,绝不会被悄悄丢掉。OpenAI 格式里没有对应字段的设置,请改用原生的 createTask。
读取与下载
状态对应关系:queued → queued,running → in_progress,succeeded → completed,failed / expired → failed 并带上 error 对象。GET /v1/videos/{id}/content 会用 302 跳转到一个短时有效的签名链接——请让客户端跟随重定向;视频还在生成时返回 409,失败时返回 404。
返回的对象里不含价格。要看费用,用同一个 ID 调用原生的 recordInfo。
错误
错误使用 OpenAI 的 { "error": { "message", "type", "param", "code" } } 格式,HTTP 状态码与原生 API 相同。内容被拒绝时是 HTTP 400 且 code: "content_rejected",方便你和参数错误区分开(参数错误是 invalid_request 或 unsupported_parameter,param 会指明是哪个字段)。

