Compatibilità OpenAI Videos
Chiama i modelli video di PopNow con i formati di richiesta e risposta dell’API OpenAI Videos.
Se il tuo codice usa già l’API OpenAI Videos, puoi puntarlo su PopNow e tenerne quasi tutto. Gli endpoint compatibili sono su https://api.popnow.ai/v1 e condividono chiavi, limiti, validazione e crediti con l’API nativa.
| Chiamata in stile OpenAI | Cosa fa |
|---|---|
POST /v1/videos | Crea un’attività video |
GET /v1/videos/{id} | Ne legge lo stato |
GET /v1/videos/{id}/content | Reindirizza (302) al file finito |
GET /v1/models | Elenca i modelli disponibili nel formato elenco di OpenAI |
Compaiono solo modelli video, immagine e audio; gli endpoint di chat e testo non fanno parte dell’API di PopNow.
Crea un video
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"
}'Come i campi diventano l’input del modello:
| Campo OpenAI | Diventa |
|---|---|
model | Un ID di modello video da /v1/models |
prompt | prompt |
input_reference | image_url / image_urls (un URL HTTPS o un caricamento popnow://) |
seconds | duration_seconds |
size (LARGHEZZAxALTEZZA) | resolution e/o aspect_ratio, oppure width / height quando il modello usa i pixel |
Un campo che il modello scelto non supporta viene rifiutato con 400, mai scartato in silenzio. Per le impostazioni che il formato OpenAI non prevede, usa il createTask nativo.
Leggi e scarica
Gli stati si traducono così: queued → queued, running → in_progress, succeeded → completed e failed / expired → failed con un oggetto error. GET /v1/videos/{id}/content risponde 302 verso un link firmato di breve durata — fai seguire i reindirizzamenti al client —, 409 mentre il video è ancora in lavorazione e 404 se è fallito.
Gli oggetti restituiti non contengono mai prezzi. Leggi il costo con il recordInfo nativo usando lo stesso ID.
Errori
Gli errori usano il formato OpenAI { "error": { "message", "type", "param", "code" } } con lo stesso stato HTTP che restituirebbe l’API nativa. Un rifiuto per contenuto è un HTTP 400 con code: "content_rejected", così puoi distinguerlo da un errore di parametro (invalid_request o unsupported_parameter, con param che indica il campo).
Checklist per la produzione
Cosa verificare prima che utenti reali dipendano dalla tua integrazione: chiavi, nuovi tentativi, webhook, archiviazione, costi e monitoraggio.
Agenti IA e MCP
Usa l’API di PopNow già oggi da Claude, ChatGPT, Cursor e altri agenti, e cosa aggiungerà il server MCP quando aprirà.

