- Version 1 (tryb klasyczny): obsługuje parametry
duration(10/15/25 sekund),orientation(poziomy/pionowy),size(small/large rozdzielczość), obrazy referencyjneimage_urls, link do postacicharacter_urlitp. - Version 2 (tryb partnera): obsługuje parametry
seconds(4/8/12 sekund), rozdzielczość pikselowąsize(np. 1280x720), obrazy referencyjneinput_referenceitp.
Proces aplikacji
Aby korzystać z API, należy najpierw złożyć wniosek o usługę na stronie Sora Videos Generation API. Po wejściu na stronę kliknij przycisk „Acquire”, jak pokazano na obrazku:
Jeśli nie jesteś zalogowany lub zarejestrowany, zostaniesz automatycznie przekierowany na stronę logowania/rejestracji. Po zalogowaniu lub rejestracji wrócisz automatycznie do bieżącej strony.
Przy pierwszym wniosku otrzymasz darmowy limit, dzięki któremu możesz korzystać z API bezpłatnie.
Podstawowe użycie (Version 1)
Na początek zapoznaj się z podstawowym sposobem użycia Version 1, polegającym na podaniu słowa kluczowegoprompt, tablicy linków do obrazów referencyjnych image_urls oraz modelu model, aby otrzymać przetworzony wynik. Szczegóły poniżej:

accept: format odpowiedzi, tutaj ustawiony naapplication/json(format JSON).authorization: klucz API do wywołania, który można wybrać z listy po złożeniu wniosku.
model: model generujący wideo, obsługującysora-2(tryb standardowy) orazsora-2-pro(tryb HD). Modelsora-2-proobsługuje długośćdurationdo 25 sekund, natomiastsora-2tylko 10 lub 15 sekund.size: rozdzielczość wideo,smallto standardowa rozdzielczość,largeto HD (tylko Version 1).duration: długość wideo, obsługiwane wartości to 10, 15, 25 sekund (25 sekund tylko dlasora-2-pro, tylko Version 1).orientation: orientacja obrazu, obsługiwane wartości tolandscape(poziomo),portrait(pionowo) (tylko Version 1).image_urls: tablica linków do obrazów referencyjnych, wykorzystywanych do generowania wideo z obrazów (tylko Version 1).character_url: link do postaci, wideo nie może zawierać prawdziwych osób (tylko Version 1).character_start/character_end: czas pojawienia się postaci w sekundach, zakres 1-3 sekund (tylko Version 1).prompt: słowo kluczowe (wymagane).callback_url: URL do asynchronicznego callbacku.version: wersja API,"1.0"(domyślnie) lub"2.0".

success: status zadania generowania wideo.task_id: ID zadania generowania wideo.trace_id: ID śledzenia zadania.data: lista wyników zadania generowania wideo.id: ID wygenerowanego wideo.video_url: link do wygenerowanego wideo.state: status zadania.
data.
Jeśli chcesz wygenerować kod integracji, możesz go bezpośrednio skopiować, np. kod CURL:
Zadanie generowania wideo z obrazu (Version 1)
Aby wykonać zadanie generowania wideo z obrazu, należy przekazać parametrimage_urls z linkami do obrazów referencyjnych, co pozwoli określić następujące:
image_urls: tablica linków do obrazów referencyjnych używanych do generowania wideo. Należy unikać przesyłania prawdziwych zdjęć osób, ponieważ może to spowodować niepowodzenie zadania.


Zadanie generowania wideo z postaci (Version 1)
Aby wykonać zadanie generowania wideo z postaci, należy przekazać parametrcharacter_url z linkiem do filmu potrzebnego do stworzenia postaci. Należy pamiętać, że wideo nie może zawierać prawdziwych osób, w przeciwnym razie zadanie zakończy się niepowodzeniem. Można określić następujące:
character_url: link do filmu potrzebnego do stworzenia postaci, wideo nie może zawierać prawdziwych osób.


Tryb Version 2.0
Oprócz trybu Version 1.0, API obsługuje także tryb Version 2.0, który można włączyć ustawiając parametrversion na "2.0". Tryb Version 2.0 obsługuje krótsze długości wideo oraz kontrolę rozdzielczości na poziomie pikseli.
Opis parametrów Version 2.0
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
version | string | tak | Ustaw na "2.0" |
prompt | string | tak | Słowo kluczowe do generowania wideo |
model | string | nie | sora-2 (domyślny) lub sora-2-pro |
duration | integer | nie | Długość wideo: 4 (domyślnie), 8, 12 sekund |
size | string | nie | Rozdzielczość: 720x1280 (domyślnie), 1280x720, 1024x1792, 1792x1024 |
image_urls | array | nie | Tablica URL obrazów referencyjnych, używana tylko pierwsza grafika, rozmiar zgodny z size |
callback_url | string | nie | URL do asynchronicznego callbacku |
Podstawowy przykład
Użycie obrazów referencyjnych (Version 2.0)
W trybie Version 2.0 można przekazać parametrimage_urls z obrazem referencyjnym, który będzie użyty do generowania wideo (tylko pierwsza grafika):
Uwaga: rozmiar obrazu referencyjnego powinien być zgodny z parametremsize, np. dlasizerównego1280x720obraz powinien mieć rozmiar 1280×720.
Porównanie parametrów Version 1.0 i Version 2.0
| Parametr | Version 1.0 | Version 2.0 |
|---|---|---|
version | 1.0 (domyślnie) | 2.0 |
prompt | ✅ | ✅ |
model | ✅ sora-2 / sora-2-pro | ✅ sora-2 / sora-2-pro |
duration | ✅ 10/15/25 sekund | ✅ 4/8/12 sekund |
orientation | ✅ landscape/portrait | ❌ |
size | ✅ small/large | ✅ 720x1280/1280x720/1024x1792/1792x1024 |
image_urls | ✅ wiele obrazów referencyjnych | ✅ tylko pierwszy obraz |
character_url | ✅ | ❌ |
callback_url | ✅ | ✅ |
Asynchroniczny callback
Ponieważ generowanie wideo przez Sora Videos Generation API trwa stosunkowo długo (około 1-2 minut), a długotrwałe oczekiwanie na odpowiedź HTTP może powodować nadmierne zużycie zasobów systemowych, API oferuje wsparcie dla asynchronicznego callbacku. Proces jest następujący: klient wysyła żądanie z dodatkowym polemcallback_url. Po wysłaniu żądania API natychmiast zwraca odpowiedź zawierającą task_id – ID zadania. Po zakończeniu generowania wideo wynik zostanie przesłany metodą POST w formacie JSON na wskazany callback_url, zawierający również task_id, co pozwala na powiązanie wyników z zadaniem.
Poniżej przykład działania.
Webhook callback to usługa HTTP zdolna do odbierania żądań. Programista powinien zastąpić ją własnym serwerem HTTP. Dla wygody demonstracji użyto publicznej strony Webhook: https://webhook.site/. Po wejściu na stronę otrzymujemy unikalny URL webhooka, np.:
Skopiuj ten URL, np. https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa, i użyj go jako callback_url. Następnie ustaw pole callback_url na ten URL i wypełnij pozostałe parametry, jak na obrazku:

https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa zobaczymy wynik generowania wideo:
Zawartość:
task_id, a pozostałe pola są podobne do wcześniejszych, co pozwala powiązać wynik z zadaniem.
Obsługa błędów
Podczas wywoływania API, w przypadku błędów, API zwróci odpowiedni kod i komunikat błędu, np.:400 token_mismatched: Nieprawidłowe żądanie, prawdopodobnie brak lub błędne parametry.400 api_not_implemented: Nieprawidłowe żądanie, prawdopodobnie brak lub błędne parametry.401 invalid_token: Nieautoryzowany, nieprawidłowy lub brakujący token autoryzacyjny.429 too_many_requests: Zbyt wiele żądań, przekroczono limit.500 api_error: Błąd wewnętrzny serwera.

