PopNowDokumentacja API
Zgodność i agenci AI
Treść główna

Zgodność z OpenAI Videos

Wywołuj modele wideo PopNow w formatach zapytań i odpowiedzi API OpenAI Videos.

Jeśli twój kod korzysta już z API OpenAI Videos, możesz skierować go na PopNow i zachować prawie wszystko. Zgodne endpointy są pod https://api.popnow.ai/v1 i dzielą klucze, limity, walidację oraz kredyty z natywnym API.

Wywołanie w stylu OpenAICo robi
POST /v1/videosTworzy zadanie wideo
GET /v1/videos/{id}Odczytuje jego stan
GET /v1/videos/{id}/contentPrzekierowuje (302) do gotowego pliku
GET /v1/modelsLista dostępnych modeli w formacie listy OpenAI

Na liście są tylko modele wideo, obrazu i audio; endpointy czatu i tekstu nie są częścią API PopNow.

Utwórz wideo

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"
  }'

Jak pola przekładają się na dane wejściowe modelu:

Pole OpenAIStaje się
modelID modelu wideo z /v1/models
promptprompt
input_referenceimage_url / image_urls (URL HTTPS albo przesłany plik popnow://)
secondsduration_seconds
size (SZEROKOŚĆxWYSOKOŚĆ)resolution i/lub aspect_ratio albo width / height, gdy model przyjmuje piksele

Pole, którego wybrany model nie obsługuje, jest odrzucane z 400, nigdy po cichu pomijane. Dla ustawień, których format OpenAI nie przewiduje, użyj natywnego createTask.

Odczyt i pobieranie

Stany przekładają się tak: queued → queued, running → in_progress, succeeded → completed, a failed / expired → failed z obiektem error. GET /v1/videos/{id}/content odpowiada 302 na krótko ważny podpisany link — niech klient podąża za przekierowaniami —, 409, gdy wideo jeszcze powstaje, i 404, gdy się nie udało.

Zwracane obiekty nigdy nie zawierają cen. Koszt odczytasz natywnym recordInfo z tym samym ID.

Błędy

Błędy mają format OpenAI { "error": { "message", "type", "param", "code" } } z takim samym statusem HTTP, jaki zwróciłoby natywne API. Odmowa z powodu treści to HTTP 400 z code: "content_rejected", więc odróżnisz ją od błędu parametru (invalid_request albo unsupported_parameter, a param wskazuje pole).

Na tej stronie