modele

happyhorse-1.1-t2v

Markdown · JSON

happyhorse-1.1-t2v

Model do tworzenia krótkich filmów z dźwiękiem na podstawie opisu tekstowego. Nadaje się do scen, w których ruch, kompozycję i styl wizualny określa się słowami.

O modelu

Ten opis przedstawia możliwości modelu. Dane wejściowe, wyniki i opcje dostępne w Ailoot podano poniżej dla wybranej metody.

HappyHorse-1.1-T2V to model Alibaba do tworzenia krótkich scen filmowych na podstawie tekstu. Opis określa postacie, działania, otoczenie i sposób wizualnego przedstawienia; ten tryb nie wymaga obrazu wejściowego. Model tworzy obraz filmowy i może wygenerować towarzyszący mu dźwięk.

Producent podkreśla rozumienie sensu sceny, filmową inscenizację i wyrazistość ruchu. Tekst może określać atmosferę, działania postaci, zachowanie obiektów i dynamikę fizyczną. Pozwala to zbudować scenę wokół tego, co ma się wydarzyć, a następnie ukierunkować ją za pomocą światła, kąta ujęcia i ruchu kamery.

Inscenizacja za pomocą słów

Polecenie jest obowiązkowe i może być w dowolnym języku. Może zawierać do 5000 znaków innych niż chińskie albo 2500 znaków chińskich; nadmiarowa część jest odrzucana. Akcję, otoczenie i istotne szczegóły wizualne trzeba opisać w granicach tego limitu. Taki sposób inscenizacji pozostawia modelowi przestrzeń do stworzenia nowej sceny, zamiast narzucać gotową pierwszą klatkę.

W tym trybie tekst jest głównym materiałem sterującym. Konkretny wygląd postaci lub przedmiotu można opisać słowami; możliwość przekazania tego wyglądu za pomocą osobnych obrazów należy do innego trybu z tej rodziny. Wynik zależy od całego polecenia, dlatego ta sama początkowa wartość ziarna losowości pomaga uzyskać podobne warianty, ale nie gwarantuje dokładnego powtórzenia.

Wideo i towarzyszący dźwięk

W HappyHorse-1.1 czas trwania filmu wybiera się jako liczbę całkowitą od 3 do 15 sekund. Obsługiwane są rozdzielczości 480P, 720P i 1080P. Gotowy plik ma format MP4 i częstotliwość 24 klatek na sekundę. Model może generować dźwięk wraz z obrazem, wiążąc ścieżkę dźwiękową z tym, co dzieje się w scenie.

Proporcje kadru można określić z góry. Dostępne są 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 i 21:9 — od szerokiego kadru filmowego po wydłużony film pionowy. Rozdzielczość, proporcje i czas trwania określają rozmiary wyniku; treść i ruch ustala tekst.

Ten wariant służy do tworzenia nowej sceny na podstawie pomysłu wyrażonego słowami. Nadaje się do krótkiego epizodu, koncepcji wizualnej lub nastrojowego filmu, którego inscenizację trzeba sformułować tekstowo.

Ailoot · Wideo POST /v1/videos/generations happyhorse-1.1-t2v

happyhorse-1.1-t2v

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

Start

Model do tworzenia krótkich filmów z dźwiękiem na podstawie opisu tekstowego. Nadaje się do scen, w których ruch, kompozycję i styl wizualny określa się słowami.

Akceptowane dane wejściowe
Tekst
Wyniki
Wideo

Dostępne w Ailoot · dane wejściowe i metody

Ailoot · Wideo POST /v1/videos/generations
Wejście
text
Wyjście
video
Format wyjściowy
mp4
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
happyhorse-1.1-t2v
Domyślnie—
PolepromptTypstringWymaganieWymaganeWartości i limity
Minimalna długość: 1
Domyślnie—
PoledurationTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 3
Maksimum: 15
Jednostka: sekundy
Domyślnie5
PoleresolutionTypstringWymaganieOpcjonalneWartości i limity
480P, 720P, 1080P
Domyślnie720P
PoleratioTypstringWymaganieOpcjonalneWartości i limity
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Domyślnie16:9
Poleimage_urlsTyphttps_url|data_image_url[]WymaganieOpcjonalneWartości i limity
Minimalna liczba elementów: 0
Maksymalna liczba elementów: 0
Maksymalna liczba zdekodowanych bajtów: 20 971 520
Typy MIME: image/jpeg, image/png, image/webp
Domyślnie—
Kombinacje materiałów wejściowych

Tekst na wideo · Wymagane: prompt

Parametry i cykl życia metody
ParametrKontrakt
Parametrcontent_typeKontraktapplication/json
ParametrrequiredKontraktmodel, prompt
Parametrmaterial_typesKontrakttext
ParametroptionalKontraktduration, resolution, ratio
Parametrduration_integer_rangeKontrakt3, 15
Parametrdefault_durationKontrakt5
ParametrresolutionKontrakt480P, 720P, 1080P
Parametrdefault_resolutionKontrakt720P
ParametrratioKontrakt16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Parametrratio_must_omitKontraktfalse
Parametrimage_urlsKontrakt{"max_count":0}

Cykl życia: 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

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

Cennik

Stawki metod Ailoot

Ailoot WideoPOST /v1/videos/generations
Wyjście
0,18 USD za sekundę w 1080p
Wyjście
0,07 USD za sekundę w 480p
Wyjście
0,14 USD za sekundę w 720p

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Przykładowe żądania

Ailoot · Wideo

Przykład sceny
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

Odbieranie i zapisywanie wyników

Ailoot · Wideo

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
Sprawdź status zadania
Pobierz status przez GET
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
Zapisz wszystkie ukończone zasoby
Pobierz wszystkie ukończone zasoby przez GET
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
Inne odczyty treści
Pobierz treść przez GET
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
Zachowaj wszystkie ukończone wyniki

Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.

Zachowaj każdy zwrócony element data i indeks wyniku. content_url wskazuje tylko pierwszy; pobierz każdą rzeczywistą ścieżkę treści i zasób. GET treści bez index nie obejmuje wszystkich wyników.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Odczytuj istniejące pierwotne zadanie; nigdy nie ponawiaj wysłania o nieznanym wyniku.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PoleobjectTypstring
PolemodelTypstring
PolestatusTypstring
Polecontent_urlTypsigned URL
Poledata[]Typsigned URL
PoleusageTypobject
Poleresult_pending_checkTypboolean
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.
Odpowiedź409 · video_not_readyWarunekTreść pierwotnego wyniku nie jest jeszcze dostępnaNastępny krokOdpytuj pierwotny zwrócony identyfikator i przestrzegaj Retry-After.
Odpowiedźserver_errorWarunekZwrócona odpowiedź wskazuje, że operacja lub wynik wymaga sprawdzeniaNastępny krokZachowaj pierwotnie zwrócony identyfikator operacji lub zadania, nagłówki żądania i odpowiedź; kontynuuj obsługiwane odczyty tej pierwotnej operacji. Nie wysyłaj ponownie żądania utworzenia.

Aliasy

Aliasy modelu

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

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

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

Ailoot · Wideo POST /v1/videos/generations happyhorse-t2v

happyhorse-t2v

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

Start

Model do tworzenia krótkich filmów z dźwiękiem na podstawie opisu tekstowego. Nadaje się do scen, w których ruch, kompozycję i styl wizualny określa się słowami.

Akceptowane dane wejściowe
Tekst
Wyniki
Wideo

Dostępne w Ailoot · dane wejściowe i metody

Ailoot · Wideo POST /v1/videos/generations
Wejście
text
Wyjście
video
Format wyjściowy
mp4
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
happyhorse-t2v
Domyślnie—
PolepromptTypstringWymaganieWymaganeWartości i limity
Minimalna długość: 1
Domyślnie—
PoledurationTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 3
Maksimum: 15
Jednostka: sekundy
Domyślnie5
PoleresolutionTypstringWymaganieOpcjonalneWartości i limity
480P, 720P, 1080P
Domyślnie720P
PoleratioTypstringWymaganieOpcjonalneWartości i limity
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Domyślnie16:9
Poleimage_urlsTyphttps_url|data_image_url[]WymaganieOpcjonalneWartości i limity
Minimalna liczba elementów: 0
Maksymalna liczba elementów: 0
Maksymalna liczba zdekodowanych bajtów: 20 971 520
Typy MIME: image/jpeg, image/png, image/webp
Domyślnie—
Kombinacje materiałów wejściowych

Tekst na wideo · Wymagane: prompt

Parametry i cykl życia metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext
ParametrrequiredKontraktnull
Parametroptional_controlsKontraktnull

Cykl życia: 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

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

Cennik

Stawki metod Ailoot

Ailoot WideoPOST /v1/videos/generations
Wyjście
0,18 USD za sekundę w 1080p
Wyjście
0,07 USD za sekundę w 480p
Wyjście
0,14 USD za sekundę w 720p

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Przykładowe żądania

Ailoot · Wideo

Przykład sceny
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

Odbieranie i zapisywanie wyników

Ailoot · Wideo

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
Sprawdź status zadania
Pobierz status przez GET
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
Zapisz wszystkie ukończone zasoby
Pobierz wszystkie ukończone zasoby przez GET
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
Inne odczyty treści
Pobierz treść przez GET
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
Zachowaj wszystkie ukończone wyniki

Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.

Zachowaj każdy zwrócony element data i indeks wyniku. content_url wskazuje tylko pierwszy; pobierz każdą rzeczywistą ścieżkę treści i zasób. GET treści bez index nie obejmuje wszystkich wyników.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Odczytuj istniejące pierwotne zadanie; nigdy nie ponawiaj wysłania o nieznanym wyniku.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PoleobjectTypstring
PolemodelTypstring
PolestatusTypstring
Polecontent_urlTypsigned URL
Poledata[]Typsigned URL
PoleusageTypobject
Poleresult_pending_checkTypboolean
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.
Odpowiedź409 · video_not_readyWarunekTreść pierwotnego wyniku nie jest jeszcze dostępnaNastępny krokOdpytuj pierwotny zwrócony identyfikator i przestrzegaj Retry-After.
Odpowiedźserver_errorWarunekZwrócona odpowiedź wskazuje, że operacja lub wynik wymaga sprawdzeniaNastępny krokZachowaj pierwotnie zwrócony identyfikator operacji lub zadania, nagłówki żądania i odpowiedź; kontynuuj obsługiwane odczyty tej pierwotnej operacji. Nie wysyłaj ponownie żądania utworzenia.

Aliasy

Aliasy modelu

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

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

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

Ailoot · Wideo POST /v1/videos/generations happyhorse-t2v-latest

happyhorse-t2v-latest

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

Start

Model do tworzenia krótkich filmów z dźwiękiem na podstawie opisu tekstowego. Nadaje się do scen, w których ruch, kompozycję i styl wizualny określa się słowami.

Akceptowane dane wejściowe
Tekst
Wyniki
Wideo

Dostępne w Ailoot · dane wejściowe i metody

Ailoot · Wideo POST /v1/videos/generations
Wejście
text
Wyjście
video
Format wyjściowy
mp4
PoleTypWymaganieWartości i limityDomyślnie
PolemodelTypstringWymaganieWymaganeWartości i limity
happyhorse-t2v-latest
Domyślnie—
PolepromptTypstringWymaganieWymaganeWartości i limity
Minimalna długość: 1
Domyślnie—
PoledurationTypintegerWymaganieOpcjonalneWartości i limity
Minimum: 3
Maksimum: 15
Jednostka: sekundy
Domyślnie5
PoleresolutionTypstringWymaganieOpcjonalneWartości i limity
480P, 720P, 1080P
Domyślnie720P
PoleratioTypstringWymaganieOpcjonalneWartości i limity
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Domyślnie16:9
Poleimage_urlsTyphttps_url|data_image_url[]WymaganieOpcjonalneWartości i limity
Minimalna liczba elementów: 0
Maksymalna liczba elementów: 0
Maksymalna liczba zdekodowanych bajtów: 20 971 520
Typy MIME: image/jpeg, image/png, image/webp
Domyślnie—
Kombinacje materiałów wejściowych

Tekst na wideo · Wymagane: prompt

Parametry i cykl życia metody
ParametrKontrakt
Parametrmaterial_typesKontrakttext
ParametrrequiredKontraktnull
Parametroptional_controlsKontraktnull

Cykl życia: 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

Struktury metod i ID są dokładne; możliwości dostawcy są odrębne od dopuszczenia żądania.

Cennik

Stawki metod Ailoot

Ailoot WideoPOST /v1/videos/generations
Wyjście
0,18 USD za sekundę w 1080p
Wyjście
0,07 USD za sekundę w 480p
Wyjście
0,14 USD za sekundę w 720p

Ailoot rezerwuje szacowaną kwotę przed żądaniem. Po otrzymaniu wyniku rozlicza ostateczną opłatę według zmierzonego użycia. Rozliczenie strumieniowania korzysta z końcowego rekordu użycia. Jak działają rezerwacja i rozliczenie →

Przykładowe żądania

Ailoot · Wideo

Przykład sceny
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

Odbieranie i zapisywanie wyników

Ailoot · Wideo

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
Sprawdź status zadania
Pobierz status przez GET
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
Zapisz wszystkie ukończone zasoby
Pobierz wszystkie ukończone zasoby przez GET
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
Inne odczyty treści
Pobierz treść przez GET
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
Zachowaj wszystkie ukończone wyniki

Zapisz każde ukończone wideo lub zwrócony plik; pobierz każdy faktycznie zwrócony URL zasobu.

Zachowaj każdy zwrócony element data i indeks wyniku. content_url wskazuje tylko pierwszy; pobierz każdą rzeczywistą ścieżkę treści i zasób. GET treści bez index nie obejmuje wszystkich wyników.

Jeśli trzeba sprawdzić pierwotną odpowiedź

Odczytuj istniejące pierwotne zadanie; nigdy nie ponawiaj wysłania o nieznanym wyniku.

Pola odpowiedzi
PoleTyp
PoleidTypstring
PoleobjectTypstring
PolemodelTypstring
PolestatusTypstring
Polecontent_urlTypsigned URL
Poledata[]Typsigned URL
PoleusageTypobject
Poleresult_pending_checkTypboolean
Błędy i dalsze kroki
OdpowiedźWarunekNastępny krok
Odpowiedź400 · invalid_request_errorWarunekNieprawidłowe wymagane pola, sposób reprezentacji materiału lub wartość parametruNastępny krokPopraw wskazane pola przed nowym żądaniem utworzenia.
Odpowiedź409 · video_not_readyWarunekTreść pierwotnego wyniku nie jest jeszcze dostępnaNastępny krokOdpytuj pierwotny zwrócony identyfikator i przestrzegaj Retry-After.
Odpowiedźserver_errorWarunekZwrócona odpowiedź wskazuje, że operacja lub wynik wymaga sprawdzeniaNastępny krokZachowaj pierwotnie zwrócony identyfikator operacji lub zadania, nagłówki żądania i odpowiedź; kontynuuj obsługiwane odczyty tej pierwotnej operacji. Nie wysyłaj ponownie żądania utworzenia.

Aliasy

Aliasy modelu

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

Aliasy ścieżek metod

Użyj ścieżek metod podanych powyżej.

Powiązane ID modeli

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

FAQ · happyhorse-1.1-t2v
Jakie dane wejściowe i wyniki są dostępne?

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

Jakich pól używa żądanie?

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

Jakie limity obowiązują?

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

Więcej szczegółów

Połącz Ailoot z Claude Code, OpenCode, Hermes albo własną aplikacją.

Firma i jej portfel projektów

Firma i jej portfel projektów: miliony klientów; miesięczna sprzedaż liczona w miliardach.

Kupuj tokeny z rabatem.

Rabat subskrypcji do regularnej pracy. Kody promocyjne — do 50% na tokeny.

Subskrypcja
Wybierz plan z rabatem do regularnych żądań.
Kod promocyjny do 50%
Wpisz kod przy zakupie. Cena zostanie przeliczona według aktualnej promocji.
Koszty w historii
Model, tokeny i kwota są zapisywane dla każdego żądania.

Wybierz subskrypcję · Sprawdź ceny modeli

Połącz API z produktem, który sprzedajesz.

SaaS, aplikacje i boty na warunkach oferty i umowy licencyjnej Ailoot. Do odsprzedaży poproś o licencję resellerską.

Aplikacja komercyjna
Wbuduj generowanie tekstu, obrazów, wideo i dźwięku w płatne funkcje usługi.
Licencja resellerska
Prześlij opis projektu i schemat dostępu. Poproś o pisemne warunki używania i odsprzedaży.
Dokumenty na stronie
Oferta, umowa licencyjna i polityka przetwarzania danych są dostępne przed połączeniem.

Poproś o licencję resellerską · Oferta i umowa licencyjna