相容與 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 會指出是哪個欄位)。

