Video und Musik
MarkdownVideos und Musik generieren: Die Anfrage erstellt einen Job, dessen Ergebnis über seine Kennung abgerufen wird.
Vollständiger Leitfaden
https://api.ailoot.ai/v1/videos# 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.curl https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "google/lyria", "prompt": "Ruhiges Klavier und Cello, ohne Gesang"}' // 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 Headerx-api-keyoderx-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:
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}. 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
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[] die Links zu fertigen Clips. Ein Modell kann mit einer Anfrage mehrere Clips liefern; jeder gelieferte Clip wird berechnet.