Video en muziek
MarkdownVideo’s en muziek genereren: het verzoek maakt een taak aan, en je haalt het resultaat op met de taak-ID.
Volledige gids
https://api.ailoot.ai/v1/videos# Bewaar de Request ID: de klantenservice gebruikt deze om je verzoek terug te vinden.
# Maak de taak één keer aan; de onderstaande lus leest alleen de 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":"een rustig meer","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=""
# Deze lus leest alleen de oorspronkelijke taak. Het aanmaakverzoek wordt nooit opnieuw verstuurd.
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 (de status blijft in_progress): het resultaat wordt gecontroleerd. Stop; maak de taak nooit opnieuw aan.
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 of een andere status: toon deze en stop. Maak de taak nooit opnieuw aan.
*) 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
# Controleer na een time-out bij het aanmaken de Request ID in je gebruiksgeschiedenis voordat je dit script opnieuw uitvoert.curl https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "google/lyria", "prompt": "Rustige piano en cello, zonder zang"}' // De taak-ID staat in het veld id of request_id
{ "id": "…", … }
// Het formaat hangt af van het model: neem de ID
// ongewijzigd over uit het antwoord op het aanmaakverzoek.Authenticatie
- Authorizationheaderverplicht
Sleutel in de vorm
Bearer sk-…. Ook de headersx-api-keyofx-goog-api-key.
Video: verzoekbody
- modelstringverplicht
Videomodel:
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. - promptstringverplicht
Beschrijving van de video.
- duration / secondsinteger / stringoptioneel
Hangt af van de modelfamilie: Grok 1–15 seconden, MiniMax 6/10 bij 768P of 6 bij 1080P, HappyHorse 3–15; Google Omni 4/6/8/10. Gebruik het veld van de ene modelfamilie niet voor een andere.
- resolution / sizestringoptioneel
Grok: 480p/720p/1080p (1080p bij video-1.5), of size 1280x720/720x1280/1920x1080/1080x1920. MiniMax: 768P/1080P. HappyHorse: 480P/720P/1080P. Google Omni: 360p/720p.
- image / first_frame_image / image_urlsstring / arrayoptioneel
Velden voor bronafbeeldingen hangen af van de modelfamilie en modus. MiniMax Fast vereist first_frame_image. HappyHorse t2v — zonder images, i2v — precies één afbeelding zonder ratio, r2v — 1–9 afbeeldingen.
Het antwoord bevat de taak-ID (veld id of request_id). Gebruik deze ongewijzigd en parse hem niet: het formaat hangt af van het model. Status en voltooid bestand:
https://api.ailoot.ai/v1/videos/{id}https://api.ailoot.ai/v1/videos/{id}/contentDezelfde adressen werken ook met het voorvoegsel /v1/videos/generations/{id}. De status van een voltooide taak en de antwoordvelden hangen af van het model — kijk naar het statusveld en haal het bestand op via /content.
Aanmaken → status → downloaden
Bewaar het antwoord op het aanmaken en de Request ID daarvan. Bij MiniMax/HappyHorse betekent voltooid: status: completed, het antwoord bevat content_url, data[] en usage. Bij Grok: status: done met video.url. Google Omni geeft 202 queued terug, daarna in_progress met Retry-After, completed of partial/content_revoked. Beschouw niet elke 200 als een voltooide video. Als het statusantwoord result_pending_check: true (status waarbij in_progress) bevat, wordt het resultaat nog gecontroleerd. Maak de taak niet opnieuw aan — controleer deze later via GET /v1/videos/{id} of neem contact op met support met de Request ID.
/content kan rechtstreeks MP4 teruggeven of doorsturen naar een ondertekend bestand. Als het antwoord meerdere resultaten bevat in data[], sla elk resultaat op: alle geleverde resultaten worden in rekening gebracht. Je kunt een videotaak niet via de API annuleren of verwijderen. Het verwijderen van het voltooide bestand sluit de toegang daartoe af, maar annuleert de generatie niet.
Je betaalt per seconde voltooide video in de gekozen resolutie of per video, zoals vermeld in de catalogus. Bij het aanmaken van de taak worden de volledige kosten gereserveerd.
Muziek
https://api.ailoot.ai/v1/music/generations- modelstringverplicht
google/lyria,google/lyria-3-clip-preview. - promptstringverplicht
Beschrijving van de track: genre, instrumenten en sfeer.
In het antwoord bevat data[] links naar voltooide clips. Eén verzoek kan meerdere clips opleveren; elke geleverde clip wordt in rekening gebracht.