docs
API

Video und Musik

Markdown

Videos und Musik generieren: Die Anfrage erstellt einen Auftrag; das Ergebnis wird anhand seiner ID abgerufen.

Vollständiger Leitfaden
POSThttps://api.ailoot.ai/v1/videos
Video und Musik
# Request ID aufbewahren: Damit findet der Support Ihre Anfrage.
# Die Aufgabe einmal erstellen; die folgende Schleife liest nur ihren Status.
curl --fail-with-body --max-time 120 -D video-create-headers-v1.txt \
  https://api.ailoot.ai/v1/videos \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"grok-imagine-video-1.5","prompt":"ein ruhiger See","seconds":"8","size":"1280x720"}' \
  -o video-create-v1.json || exit 1
VIDEO_ID=$(jq -er '.id // .request_id' video-create-v1.json) || exit 1
VIDEO_STATUS=""
# Diese Schleife liest ausschliesslich die ursprüngliche Aufgabe. Die Anfrage zur Erstellung wird niemals erneut gesendet.
for ATTEMPT in $(seq 1 60); do
  curl --fail-with-body --max-time 30 \
    "https://api.ailoot.ai/v1/videos/$VIDEO_ID" \
    -H "Authorization: Bearer $AILOOT_API_KEY" \
    -o video-status-v1.json || exit 1
  VIDEO_STATUS=$(jq -r '.status // empty' video-status-v1.json)
  # result_pending_check: true (Status bleibt in_progress): Das Ergebnis wird geprüft. Anhalten; die Aufgabe niemals erneut erstellen.
  if jq -e '.result_pending_check == true' video-status-v1.json >/dev/null; then
    cat video-status-v1.json
    echo "The result is being checked. Do not create the job again: check GET /v1/videos/$VIDEO_ID later or contact support with the Request ID." >&2
    exit 1
  fi
  case "$VIDEO_STATUS" in
    done|completed) break ;;
    queued|in_progress|pending|processing) sleep 5 ;;
    # failed oder ein anderer Status: anzeigen und anhalten. Die Aufgabe niemals erneut erstellen.
    *) cat video-status-v1.json; exit 1 ;;
  esac
done
case "$VIDEO_STATUS" in
  done|completed) ;;
  *) echo "The job is not finished yet (status: ${VIDEO_STATUS:-none}). Check it later: GET /v1/videos/$VIDEO_ID" >&2; exit 1 ;;
esac
curl --fail-with-body --max-time 120 -L --max-redirs 3 \
  "https://api.ailoot.ai/v1/videos/$VIDEO_ID/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video-v1.mp4
# Nach einem Timeout beim Erstellen zuerst die Request ID im Nutzungsverlauf prüfen, bevor dieses Skript erneut ausgeführt wird.
Antwort · gekürzt
// Die Aufgabenkennung steht im Feld id oder request_id
{ "id": "…", … }

// Das Format hängt vom Modell ab: Die Kennung
// aus der Antwort auf die Erstellung unverändert übernehmen.

Authentifizierung

  • Authorizationheadererforderlich

    Schlüssel im Format Bearer sk-…. Alternativ funktionieren die Header x-api-key oder x-goog-api-key.

Video: Anfragekörper

  • modelstringerforderlich

    Videomodell: google/omni-1.1-flash, grok-imagine-video, happyhorse-1.1-t2v, MiniMax-Hailuo-2.3, grok-imagine-video-1.5, happyhorse-1.1-r2v, grok-imagine-video-1.5-preview, happyhorse-1.1-i2v.

  • promptstringerforderlich

    Beschreibung des Videos.

  • duration / secondsinteger / stringoptional

    Je nach Modellfamilie: Grok 1–15 Sekunden, MiniMax 6/10 bei 768P oder 6 bei 1080P, HappyHorse 3–15; Google Omni 4/6/8/10. Übertragen Sie ein Feld einer Familie nicht auf eine andere.

  • resolution / sizestringoptional

    Grok: 480p/720p/1080p (1080p bei video-1.5), alternativ size 1280x720/720x1280/1920x1080/1080x1920. MiniMax: 768P/1080P. HappyHorse: 480P/720P/1080P. Google Omni: 360p/720p.

  • image / first_frame_image / image_urlsstring / arrayoptional

    Die Felder für Ausgangsbilder hängen von Modellfamilie und Modus ab. MiniMax Fast erfordert first_frame_image. HappyHorse t2v: ohne images, i2v: genau ein Bild ohne ratio, r2v: 1–9 Bilder.

Die Antwort enthält die Auftrags-ID (Feld id oder request_id). Verwenden Sie sie unverändert, ohne sie zu zerlegen: Das Format hängt vom Modell ab. Status und fertige Datei:

GEThttps://api.ailoot.ai/v1/videos/{id}
GEThttps://api.ailoot.ai/v1/videos/{id}/content

Dieselben Adressen funktionieren auch mit dem Präfix /v1/videos/generations/{id}. Der Status eines abgeschlossenen Auftrags und die Antwortfelder hängen vom Modell ab — orientieren Sie sich am Statusfeld und rufen Sie die Datei über folgenden Pfad ab: /content.

Erstellen → Status → Herunterladen

Speichern Sie die Antwort auf die Erstellung und ihre Request ID. Bei MiniMax/HappyHorse bedeutet status: completed die Fertigstellung; die Antwort enthält content_url, data[] und usage. Bei Grok lautet der Status status: done mit video.url. Google Omni gibt zunächst 202 queued zurück, danach in_progress mit Retry-After, completed oder partial/content_revoked. Nicht jede 200-Antwort bedeutet, dass das Video fertig ist. Enthält die Statusantwort result_pending_check: true (status bleibt in_progress), wird das Ergebnis noch geprüft. Erstellen Sie den Auftrag nicht erneut — prüfen Sie ihn später über GET /v1/videos/{id} oder kontaktieren Sie den Support mit der Request ID.

/content kann MP4 direkt oder eine Weiterleitung zur signierten Datei zurückgeben. Enthält die Antwort mehrere Ergebnisse in data[], speichern Sie jedes davon: Alle bereitgestellten Ergebnisse werden abgerechnet. Videoaufträge können über die API weder abgebrochen noch gelöscht werden. Das Löschen einer fertigen Datei sperrt den Zugriff, bricht aber die Generierung nicht ab.

Abgerechnet wird pro Sekunde des fertigen Videos in der gewählten Auflösung oder pro Video, wie im Katalog angegeben. Die gesamten Kosten werden beim Erstellen des Auftrags reserviert.

Musik

POSThttps://api.ailoot.ai/v1/music/generations
  • modelstringerforderlich

    google/lyria, google/lyria-3-clip-preview.

  • promptstringerforderlich

    Beschreibung des Musikstücks: Genre, Instrumente, Stimmung.

In der Antwort enthält data[] Links zu fertigen Clips. Ein Modell kann pro Anfrage mehrere Clips zurückgeben; jeder bereitgestellte Clip wird abgerechnet.

Noch Fragen? Schicken Sie uns die Request ID und eine Beschreibung — wir helfen Ihnen weiter.Support kontaktieren