UlazAI API Dokumentation

Sora 2 Videogenerierung API

Professionelle Videogenerierung mit dem Sora 2-Modell von OpenAI – Verwandeln Sie Textansagen oder Bilder in hochwertige KI-Videos.

🎉 Sora 2 Launch-Special: Erhalten Sie 20 % Bonusguthaben auf alle Einkäufe! Nur für begrenzte Zeit.

✨ Sora 2 Funktionen

Text-zu-Video Generation

Bild-zu-Video Animation

10-Sekunden-Videos bei 24fps

1080p-Auflösung Ausgabe

Mehrere Seitenverhältnisse (16:9, 9:16, 1:1)

Schnelle Bearbeitung (~2-3 Minuten)

Automatische R2-Speicherung mit CDN

E-Mail-Benachrichtigungen wenn es fertig ist

POST /api/v1/sora/generate/text-to-video/

Video aus Text generieren

Erstellen Sie mit Sora 2 ein 10-Sekunden-Video aus einer Textaufforderung.

Anforderungstext

{
  "prompt": "A serene mountain landscape at sunrise with birds flying",
  "aspect_ratio": "landscape",  // Options: "landscape", "portrait", "square"
  "quality": "standard"          // Options: "standard", "high"
}

Parameter

prompt * (Zeichenfolge)

Textbeschreibung des zu generierenden Videos. Maximal 5000 Zeichen. Seien Sie beschreibend, um die besten Ergebnisse zu erzielen.

Aspektverhältnis (Zeichenfolge)

Video-Seitenverhältnis. Optionen: Landschaft (16:9), Porträt (9:16), Quadrat (1:1). Standard: Landschaft

Qualität (Zeichenfolge)

Qualitätsvoreinstellung. Optionen: Standard, hoch. Hohe Qualität benötigt mehr Bearbeitungszeit. Standard: Standard

prompt_directory_optin (Boolescher Wert) 💰 -10 CREDITS

Teilen Sie Ihr Video in unserem öffentlichen Prompt-Verzeichnis und erhalten Sie es 10 Credits Rabatt! Standard: true

Erfolgsantwort (201)

{
  "success": true,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "processing",
    "estimated_completion": "2-3 minutes",
    "credits_charged": 80,
    "credits_remaining": 920,
    "webhook_url": "https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/",
    "message": "Sora 2 video generation started successfully"
  }
}

cURL-Beispiel

curl -X POST https://ulazai.com/api/v1/sora/generate/text-to-video/ \
  -H "Authorization: Token YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A serene mountain landscape at sunrise with birds flying across the sky",
    "aspect_ratio": "landscape",
    "quality": "standard"
  }'
POST /api/v1/sora/generate/image-to-video/

Video aus Bild generieren

Animieren Sie ein statisches Bild mit Sora 2 in ein 10-Sekunden-Video.

Anforderungstext

{
  "image_url": "https://example.com/your-image.jpg",
  "prompt": "Camera slowly zooms in as the character turns and smiles",
  "aspect_ratio": "landscape",
  "quality": "standard"
}

Parameter

image_url * (Zeichenfolge)

URL des zu animierenden Quellbilds. Muss öffentlich zugänglich sein. Unterstützte Formate: JPG, PNG, WebP.

prompt * (Zeichenfolge)

Beschreibung, wie das Bild animiert wird. Maximal 5000 Zeichen.

Aspektverhältnis (Zeichenfolge)

Für optimale Ergebnisse muss das Seitenverhältnis des Quellbilds übereinstimmen.

Qualität (Zeichenfolge)

Qualitätsvoreinstellung. Standard: Standard

prompt_directory_optin (Boolescher Wert) 💰 -10 CREDITS

Teilen Sie Ihr Video in unserem öffentlichen Prompt-Verzeichnis und erhalten Sie es 10 Credits Rabatt! Standard: true

GET /api/v1/sora/status/{task_id}/

Überprüfen Sie den Generierungsstatus

Erhalten Sie den aktuellen Status und das Ergebnis einer Sora-Videogenerierungsaufgabe.

Antwortzustände

Verarbeitung

{
  "success": true,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "processing",
    "progress": 45,
    "estimated_completion": "1-2 minutes"
  }
}

Erfolg

{
  "success": true,
  "data": {
    "task_id": "sra_2_1234567890abcdef",
    "status": "success",
    "video_url": "https://cdn.ulazai.com/sora/videos/sra_2_1234567890abcdef.mp4",
    "thumbnail_url": "https://cdn.ulazai.com/sora/thumbnails/sra_2_1234567890abcdef.jpg",
    "duration": 10,
    "resolution": "1920x1080",
    "file_size": "15.2 MB",
    "created_at": "2025-01-03T10:15:30Z"
  }
}

Fehlgeschlagen

{
  "success": false,
  "error": "Video generation failed",
  "error_details": "Content policy violation detected in prompt",
  "credits_refunded": 80
}

cURL-Beispiel

curl -X GET https://ulazai.com/api/v1/sora/status/sra_2_1234567890abcdef/ \
  -H "Authorization: Token YOUR_API_KEY"

💰 Sora 2 Preise

Text-zu-Video

80 Credits

Pro 10-Sekunden-Video

• 1080p-Auflösung

• Alle Seitenverhältnisse

• 2-3 Minuten Verarbeitung

Bild-zu-Video

80 Credits

Pro 10-Sekunden-Animation

• Animieren Sie jedes Bild

• Benutzerdefinierte Bewegungsaufforderungen

• 2-3 Minuten Verarbeitung

💡 Beispiel: 25 € = 2.500 Credits ≈ 31 Sora-Videos

📚 Best Practices

Sofortige Richtlinien

  • Machen Sie genaue Angaben zu Kamerabewegungen (Schwenken, Zoomen, Neigen).
  • Beschreiben Sie Licht und Atmosphäre
  • Beziehen Sie Charakteraktionen und -ausdrücke ein
  • Geben Sie den Zeitpunkt für Schlüsselmomente an
  • Vermeiden Sie urheberrechtlich geschützte Charaktere oder Marken

Bild-zu-Video-Tipps

  • Verwenden Sie hochwertige Quellbilder (mindestens 1024 Pixel)
  • Passen Sie das Seitenverhältnis an, um ein Zuschneiden zu vermeiden
  • Beschreiben Sie realistische Bewegungen für die Szene
  • Berücksichtigen Sie Physik und natürliche Bewegung

Webhook-Integration

  • Videos werden automatisch in R2 mit CDN-Lieferung gespeichert
  • E-Mail-Benachrichtigungen werden gesendet, wenn die Generierung abgeschlossen ist
  • Fragen Sie den Statusendpunkt alle 30 Sekunden nach Aktualisierungen ab
  • Bei fehlgeschlagenen Generationen werden Credits automatisch zurückerstattet

⚠️ Fehlercodes

400 Ungültige Anforderungsparameter oder Eingabeaufforderung zu lang
401 Ungültiger oder fehlender API-Schlüssel
402 Unzureichende Credits
422 Verstoß gegen die Inhaltsrichtlinien
429 Ratenlimit überschritten (maximal 10 gleichzeitig)
500 Serverfehler – Credits werden zurückerstattet

💻 Codebeispiele

Python

import requests
import time

API_KEY = "YOUR_API_KEY"
BASE_URL = "https://ulazai.com/api/v1"

# Video generieren
response = requests.post(
    f"{BASE_URL}/sora/generate/text-to-video/",
    headers={"Authorization": f"Token {API_KEY}"},
    json={
        "prompt": "A beautiful sunset over the ocean with waves",
        "aspect_ratio": "landscape",
        "quality": "standard"
    }
)

if response.status_code == 201:
    task_id = response.json()["data"]["task_id"]

    # Statusumfrage
    while True:
        status_response = requests.get(
            f"{BASE_URL}/sora/status/{task_id}/",
            headers={"Authorization": f"Token {API_KEY}"}
        )

        status_data = status_response.json()["data"]

        if status_data["status"] == "success":
            print(f"Video bereit: {status_data['video_url']}")
            break
        elif status_data["status"] == "failed":
            print("Generierung fehlgeschlagen")
            break

        time.sleep(30) # Warten Sie 30 Sekunden vor der nächsten Prüfung

JavaScript (Node.js)

const axios = require('axios');

const API_KEY = 'YOUR_API_KEY';
const BASE_URL = 'https://ulazai.com/api/v1';

async function generateSoraVideo() {
    try {
        // Generate video
        const response = await axios.post(
            `${BASE_URL}/sora/generate/text-to-video/`,
            {
                prompt: 'A beautiful sunset over the ocean with waves',
                aspect_ratio: 'landscape',
                quality: 'standard'
            },
            {
                headers: { 'Authorization': `Token ${API_KEY}` }
            }
        );

        const taskId = response.data.data.task_id;
        console.log(`Generierung gestartet: ${taskId}`);

        // Status abfragen
        const checkStatus = async () => {
            const statusResponse = await axios.get(
                `${BASE_URL}/sora/status/${taskId}/`,
                { headers: { 'Authorization': `Token ${API_KEY}` } }
            );

            const status = statusResponse.data.data.status;

            if (status === 'success') {
                console.log(`Video ready: ${statusResponse.data.data.video_url}`);
            } else if (status === 'failed') {
                console.log('Generation failed');
            } else {
                setTimeout(checkStatus, 30000); // Check again in 30 seconds
            }
        };

        setTimeout(checkStatus, 30000);

    } catch (error) {
        console.error('Error:', error.response?.data || error.message);
    }
}

generateSoraVideo();

🚀 Bereit zum Start?

🎉 Für begrenzte Zeit: Erhalten Sie 20 % Bonusguthaben auf alle Einkäufe!