Video dan musik
MarkdownGenerasi video dan musik: permintaan membuat tugas, hasilnya diambil menggunakan ID tugas tersebut.
Panduan lengkap
https://api.ailoot.ai/v1/videos# Simpan Request ID: dukungan menggunakannya untuk menemukan permintaan Anda.
# Buat tugas satu kali; pengulangan di bawah ini hanya membaca statusnya.
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":"danau yang tenang","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=""
# Pengulangan ini hanya membaca tugas asli. Permintaan pembuatan tidak pernah dikirim ulang.
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 tetap in_progress): hasil sedang diperiksa. Hentikan; jangan pernah membuat tugas yang sama lagi.
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 atau status lainnya: tampilkan status tersebut dan hentikan. Jangan pernah membuat tugas yang sama lagi.
*) 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
# Jika pembuatan tugas melampaui batas waktu, periksa Request ID di riwayat penggunaan sebelum menjalankan skrip ini lagi.curl https://api.ailoot.ai/v1/music/generations \
-H "Authorization: Bearer $AILOOT_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "google/lyria", "prompt": "Alunan piano dan selo yang tenang, tanpa vokal"}' // Pengenal tugas terdapat pada kolom id atau request_id
{ "id": "…", … }
// Format bergantung pada model: ambil pengenal
// dari respons pembuatan tanpa mengubahnya.Autentikasi
- Authorizationheaderwajib
Kunci dalam format
Bearer sk-…. Header yang juga dapat digunakan:x-api-keyataux-goog-api-key.
Video: isi permintaan
- modelstringwajib
Model video:
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. - promptstringwajib
Deskripsi video.
- duration / secondsinteger / stringopsional
Bergantung pada keluarga model: Grok 1–15 detik, MiniMax 6/10 pada 768P atau 6 pada 1080P, HappyHorse 3–15; Google Omni 4/6/8/10. Jangan gunakan kolom dari satu keluarga untuk keluarga lainnya.
- resolution / sizestringopsional
Grok: 480p/720p/1080p (1080p untuk video-1.5), atau size 1280x720/720x1280/1920x1080/1080x1920. MiniMax: 768P/1080P. HappyHorse: 480P/720P/1080P. Google Omni: 360p/720p.
- image / first_frame_image / image_urlsstring / arrayopsional
Kolom gambar sumber bergantung pada keluarga dan mode. MiniMax Fast memerlukan first_frame_image. HappyHorse t2v — tanpa images; i2v — tepat satu gambar tanpa ratio; r2v — 1–9 gambar.
Respons berisi ID tugas (kolom id atau request_id). Gunakan apa adanya, tanpa menguraikannya: format bergantung pada model. Status dan file hasil:
https://api.ailoot.ai/v1/videos/{id}https://api.ailoot.ai/v1/videos/{id}/contentAlamat yang sama juga dapat digunakan dengan prefiks /v1/videos/generations/{id}. Status tugas selesai dan kolom respons bergantung pada model — perhatikan kolom status dan ambil file melalui /content.
Pembuatan → status → unduhan
Simpan respons pembuatan dan Request ID-nya. Untuk MiniMax/HappyHorse, status selesai adalah status: completed, respons berisi content_url, data[] dan usage. Untuk Grok — status: done dengan video.url. Google Omni mengembalikan 202 queued, lalu in_progress dengan Retry-After, completed, atau partial/content_revoked. Jangan menganggap setiap 200 sebagai video yang sudah selesai. Jika respons status berisi result_pending_check: true (status sementara in_progress), hasil sedang diperiksa. Jangan buat ulang tugas — periksa nanti melalui GET /v1/videos/{id} atau hubungi dukungan dengan Request ID.
/content dapat mengembalikan MP4 secara langsung atau mengalihkan ke file bertanda tangan. Jika respons memuat beberapa hasil dalam data[], simpan semuanya: seluruh hasil yang dikirim dikenai biaya. Tugas video tidak dapat dibatalkan atau dihapus melalui API. Menghapus file hasil menutup akses ke file, tetapi tidak membatalkan generasi.
Biaya dihitung per detik video hasil pada resolusi yang dipilih atau per video, sesuai katalog. Saldo sebesar biaya penuh ditahan saat tugas dibuat.
Musik
https://api.ailoot.ai/v1/music/generations- modelstringwajib
google/lyria,google/lyria-3-clip-preview. - promptstringwajib
Deskripsi trek: genre, instrumen, suasana.
Dalam respons, data[] berisi tautan klip hasil. Model dapat mengembalikan beberapa klip dalam satu permintaan; setiap klip yang dikirim dikenai biaya.