API di generazione video Sora 2
Chiama sora-2 e sora-2-pro su APIMaster.ai per text-to-video e image-to-video. Il polling e i download utilizzano gli URL di APIMaster.
Generazione video Sora 2
Genera video con Sora 2 tramite APIMaster. Modelli supportati: sora-2, sora-2-pro. Il nome sora corrisponde a sora-2.
URL di base:
https://apimaster.ai/v1èhttps://apimaster.ai/v1. Usahttps://apimaster.ai/v1/videos/...— non aggiungere un altro/v1.
Prezzi (20% di sconto rispetto all'ufficiale, al secondo)
La fatturazione è durata (secondi) × tariffa al secondo.
| Modello | Risoluzione | Ufficiale | APIMaster |
|---|---|---|---|
sora-2 |
720p | $0,10 / sec | $0,08 / sec |
sora-2-pro |
720p | $0,30 / sec | $0,24 / sec |
sora-2-pro |
1024p | $0,50 / sec | $0,40 / sec |
sora-2-pro |
1080p | $0,70 / sec | $0,56 / sec |
Esempio: 4 secondi di sora-2 a 720p ≈ $0,32 ($0,08 × 4).
Invia un'attività
Due punti di ingresso: usa uno dei due.
Opzione A (consigliata): JSON nativo
POST https://apimaster.ai/v1/videos/generations
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
model |
stringa | sì | sora-2 / sora-2-pro (o sora) |
prompt |
stringa | sì | Descrizione del video |
duration |
intero | no | Comune: 4 / 8 / 12 / 16 / 20, predefinito 4 |
resolution |
stringa | no | sora-2: 720p; sora-2-pro: anche 1024p / 1080p, predefinito 720p |
aspect_ratio |
stringa | no | 16:9 / landscape o 9:16 / portrait, predefinito 16:9 |
image_urls |
stringa[] | no | Image-to-video; consigliato 1 URL pubblico |
curl -s "https://apimaster.ai/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "Una cascata che forma un arcobaleno, cinematografica",
"duration": 4,
"resolution": "720p",
"aspect_ratio": "16:9"
}'
Risposta all'invio
{
"code": 200,
"data": [
{
"status": "submitted",
"task_id": "task_xxxxxxxx"
}
]
}
Imposta aspect_ratio esplicitamente per image-to-video (ritratto → 9:16). Il valore predefinito è 16:9.
Opzione B: Compatibile con OpenAI Video
POST https://apimaster.ai/v1/videos (JSON o multipart)
| Campo | Tipo | Obbligatorio | Descrizione |
|---|---|---|---|
model |
stringa | sì | sora-2 / sora-2-pro (o sora) |
prompt |
stringa | sì | Descrizione del video |
seconds |
stringa | no | Durata, es. "4"; funziona anche l'intero duration, predefinito 4 |
size |
stringa | no | Dimensione in pixel — risoluzione + orientamento (tabella sotto), predefinito 720x1280 |
images |
stringa[] | no | Image-to-video; al massimo 1 URL. Funziona anche input_reference (singolo) |
Valori size
| Modello | Orizzontale (16:9) | Verticale (9:16) |
|---|---|---|
sora-2 |
1280x720 (720p) |
720x1280 (720p) |
sora-2-pro |
1280x720 (720p) / 1792x1024 (1024p) |
720x1280 (720p) / 1024x1792 (1024p) |
Un
sizenon valido (es.1920x1080) restituisce400 invalid_size. Il percorso OpenAI massimo è 1024p; usa l'Opzione A conresolution: "1080p"per 1080p.
curl -s "https://apimaster.ai/v1/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "Una cascata che forma un arcobaleno, cinematografica",
"seconds": "4",
"size": "1280x720"
}'
Risposta all'invio
{
"id": "task_xxxxxxxx",
"object": "video",
"model": "sora-2",
"status": "queued"
}
Usa task_id / id da uno dei due endpoint per il polling e il download.
Verifica lo stato dell'attività
GET https://apimaster.ai/v1/videos/{task_id}
curl -s "https://apimaster.ai/v1/videos/task_xxxxxxxx" \
-H "Authorization: Bearer YOUR_API_KEY"
Esempio completato:
{
"id": "task_xxxxxxxx",
"status": "completed",
"url": "https://apimaster.ai/v1/videos/task_xxxxxxxx/content"
}
Scarica MP4 tramite
https://apimaster.ai/v1/videos/{task_id}/content.
Scarica video
curl -L "https://apimaster.ai/v1/videos/task_xxxxxxxx/content" \
-H "Authorization: Bearer YOUR_API_KEY" \
-o output.mp4
Esempi Image-to-video
Opzione A:
curl -s "https://apimaster.ai/v1/videos/generations" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "Slow push-in, leggera brezza tra i capelli",
"duration": 8,
"resolution": "720p",
"aspect_ratio": "9:16",
"image_urls": ["https://example.com/reference.jpg"]
}'
Opzione B (campo images):
curl -s "https://apimaster.ai/v1/videos" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "sora-2",
"prompt": "Slow push-in, leggera brezza tra i capelli",
"seconds": "8",
"images": ["https://example.com/reference.jpg"]
}'
Suggerimenti per il polling
- Attendi 10–20 secondi dopo l'invio; poi esegui il polling ogni 3–5 secondi
- Tempo tipico: 1–3 minuti
- Salva l'MP4 prontamente dopo il completamento
Codici di errore
| codice | Significato |
|---|---|
| 400 | Parametri non validi (es. invalid_size) |
| 401 | Chiave API non valida |
| 402 | Saldo insufficiente |
| 429 | Limite di velocità superato |
| 500 / 502 | Errore temporaneo, riprova |