model

happyhorse-1.1-t2v

Markdown · JSON

happyhorse-1.1-t2v

Model untuk membuat video pendek dengan suara dari deskripsi teks. Cocok untuk adegan yang gerakan, komposisi, dan gaya visualnya ditentukan melalui kata-kata.

Tentang model

Deskripsi ini mencakup kemampuan model. Masukan, keluaran, dan opsi yang tersedia di Ailoot tercantum di bawah untuk metode yang dipilih.

HappyHorse-1.1-T2V adalah model Alibaba untuk membuat adegan video pendek dari teks. Deskripsi menentukan karakter, tindakan, latar, dan penyajian visual; mode ini tidak memerlukan gambar sumber. Model menghasilkan rangkaian gambar video dan dapat membuat suara yang menyertainya.

Produsen menekankan pemahaman makna adegan, penataan sinematik, dan gerakan yang ekspresif. Teks dapat menentukan suasana, tindakan karakter, perilaku objek, dan dinamika fisik. Dengan demikian, adegan dapat dibangun berdasarkan peristiwa yang harus terjadi, lalu diarahkan melalui pencahayaan, sudut pandang, dan gerakan kamera.

Menata adegan melalui kata-kata

Instruksi wajib diberikan dan dapat menggunakan bahasa apa pun. Instruksi dapat memuat hingga 5000 karakter non-Tionghoa atau 2500 karakter Tionghoa; bagian yang melebihi batas dibuang. Tindakan, lingkungan, dan detail visual penting perlu dijelaskan dalam batas ini. Pendekatan tersebut memberi model ruang untuk membuat adegan baru, alih-alih menetapkan bingkai pertama yang sudah jadi.

Dalam mode ini, teks menjadi materi pengendali utama. Wujud karakter atau objek tertentu dapat dijelaskan melalui kata-kata; kemampuan untuk menyampaikan penampilannya melalui gambar terpisah merupakan bagian dari mode lain dalam keluarga ini. Hasil bergantung pada keseluruhan instruksi, sehingga nilai awal keacakan yang sama membantu menghasilkan variasi yang mirip, tetapi tidak menjamin pengulangan yang persis sama.

Video dan suara pengiring

Untuk HappyHorse-1.1, durasi video dipilih sebagai bilangan bulat dari 3 hingga 15 detik. Tingkat resolusi yang didukung adalah 480P, 720P, dan 1080P. Berkas hasil berformat MP4 dengan laju 24 bingkai per detik. Model dapat menghasilkan suara bersama gambar, menghubungkan suara pengiring dengan peristiwa dalam adegan.

Bentuk bingkai dapat ditentukan sejak awal. Pilihan yang tersedia adalah 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, dan 21:9 — mulai dari bingkai sinematik lebar hingga video vertikal memanjang. Resolusi, format, dan durasi menentukan dimensi hasil; isi dan gerakan ditentukan oleh teks.

Varian ini ditujukan untuk membuat adegan baru dari gagasan yang disampaikan melalui kata-kata. Model cocok untuk episode singkat, gagasan visual, atau video bernuansa tertentu yang penataan adegannya perlu dirumuskan dalam teks.

Ailoot · Pemrosesan video POST /v1/videos/generations happyhorse-1.1-t2v

happyhorse-1.1-t2v

Alibaba /happyhorse-1.1-t2v
ID model
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Mulai

Model untuk membuat video pendek dengan suara dari deskripsi teks. Cocok untuk adegan yang gerakan, komposisi, dan gaya visualnya ditentukan melalui kata-kata.

Masukan yang diterima
Teks
Hasil
Video

Tersedia di Ailoot · masukan & metode

Ailoot · Pemrosesan video POST /v1/videos/generations
Masukan
text
Keluaran
video
Format keluaran
mp4
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
happyhorse-1.1-t2v
Bawaan—
KolompromptJenisstringPersyaratanWajibNilai & batasan
Panjang minimum: 1
Bawaan—
KolomdurationJenisintegerPersyaratanOpsionalNilai & batasan
Minimum: 3
Maksimum: 15
Satuan: detik
Bawaan5
KolomresolutionJenisstringPersyaratanOpsionalNilai & batasan
480P, 720P, 1080P
Bawaan720P
KolomratioJenisstringPersyaratanOpsionalNilai & batasan
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Bawaan16:9
Kolomimage_urlsJenishttps_url|data_image_url[]PersyaratanOpsionalNilai & batasan
Item minimum: 0
Item maksimum: 0
Byte terdekode maksimum: 20.971.520
Jenis MIME: image/jpeg, image/png, image/webp
Bawaan—
Kombinasi bahan masukan

Teks ke video · Wajib: prompt

Parameter metode dan siklus hidup
ParameterKontrak
Parametercontent_typeKontrakapplication/json
ParameterrequiredKontrakmodel, prompt
Parametermaterial_typesKontraktext
ParameteroptionalKontrakduration, resolution, ratio
Parameterduration_integer_rangeKontrak3, 15
Parameterdefault_durationKontrak5
ParameterresolutionKontrak480P, 720P, 1080P
Parameterdefault_resolutionKontrak720P
ParameterratioKontrak16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Parameterratio_must_omitKontrakfalse
Parameterimage_urlsKontrak{"max_count":0}

Siklus hidup: submit_once_poll_original

GET /v1/videos/{request_id}

GET /v1/videos/generations/{request_id}

GET /v1/videos/{request_id}/content

GET /v1/videos/generations/{request_id}/content

Struktur metode dan ID bersifat eksak; kemampuan pemasok terpisah dari penerimaan permintaan.

Paket

Tarif metode Ailoot

Ailoot Pemrosesan videoPOST /v1/videos/generations
Keluaran
US$0,18 per detik pada 1080p
Keluaran
US$0,07 per detik pada 480p
Keluaran
US$0,14 per detik pada 720p

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →

Contoh permintaan

Ailoot · Pemrosesan video

Contoh adegan
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-1.1-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT

Terima dan simpan hasil

Ailoot · Pemrosesan video

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Periksa status tugas
GET status
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
Simpan semua aset yang selesai
GET semua aset yang selesai
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
Pembacaan konten lain
GET konten
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Simpan semua hasil yang selesai

Simpan setiap video yang selesai atau berkas yang dikembalikan; ambil setiap URL aset yang benar-benar dikembalikan.

Pertahankan setiap item data/indeks keluaran yang dikembalikan. content_url hanya menunjuk yang pertama; ambil setiap jalur konten/aset aktual. GET content tanpa index tidak mencakup semua keluaran.

Jika respons asli perlu diperiksa

Baca tugas awal yang sudah ada; jangan pernah kirim ulang pengiriman yang statusnya tidak diketahui.

Kolom respons
KolomJenis
KolomidJenisstring
KolomobjectJenisstring
KolommodelJenisstring
KolomstatusJenisstring
Kolomcontent_urlJenissigned URL
Kolomdata[]Jenissigned URL
KolomusageJenisobject
Kolomresult_pending_checkJenisboolean
Kesalahan dan langkah berikutnya
ResponsKondisiLangkah berikutnya
Respons400 · invalid_request_errorKondisiBidang wajib, representasi materi, atau nilai parameter tidak validLangkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.
Respons409 · video_not_readyKondisiKonten hasil awal belum tersediaLangkah berikutnyaPeriksa ID awal yang dikembalikan secara berkala dan patuhi Retry-After.
Responsserver_errorKondisiRespons yang dikembalikan menyatakan bahwa operasi atau hasil perlu diperiksaLangkah berikutnyaSimpan ID operasi/tugas asli yang dikembalikan, header permintaan, dan respons; lanjutkan pembacaan yang didukung untuk operasi asli tersebut. Jangan kirim ulang permintaan pembuatan.

Alias

Alias model

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Alias jalur metode

Gunakan jalur metode yang ditampilkan di atas.

ID pemanggil terkait

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Ailoot · Pemrosesan video POST /v1/videos/generations happyhorse-t2v

happyhorse-t2v

Alibaba /happyhorse-t2v
ID model
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Mulai

Model untuk membuat video pendek dengan suara dari deskripsi teks. Cocok untuk adegan yang gerakan, komposisi, dan gaya visualnya ditentukan melalui kata-kata.

Masukan yang diterima
Teks
Hasil
Video

Tersedia di Ailoot · masukan & metode

Ailoot · Pemrosesan video POST /v1/videos/generations
Masukan
text
Keluaran
video
Format keluaran
mp4
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
happyhorse-t2v
Bawaan—
KolompromptJenisstringPersyaratanWajibNilai & batasan
Panjang minimum: 1
Bawaan—
KolomdurationJenisintegerPersyaratanOpsionalNilai & batasan
Minimum: 3
Maksimum: 15
Satuan: detik
Bawaan5
KolomresolutionJenisstringPersyaratanOpsionalNilai & batasan
480P, 720P, 1080P
Bawaan720P
KolomratioJenisstringPersyaratanOpsionalNilai & batasan
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Bawaan16:9
Kolomimage_urlsJenishttps_url|data_image_url[]PersyaratanOpsionalNilai & batasan
Item minimum: 0
Item maksimum: 0
Byte terdekode maksimum: 20.971.520
Jenis MIME: image/jpeg, image/png, image/webp
Bawaan—
Kombinasi bahan masukan

Teks ke video · Wajib: prompt

Parameter metode dan siklus hidup
ParameterKontrak
Parametermaterial_typesKontraktext
ParameterrequiredKontraknull
Parameteroptional_controlsKontraknull

Siklus hidup: submit_once_poll_original

GET /v1/videos/{request_id}

GET /v1/videos/generations/{request_id}

GET /v1/videos/{request_id}/content

GET /v1/videos/generations/{request_id}/content

Struktur metode dan ID bersifat eksak; kemampuan pemasok terpisah dari penerimaan permintaan.

Paket

Tarif metode Ailoot

Ailoot Pemrosesan videoPOST /v1/videos/generations
Keluaran
US$0,18 per detik pada 1080p
Keluaran
US$0,07 per detik pada 480p
Keluaran
US$0,14 per detik pada 720p

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →

Contoh permintaan

Ailoot · Pemrosesan video

Contoh adegan
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT

Terima dan simpan hasil

Ailoot · Pemrosesan video

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Periksa status tugas
GET status
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
Simpan semua aset yang selesai
GET semua aset yang selesai
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
Pembacaan konten lain
GET konten
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Simpan semua hasil yang selesai

Simpan setiap video yang selesai atau berkas yang dikembalikan; ambil setiap URL aset yang benar-benar dikembalikan.

Pertahankan setiap item data/indeks keluaran yang dikembalikan. content_url hanya menunjuk yang pertama; ambil setiap jalur konten/aset aktual. GET content tanpa index tidak mencakup semua keluaran.

Jika respons asli perlu diperiksa

Baca tugas awal yang sudah ada; jangan pernah kirim ulang pengiriman yang statusnya tidak diketahui.

Kolom respons
KolomJenis
KolomidJenisstring
KolomobjectJenisstring
KolommodelJenisstring
KolomstatusJenisstring
Kolomcontent_urlJenissigned URL
Kolomdata[]Jenissigned URL
KolomusageJenisobject
Kolomresult_pending_checkJenisboolean
Kesalahan dan langkah berikutnya
ResponsKondisiLangkah berikutnya
Respons400 · invalid_request_errorKondisiBidang wajib, representasi materi, atau nilai parameter tidak validLangkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.
Respons409 · video_not_readyKondisiKonten hasil awal belum tersediaLangkah berikutnyaPeriksa ID awal yang dikembalikan secara berkala dan patuhi Retry-After.
Responsserver_errorKondisiRespons yang dikembalikan menyatakan bahwa operasi atau hasil perlu diperiksaLangkah berikutnyaSimpan ID operasi/tugas asli yang dikembalikan, header permintaan, dan respons; lanjutkan pembacaan yang didukung untuk operasi asli tersebut. Jangan kirim ulang permintaan pembuatan.

Alias

Alias model

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Alias jalur metode

Gunakan jalur metode yang ditampilkan di atas.

ID pemanggil terkait

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Ailoot · Pemrosesan video POST /v1/videos/generations happyhorse-t2v-latest

happyhorse-t2v-latest

Alibaba /happyhorse-t2v-latest
ID model
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Mulai

Model untuk membuat video pendek dengan suara dari deskripsi teks. Cocok untuk adegan yang gerakan, komposisi, dan gaya visualnya ditentukan melalui kata-kata.

Masukan yang diterima
Teks
Hasil
Video

Tersedia di Ailoot · masukan & metode

Ailoot · Pemrosesan video POST /v1/videos/generations
Masukan
text
Keluaran
video
Format keluaran
mp4
KolomJenisPersyaratanNilai & batasanBawaan
KolommodelJenisstringPersyaratanWajibNilai & batasan
happyhorse-t2v-latest
Bawaan—
KolompromptJenisstringPersyaratanWajibNilai & batasan
Panjang minimum: 1
Bawaan—
KolomdurationJenisintegerPersyaratanOpsionalNilai & batasan
Minimum: 3
Maksimum: 15
Satuan: detik
Bawaan5
KolomresolutionJenisstringPersyaratanOpsionalNilai & batasan
480P, 720P, 1080P
Bawaan720P
KolomratioJenisstringPersyaratanOpsionalNilai & batasan
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Bawaan16:9
Kolomimage_urlsJenishttps_url|data_image_url[]PersyaratanOpsionalNilai & batasan
Item minimum: 0
Item maksimum: 0
Byte terdekode maksimum: 20.971.520
Jenis MIME: image/jpeg, image/png, image/webp
Bawaan—
Kombinasi bahan masukan

Teks ke video · Wajib: prompt

Parameter metode dan siklus hidup
ParameterKontrak
Parametermaterial_typesKontraktext
ParameterrequiredKontraknull
Parameteroptional_controlsKontraknull

Siklus hidup: submit_once_poll_original

GET /v1/videos/{request_id}

GET /v1/videos/generations/{request_id}

GET /v1/videos/{request_id}/content

GET /v1/videos/generations/{request_id}/content

Struktur metode dan ID bersifat eksak; kemampuan pemasok terpisah dari penerimaan permintaan.

Paket

Tarif metode Ailoot

Ailoot Pemrosesan videoPOST /v1/videos/generations
Keluaran
US$0,18 per detik pada 1080p
Keluaran
US$0,07 per detik pada 480p
Keluaran
US$0,14 per detik pada 720p

Ailoot mencadangkan perkiraan dana sebelum permintaan. Setelah hasil diterima, tagihan akhir diselesaikan berdasarkan penggunaan yang terukur. Penyelesaian tagihan streaming menggunakan catatan penggunaan akhir. Cara kerja cadangan dan penyelesaian tagihan →

Contoh permintaan

Ailoot · Pemrosesan video

Contoh adegan
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_PROMPT_FILE:?Set your actual UTF-8 scene brief}"
export AILOOT_PROMPT_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
p=json.loads('{"model": "happyhorse-t2v-latest", "prompt": "", "duration": 5, "resolution": "720P", "ratio": "16:9"}')
f=Path(os.environ["AILOOT_PROMPT_FILE"])
if not f.is_file():raise SystemExit("Choose your actual UTF-8 brief")
p['prompt']=f.read_text(encoding="utf-8")
if not p['prompt'].strip():raise SystemExit("Brief must contain text")
Path("request.json").write_text(json.dumps(p,ensure_ascii=False))
PY_REQUEST
curl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos/generations \
  -H "Authorization: Bearer $AILOOT_API_KEY" -H 'Content-Type: application/json' \
  --data-binary @request.json -D response-headers.txt -o result.json
python3 - <<'PY_RESULT'
import json
from pathlib import Path
print(json.dumps(json.loads(Path("result.json").read_text()),ensure_ascii=False,indent=2))
PY_RESULT

Terima dan simpan hasil

Ailoot · Pemrosesan video

mp4

  • GET /v1/videos/{request_id}
  • GET /v1/videos/generations/{request_id}
  • GET /v1/videos/{request_id}/content
  • GET /v1/videos/generations/{request_id}/content
Periksa status tugas
GET status
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o status.json
python3 - <<'PY_STATUS'
import json
from pathlib import Path
r=json.loads(Path("status.json").read_text())
print(json.dumps(r))
if r.get("status")=="completed":
    for x in r.get("data",[]):print(x)
PY_STATUS
Simpan semua aset yang selesai
GET semua aset yang selesai
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}"
export AILOOT_STATUS_FILE
python3 - <<'PY_REQUEST'
import json,os
from pathlib import Path
from urllib.parse import urlsplit,urljoin
f=Path(os.environ["AILOOT_STATUS_FILE"])
if not f.is_file():raise SystemExit("Choose the actual completed status file")
r=json.loads(f.read_text())
if r.get("status")!="completed" or not isinstance(r.get("data"),list) or not r["data"]:raise SystemExit("Wait for a completed status with asset paths")
urls=[]
for x in r["data"]:
    if not isinstance(x,str) or "\n" in x or "\r" in x:raise SystemExit("Invalid asset path")
    u=urljoin("https://api.ailoot.ai",x)
    z=urlsplit(u)
    if z.scheme!="https" or z.netloc!="api.ailoot.ai" or z.username or z.password:raise SystemExit("Use the actual Ailoot asset paths from status")
    urls.append(u)
Path("asset-urls.txt").write_text("\n".join(urls)+"\n")
PY_REQUEST
index=0
while IFS= read -r asset_url; do
  curl --fail-with-body --silent --show-error "$asset_url" \
    -H "Authorization: Bearer $AILOOT_API_KEY" -o "video-${index}.mp4"
  index=$((index + 1))
done < asset-urls.txt
Pembacaan konten lain
GET konten
set -eu
: "${AILOOT_API_KEY:?Set your Ailoot API key}"
: "${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}"
export AILOOT_OPERATION_ID
operation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ["AILOOT_OPERATION_ID"],safe=""))')
curl --fail-with-body --silent --show-error "https://api.ailoot.ai/v1/videos/generations/$operation_id/content" \
  -H "Authorization: Bearer $AILOOT_API_KEY" -o video.mp4
Simpan semua hasil yang selesai

Simpan setiap video yang selesai atau berkas yang dikembalikan; ambil setiap URL aset yang benar-benar dikembalikan.

Pertahankan setiap item data/indeks keluaran yang dikembalikan. content_url hanya menunjuk yang pertama; ambil setiap jalur konten/aset aktual. GET content tanpa index tidak mencakup semua keluaran.

Jika respons asli perlu diperiksa

Baca tugas awal yang sudah ada; jangan pernah kirim ulang pengiriman yang statusnya tidak diketahui.

Kolom respons
KolomJenis
KolomidJenisstring
KolomobjectJenisstring
KolommodelJenisstring
KolomstatusJenisstring
Kolomcontent_urlJenissigned URL
Kolomdata[]Jenissigned URL
KolomusageJenisobject
Kolomresult_pending_checkJenisboolean
Kesalahan dan langkah berikutnya
ResponsKondisiLangkah berikutnya
Respons400 · invalid_request_errorKondisiBidang wajib, representasi materi, atau nilai parameter tidak validLangkah berikutnyaPerbaiki bidang yang ditunjukkan sebelum permintaan pembuatan baru.
Respons409 · video_not_readyKondisiKonten hasil awal belum tersediaLangkah berikutnyaPeriksa ID awal yang dikembalikan secara berkala dan patuhi Retry-After.
Responsserver_errorKondisiRespons yang dikembalikan menyatakan bahwa operasi atau hasil perlu diperiksaLangkah berikutnyaSimpan ID operasi/tugas asli yang dikembalikan, header permintaan, dan respons; lanjutkan pembacaan yang didukung untuk operasi asli tersebut. Jangan kirim ulang permintaan pembuatan.

Alias

Alias model

Ailoot happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

Alias jalur metode

Gunakan jalur metode yang ditampilkan di atas.

ID pemanggil terkait

happyhorse-1.1-t2v, happyhorse-t2v, happyhorse-t2v-latest

FAQ · happyhorse-1.1-t2v
Input dan hasil apa yang tersedia?

POST /v1/videos/generations · happyhorse-1.1-t2v: text → video

POST /v1/videos/generations · happyhorse-t2v: text → video

POST /v1/videos/generations · happyhorse-t2v-latest: text → video

Kolom apa yang digunakan permintaan?

POST /v1/videos/generations · happyhorse-1.1-t2v: model, prompt, duration, resolution, ratio, image_urls

POST /v1/videos/generations · happyhorse-t2v: model, prompt, duration, resolution, ratio, image_urls

POST /v1/videos/generations · happyhorse-t2v-latest: model, prompt, duration, resolution, ratio, image_urls

Batasan apa yang berlaku?

POST /v1/videos/generations · happyhorse-1.1-t2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-t2v: duration.minimum: 3; duration.maximum: 15

POST /v1/videos/generations · happyhorse-t2v-latest: duration.minimum: 3; duration.maximum: 15

Rincian selengkapnya

Hubungkan Ailoot ke Claude Code, OpenCode, Hermes, atau aplikasi Anda.

Perusahaan dan portofolio proyeknya

Perusahaan dan portofolio proyeknya: jutaan pelanggan; penjualan miliaran setiap bulan.

Beli token dengan diskon.

Diskon langganan untuk pekerjaan rutin. Kode promo — hingga 50% untuk pembelian token.

Langganan
Pilih paket dengan diskon untuk permintaan rutin Anda.
Kode promo hingga 50%
Masukkan kode saat membeli. Harga dihitung ulang sesuai promosi aktif.
Biaya dalam riwayat
Model, token, dan jumlah tagihan disimpan untuk setiap permintaan.

Pilih langganan · Lihat harga model

Hubungkan API ke produk yang Anda jual.

SaaS, aplikasi, dan bot — sesuai penawaran dan perjanjian lisensi Ailoot. Untuk penjualan kembali, mintalah lisensi reseller.

Aplikasi komersial
Integrasikan pembuatan teks, gambar, video, dan suara dalam fitur berbayar layanan Anda.
Lisensi reseller
Kirim deskripsi proyek dan skema akses. Mintalah ketentuan penggunaan dan penjualan kembali secara tertulis.
Dokumen di situs
Penawaran, perjanjian lisensi, dan kebijakan pemrosesan data tersedia sebelum koneksi.

Minta lisensi reseller · Penawaran dan perjanjian lisensi