Video und Musik
MarkdownVideos und Musik generieren: Die Anfrage erstellt einen Auftrag; das Ergebnis wird anhand seiner ID abgerufen.
Vollständiger Leitfaden
https://api.ailoot.ai/v1/videos# 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.curl https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "google/lyria", "prompt": "Ruhige Klavier- und Cellomusik, ohne Gesang"}' // 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 Headerx-api-keyoderx-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:
https://api.ailoot.ai/v1/videos/{id}https://api.ailoot.ai/v1/videos/{id}/contentDieselben 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
https://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.