Doku
API

Video und Musik

Markdown

Videos und Musik generieren: Die Anfrage erstellt einen Job, dessen Ergebnis über seine Kennung abgerufen wird.

Vollständiger Leitfaden
POSThttps://api.ailoot.ai/v1/videos
Video und Musik
# Bewahren Sie die Request ID auf: Der Support findet damit Ihre Anfrage.
# Erstellen Sie den Auftrag einmal; die folgende Schleife liest nur seinen 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 nur den ursprünglichen Auftrag. Sie sendet die Erstellungsanfrage nie erneut.
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. Stoppen Sie; erstellen Sie den Auftrag niemals erneut.
  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 jeder andere Status: Zeigen Sie ihn an und stoppen Sie. Erstellen Sie den Auftrag niemals erneut.
    *) 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
# Prüfen Sie nach einem Timeout beim Erstellen die Request ID in Ihrem Nutzungsverlauf, bevor Sie dieses Skript erneut ausführen.
Antwort · gekürzt
// Die Auftrags-ID steht im Feld id oder request_id
{ "id": "…", … }

// Das Format hängt vom Modell ab: Übernehmen Sie die ID
// aus der Erstellungsantwort unverändert.

Authentifizierung

  • Authorizationheadererforderlich

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

Video: Anfrageinhalt

  • 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 Felder nicht von einer Familie auf eine andere.

  • resolution / sizestringoptional

    Grok: 480p/720p/1080p (1080p bei video-1.5) oder 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 mit genau einem Bild ohne ratio und r2v mit 1–9 Bildern.

Die Antwort enthält die Job-Kennung (Feld id oder request_id). Verwenden Sie sie unverändert, ohne sie zu zerlegen; ihr 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}. Status eines fertigen Jobs und Antwortfelder hängen vom Modell ab; orientieren Sie sich am Statusfeld und holen Sie die Datei über /content.

Erstellung → Status → Download

Speichern Sie die Erstellungsantwort und ihre Request ID. Für MiniMax/HappyHorse kennzeichnet folgender Status den Abschluss: status: completed, die Antwort enthält content_url, data[] und usage. Für Grok gilt status: done mit video.url. Google Omni liefert 202 queued, danach in_progress mit Retry-After, completed oder partial/content_revoked. Behandeln Sie nicht jede 200-Antwort als fertiges Video. Wenn die Statusantwort result_pending_check: true (status weiterhin in_progress) enthält, wird das Ergebnis noch geprüft. Erstellen Sie den Job 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 auf eine signierte Datei liefern. Enthält die Antwort mehrere Ergebnisse in data[], speichern Sie jedes davon: Alle gelieferten Ergebnisse werden berechnet. Ein Videojob kann nicht über die API abgebrochen oder gelöscht werden. Das Löschen der fertigen Datei sperrt den Zugriff darauf, macht die Generierung aber nicht rückgängig.

Abgerechnet werden Sekunden des fertigen Videos in der gewählten Auflösung oder das Video als Ganzes, wie im Katalog angegeben. Die vollständigen Kosten werden bei der Joberstellung 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[] die Links zu fertigen Clips. Ein Modell kann mit einer Anfrage mehrere Clips liefern; jeder gelieferte Clip wird berechnet.

Noch Fragen? Senden Sie uns die Request ID und eine Beschreibung, damit wir Ihnen weiterhelfen können.Support kontaktieren