dokumentasi
API

Video dan musik

Markdown

Generasi video dan musik: permintaan membuat tugas, hasilnya diambil menggunakan ID tugas tersebut.

Panduan lengkap
POSThttps://api.ailoot.ai/v1/videos
Video dan musik
# 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.
Respons · disingkat
// 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-key atau x-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:

GEThttps://api.ailoot.ai/v1/videos/{id}
GEThttps://api.ailoot.ai/v1/videos/{id}/content

Alamat 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

POSThttps://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.

Masih ada pertanyaan? Kirim Request ID dan penjelasannya — kami akan membantu.Hubungi dukungan