Skip to main content
Questo documento presenterà le istruzioni per l’integrazione dell’API Sora Videos Generation, attraverso la quale è possibile inserire parametri personalizzati per generare video ufficiali di Sora. Questa API supporta due modalità di versione:
  • Versione 1 (Modalità Classica): supporta duration (10/15/25 secondi), orientation (orizzontale/verticale), size (bassa/alta definizione), immagini di riferimento image_urls, link ### character_url e altri parametri.
  • Versione 2 (Modalità Partner): supporta seconds (4/8/12 secondi), risoluzione a livello di pixel size (ad esempio 1280x720), immagini di riferimento input_reference e altri parametri.

Procedura di Richiesta

Per utilizzare l’API Sora Videos Generation, prima di tutto vai al Pannello di Controllo Ace Data Cloud per ottenere il tuo API Token, da conservare per uso futuro. Se non hai ancora effettuato il login o la registrazione, verrai automaticamente reindirizzato alla pagina di login che ti inviterà a registrarti e accedere; una volta completato, verrai riportato automaticamente alla pagina corrente. Un API Token è sufficiente per accedere a tutti i servizi della piattaforma, senza necessità di richiederne uno separato per ogni servizio. La prima richiesta ti darà un credito gratuito, per un’esperienza senza costi; quando il credito è esaurito, puoi ricaricare il saldo generale nel pannello di controllo.
📘 Documentazione Completa: Sora Videos Generation API →

Utilizzo di Base (Versione 1)

Per prima cosa, è importante comprendere il modo di utilizzo di base della Versione 1, che consiste nell’inserire la parola chiave prompt, un array di link a immagini di riferimento image_urls e il modello model, per ottenere il risultato elaborato; i dettagli specifici sono i seguenti:

Possiamo vedere che abbiamo impostato le intestazioni della richiesta, che includono:
  • accept: il formato di risposta desiderato, qui impostato su application/json, ovvero formato JSON.
  • authorization: la chiave per chiamare l’API, che può essere selezionata direttamente dopo la richiesta.
Inoltre, abbiamo impostato il corpo della richiesta, che include:
  • model: il modello per generare il video, supporta sora-2 (modalità standard) e sora-2-pro (modalità HD). Il sora-2-pro supporta video con duration di 25 secondi, mentre il sora-2 supporta solo 10 e 15 secondi.
  • size: la qualità del video, small per qualità standard, large per qualità HD (solo Versione 1).
  • duration: la durata del video, supporta 10, 15, 25 secondi, dove 25 secondi è supportato solo da sora-2-pro (solo Versione 1).
  • orientation: l’orientamento del video, supporta landscape (orizzontale), portrait (verticale) (solo Versione 1).
  • image_urls: array di link a immagini di riferimento, utilizzato per generare video (solo Versione 1).
  • character_url: link ###, non possono apparire persone reali nel video (solo Versione 1).
  • character_start/character_end: secondi di inizio e fine dell’apparizione del personaggio, con un intervallo di differenza di 1-3 secondi (solo Versione 1).
  • prompt: parola chiave (obbligatoria).
  • callback_url: URL per il callback asincrono dei risultati.
  • async: opzionale, impostato su true per restituire immediatamente task_id, senza necessità di fornire callback_url, successivamente puoi ottenere i risultati tramite polling dell’interfaccia di query del compito corrispondente.
  • version: versione API, "1.0" (predefinita) o "2.0".
Dopo aver effettuato la selezione, puoi notare che a destra è stato generato il codice corrispondente, come mostrato nell’immagine:

Cliccando sul pulsante “Try” puoi effettuare un test, come mostrato nell’immagine sopra, e abbiamo ottenuto il seguente risultato:
Il risultato restituito contiene diversi campi, descritti come segue:
  • success, lo stato attuale del compito di generazione video.
  • task_id, l’ID del compito di generazione video attuale.
  • trace_id, l’ID di tracciamento del compito di generazione video attuale.
  • data, l’elenco dei risultati del compito di generazione video attuale.
    • id, l’ID del video generato dal compito di generazione video attuale.
    • video_url, il link al video generato dal compito di generazione video attuale.
    • state, lo stato attuale del compito di generazione video.
Possiamo vedere che abbiamo ottenuto informazioni soddisfacenti sul video, e dobbiamo solo utilizzare l’indirizzo del link video in data per ottenere il video Sora generato. Inoltre, se desideri generare il codice di integrazione corrispondente, puoi semplicemente copiarlo, ad esempio il codice CURL è il seguente:

Compito di Generazione Video da Immagini (Versione 1)

Se desideri eseguire un compito di generazione video da immagini, prima di tutto il parametro image_urls deve contenere i link delle immagini di riferimento, in modo da specificare i seguenti contenuti:
  • image_urls: array di link delle immagini di riferimento utilizzate per il compito di generazione video. Nota che non è possibile inviare immagini di persone reali con volti, altrimenti il compito potrebbe fallire.
Esempio di compilazione:

Dopo aver completato la compilazione, il codice generato automaticamente è il seguente:

Codice corrispondente:
Cliccando su Esegui, si può notare che si ottiene immediatamente un risultato, come segue:
Si può vedere che l’effetto generato è un video creato da immagini, il risultato è simile a quanto sopra.

Compito di generazione video di personaggi (Versione 1)

Se si desidera eseguire un compito di generazione video di personaggi, prima il parametro character_url deve essere fornito con il link video necessario per creare il personaggio, si prega di notare che nel video non devono apparire persone reali, altrimenti fallirà, si può specificare il seguente contenuto:
  • character_url: link video necessario per creare il personaggio, si prega di notare che nel video non devono apparire persone reali, altrimenti fallirà.
Esempio di compilazione:

Dopo aver completato la compilazione, il codice generato automaticamente è il seguente:

Codice corrispondente:
Cliccando su Esegui, si può notare che si ottiene immediatamente un risultato, come segue:
Si può vedere che l’effetto generato è un video di generazione di personaggi, il risultato è simile a quanto sopra.

Modalità Versione 2.0

Oltre alla modalità Versione 1.0 sopra menzionata, questa API supporta anche la modalità Versione 2.0, attivabile impostando il parametro version su "2.0". La modalità Versione 2.0 supporta una durata video più breve e un controllo della risoluzione a livello di pixel.

Descrizione dei parametri della Versione 2.0

Esempio di base

Codice Python corrispondente:
Codice JavaScript corrispondente:
Il formato del risultato restituito è lo stesso della Versione 1.

Utilizzo di immagini di riferimento (Versione 2.0)

In modalità Versione 2.0, è possibile passare immagini di riferimento tramite il parametro image_urls per guidare la generazione del video (utilizzando solo la prima immagine):
Nota: Le dimensioni delle immagini di riferimento devono essere coerenti con il parametro size, ad esempio se size è 1280x720, le dimensioni dell’immagine di riferimento devono essere 1280×720.

Confronto dei parametri tra Versione 1.0 e Versione 2.0

Callback asincrona

Poiché il tempo di generazione dell’API Sora Videos Generation è relativamente lungo, circa 1-2 minuti, se l’API non risponde per un lungo periodo, la richiesta HTTP manterrà la connessione, causando un consumo aggiuntivo di risorse di sistema. Pertanto, questa API offre anche supporto per callback asincroni. Il flusso complessivo è: quando il client invia una richiesta, specifica un campo callback_url aggiuntivo. Dopo che il client ha inviato la richiesta API, l’API restituirà immediatamente un risultato, contenente un campo task_id, che rappresenta l’ID del compito corrente. Quando il compito è completato, il risultato del video generato verrà inviato al callback_url specificato dal client in formato JSON POST, includendo anche il campo task_id, in modo che il risultato del compito possa essere associato tramite l’ID. Di seguito, vediamo un esempio per capire come operare concretamente. Innanzitutto, il callback Webhook è un servizio in grado di ricevere richieste HTTP, gli sviluppatori dovrebbero sostituirlo con l’URL del server HTTP che hanno costruito. Qui, per comodità di dimostrazione, utilizziamo un sito Web pubblico di esempio per Webhook https://webhook.site/, aprendo questo sito si ottiene un URL Webhook, come mostrato nell’immagine: Copia questo URL e puoi usarlo come Webhook, l’esempio qui è https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa. Successivamente, possiamo impostare il campo callback_url su questo URL Webhook, riempiendo i parametri corrispondenti, come mostrato nell’immagine:

Cliccando su Esegui, possiamo notare che si ottiene immediatamente un risultato, come segue:
Dopo un momento, possiamo osservare il risultato del video generato su https://webhook.site/eb238c4f-da3b-47a5-a922-a93aa5405daa, come mostrato nell’immagine: Il contenuto è il seguente:
Possiamo vedere che nel risultato c’è un campo task_id, gli altri campi sono simili a quelli sopra, tramite questo campo è possibile realizzare l’associazione del compito.

Gestione degli errori

Quando si chiama l’API, se si verifica un errore, l’API restituirà il codice di errore e le informazioni corrispondenti. Ad esempio:
  • 400 token_mismatched: Richiesta non valida, probabilmente a causa di parametri mancanti o non validi.
  • 400 api_not_implemented: Richiesta non valida, probabilmente a causa di parametri mancanti o non validi.
  • 401 invalid_token: Non autorizzato, token di autorizzazione non valido o mancante.
  • 429 too_many_requests: Troppe richieste, hai superato il limite di frequenza.
  • 500 api_error: Errore interno del server, qualcosa è andato storto sul server.

Esempio di risposta di errore

Conclusione

Attraverso questo documento, hai già compreso come utilizzare l’API di generazione video Sora per generare video tramite l’inserimento di parole chiave e immagini di riferimento. Speriamo che questo documento possa aiutarti a integrare e utilizzare meglio questa API. Se hai domande, non esitare a contattare il nostro team di supporto tecnico.