Source: https://ailoot.ai/docs/ms/api/video-music/
Canonical: https://ailoot.ai/docs/ms/api/video-music/
Language: ms

[API](https://ailoot.ai/docs/ms/) 

# Video dan muzik

[Markdown](https://ailoot.ai/docs/ms/api/video-music/index.md)

Penjanaan video dan muzik: permintaan mencipta tugasan, dan hasil diambil menggunakan pengecamnya.

POST`https://api.ailoot.ai/v1/videos`

Video dan muzik

```bash
# Simpan Request ID: pasukan sokongan menggunakannya untuk mencari permintaan anda.
# Cipta tugas sekali sahaja; gelung di bawah 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":"tasik 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=""
# Gelung ini hanya membaca tugas asal. Ia tidak pernah menghantar semula permintaan penciptaan.
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 kekal in_progress): hasil sedang disemak. Berhenti; jangan cipta tugas itu 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 sebarang status lain: paparkan status itu dan berhenti. Jangan cipta tugas itu 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
# Selepas penciptaan tamat masa, semak Request ID dalam sejarah penggunaan anda sebelum menjalankan skrip ini semula.
```

```bash
curl https://api.ailoot.ai/v1/music/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "google/lyria", "prompt": "Piano dan selo yang tenang, tanpa vokal"}' 
```

Respons · dipendekkan

```json
// Pengecam tugas terdapat dalam medan id atau request_id
{ "id": "…", … }

// Format bergantung pada model: ambil pengecam
// daripada respons penciptaan tanpa perubahan.
```

## Pengesahan

| Parameter | Jenis | Wajib | Penerangan |
| --- | --- | --- | --- |
| `Authorization` | header | wajib | Kunci dalam bentuk `Bearer sk-…`. Pengepala berikut juga boleh digunakan `x-api-key` atau `x-goog-api-key`. |

## Video: badan permintaan

| Parameter | Jenis | Wajib | Penerangan |
| --- | --- | --- | --- |
| `model` | string | wajib | 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`. |
| `prompt` | string | wajib | Penerangan video. |
| `duration / seconds` | integer / string | pilihan | Bergantung pada keluarga model: Grok 1–15 saat, MiniMax 6/10 pada 768P atau 6 pada 1080P, HappyHorse 3–15; Google Omni 4/6/8/10. Jangan gunakan medan satu keluarga model untuk keluarga yang lain. |
| `resolution / size` | string | pilihan | 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_urls` | string / array | pilihan | Medan imej sumber bergantung pada keluarga model dan mod. MiniMax Fast memerlukan first\_frame\_image. HappyHorse t2v — tanpa images, i2v — tepat satu imej tanpa ratio, r2v — 1–9 imej. |

Respons mengandungi pengecam tugasan (medan `id` atau `request_id`). Gunakannya tanpa perubahan dan tanpa menghuraikannya: format bergantung pada model. Status dan fail yang siap:

GET`https://api.ailoot.ai/v1/videos/{id}`

GET`https://api.ailoot.ai/v1/videos/{id}/content`

Alamat yang sama juga berfungsi dengan awalan `/v1/videos/generations/{id}`. Status tugasan yang siap dan set medan respons bergantung pada model — rujuk medan status dan ambil fail melalui `/content`.

## Cipta → status → muat turun

Simpan respons penciptaan dan Request ID-nya. Untuk MiniMax/HappyHorse, status siap ialah `status: completed`, respons mengandungi `content_url`, `data[]` dan usage. Untuk Grok — `status: done` dengan `video.url`. Google Omni mengembalikan 202 queued, kemudian in\_progress dengan Retry-After, completed atau partial/content\_revoked. Jangan anggap setiap 200 sebagai video yang siap. Jika respons status mengandungi `result_pending_check: true` (`status` dengan status `in_progress`), hasil sedang diperiksa. Jangan cipta tugasan itu semula — semak kemudian melalui GET /v1/videos/{id} atau hubungi sokongan dengan Request ID.

`/content` boleh mengembalikan MP4 secara langsung atau mengubah hala ke fail dengan pautan bertandatangan. Jika respons mengandungi beberapa hasil dalam `data[]`, simpan semuanya: semua hasil yang dihantar dicaj. Tugasan video tidak boleh dibatalkan atau dipadam melalui API. Memadam fail yang siap menutup akses kepadanya, tetapi tidak membatalkan penjanaan.

Bayaran dikira bagi setiap saat video yang siap pada resolusi yang dipilih atau bagi setiap video, seperti yang dinyatakan dalam katalog. Kos penuh dirizabkan semasa tugasan dicipta.

## Muzik

POST`https://api.ailoot.ai/v1/music/generations`

| Parameter | Jenis | Wajib | Penerangan |
| --- | --- | --- | --- |
| `model` | string | wajib | `google/lyria`, `google/lyria-3-clip-preview`. |
| `prompt` | string | wajib | Penerangan trek: genre, alat muzik, suasana. |

Dalam respons `data[]` — pautan ke klip yang siap. Model boleh mengembalikan beberapa klip bagi satu permintaan; setiap klip yang dihantar dicaj.

Jangan hantar semula permintaan video atau muzik jika sambungan terputus: tugasan mungkin sudah bermula. Semak status menggunakan pengecam terlebih dahulu atau hubungi sokongan dengan Request ID.

Masih ada soalan? Hantar Request ID dan penerangannya — kami akan membantu menyiasatnya.[Hubungi sokongan](mailto:support@ailoot.ai)

## Ailoot · Syarikat dan portfolio projeknya





Ailoot berteraskan pengalaman operasi yang mantap, pangkalan pelanggan yang besar, perkhidmatan yang stabil dan pemantauan KPI berterusan.





Syarikat dan portfolio projeknya: jutaan pelanggan; jualan bernilai berbilion setiap bulan.





Ailoot menggunakan pengalaman operasi ini untuk akses API kepada ciri AI dalam produk pelanggan, ejen, aplikasi dan automasi.
