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 URL 또는 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에 필드 이름)와 구분할 수 있습니다.

