modelos

happyhorse-1.1-t2v

Markdown · JSON

happyhorse-1.1-t2v

Modelo de criação de vídeos curtos com som a partir de uma descrição textual. Adequado a cenas em que o movimento, a composição e o estilo visual são definidos por palavras.

Sobre o modelo

Esta descrição apresenta as capacidades do modelo. As entradas, saídas e opções disponíveis no Ailoot para o método selecionado estão indicadas abaixo.

HappyHorse-1.1-T2V é um modelo da Alibaba para criar cenas de vídeo curtas a partir de texto. A descrição define personagens, ações, ambiente e apresentação visual; este modo não exige uma imagem de origem. O modelo forma a sequência de vídeo e pode criar o som que a acompanha.

O fabricante destaca a compreensão do significado da cena, a encenação cinematográfica e a expressividade do movimento. O texto pode definir a atmosfera, as ações da personagem, o comportamento dos objetos e a dinâmica física. Isto permite construir uma cena em torno do que deve acontecer e orientá-la depois através da luz, do ângulo e do movimento da câmara.

Encenação por palavras

A instrução é obrigatória e aceita qualquer língua. Pode conter até 5000 caracteres não chineses ou 2500 caracteres chineses; a parte excedente é descartada. A ação, o ambiente e os detalhes visuais importantes devem ser descritos dentro desse volume. Esta abordagem dá ao modelo espaço para criar uma nova cena, em vez de lhe fornecer um primeiro fotograma pronto.

Neste modo, o texto é o principal material de orientação. A imagem concreta de uma personagem ou de um objeto pode ser descrita por palavras; a possibilidade de transmitir a sua aparência através de imagens separadas pertence a outro modo da família. O resultado depende de toda a instrução, pelo que a mesma semente aleatória inicial ajuda a obter variantes semelhantes, mas não garante uma repetição exata.

Vídeo e acompanhamento sonoro

No HappyHorse-1.1, a duração do vídeo é escolhida como um número inteiro entre 3 e 15 segundos. São suportadas as resoluções 480P, 720P e 1080P. O ficheiro final tem formato MP4 e uma frequência de 24 fotogramas por segundo. O modelo pode gerar som juntamente com a imagem, relacionando o acompanhamento sonoro com o que acontece na cena.

A forma do enquadramento pode ser definida antecipadamente. Estão disponíveis 16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21 e 21:9, desde um enquadramento cinematográfico largo até um vídeo vertical alongado. A resolução, o formato e a duração determinam as dimensões do resultado; o conteúdo e o movimento são definidos pelo texto.

Esta variante destina-se a criar uma nova cena a partir de uma ideia verbal. É adequada para um episódio curto, uma ideia visual ou um vídeo de ambiente cuja encenação tenha de ser formulada em texto.

Ailoot · Vídeo POST /v1/videos/generations happyhorse-1.1-t2v

happyhorse-1.1-t2v

Alibaba /happyhorse-1.1-t2v
ID do modelo
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Introdução

Modelo de criação de vídeos curtos com som a partir de uma descrição textual. Adequado a cenas em que o movimento, a composição e o estilo visual são definidos por palavras.

Entradas aceites
Texto
Resultados
Vídeo

Disponível no Ailoot · entradas e métodos

Ailoot · Vídeo POST /v1/videos/generations
Entrada
text
Saída
video
Formato de saída
mp4
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
happyhorse-1.1-t2v
Predefinição—
CampopromptTipostringRequisitoObrigatórioValores e limites
Comprimento mínimo: 1
Predefinição—
CampodurationTipointegerRequisitoOpcionalValores e limites
Mínimo: 3
Máximo: 15
Unidade: segundos
Predefinição5
CamporesolutionTipostringRequisitoOpcionalValores e limites
480P, 720P, 1080P
Predefinição720P
CamporatioTipostringRequisitoOpcionalValores e limites
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Predefinição16:9
Campoimage_urlsTipohttps_url|data_image_url[]RequisitoOpcionalValores e limites
Número mínimo de elementos: 0
Número máximo de elementos: 0
Número máximo de bytes descodificados: 20 971 520
Tipos MIME: image/jpeg, image/png, image/webp
Predefinição—
Combinações de materiais de entrada

Texto para vídeo · Obrigatório: prompt

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetrocontent_typeContratoapplication/json
ParâmetrorequiredContratomodel, prompt
Parâmetromaterial_typesContratotext
ParâmetrooptionalContratoduration, resolution, ratio
Parâmetroduration_integer_rangeContrato3, 15
Parâmetrodefault_durationContrato5
ParâmetroresolutionContrato480P, 720P, 1080P
Parâmetrodefault_resolutionContrato720P
ParâmetroratioContrato16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Parâmetroratio_must_omitContratofalse
Parâmetroimage_urlsContrato{"max_count":0}

Ciclo de vida: 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

As estruturas dos métodos e os ID são exatos; a capacidade do fornecedor é distinta da admissão dos pedidos.

Tarifários

Tarifas dos métodos Ailoot

Ailoot VídeoPOST /v1/videos/generations
Saída
0,18 US$ por segundo a 1080p
Saída
0,07 US$ por segundo a 480p
Saída
0,14 US$ por segundo a 720p

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot · Vídeo

Exemplo de cena
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

Receber e guardar os resultados

Ailoot · Vídeo

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
Verificar o estado da tarefa
GET estado
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
Guardar todos os recursos concluídos
GET todos os recursos concluídos
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
Outras leituras de conteúdo
GET conteúdo
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
Guardar todos os resultados concluídos

Guarde cada vídeo concluído ou ficheiro devolvido; obtenha cada URL de recurso efetivamente devolvido.

Conserve todos os elementos de dados/índices de saída devolvidos. content_url corresponde apenas ao primeiro; obtenha todos os caminhos de conteúdo/recursos reais. GET do conteúdo sem index não corresponde a todas as saídas.

Se for necessário verificar a resposta original

Consulte a tarefa original existente; nunca volte a enviar um pedido cujo envio tenha resultado desconhecido.

Campos da resposta
CampoTipo
CampoidTipostring
CampoobjectTipostring
CampomodelTipostring
CampostatusTipostring
Campocontent_urlTiposigned URL
Campodata[]Tiposigned URL
CampousageTipoobject
Camporesult_pending_checkTipoboolean
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.
Resposta409 · video_not_readyCondiçãoO conteúdo do resultado original ainda não está disponívelPasso seguinteConsulte periodicamente o ID original devolvido e respeite Retry-After.
Respostaserver_errorCondiçãoA resposta devolvida indica que a operação ou o resultado requer verificaçãoPasso seguinteGuarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. Não volte a enviar o pedido de criação.

Aliases

Aliases do modelo

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

Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

IDs de chamada relacionados

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

Ailoot · Vídeo POST /v1/videos/generations happyhorse-t2v

happyhorse-t2v

Alibaba /happyhorse-t2v
ID do modelo
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Introdução

Modelo de criação de vídeos curtos com som a partir de uma descrição textual. Adequado a cenas em que o movimento, a composição e o estilo visual são definidos por palavras.

Entradas aceites
Texto
Resultados
Vídeo

Disponível no Ailoot · entradas e métodos

Ailoot · Vídeo POST /v1/videos/generations
Entrada
text
Saída
video
Formato de saída
mp4
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
happyhorse-t2v
Predefinição—
CampopromptTipostringRequisitoObrigatórioValores e limites
Comprimento mínimo: 1
Predefinição—
CampodurationTipointegerRequisitoOpcionalValores e limites
Mínimo: 3
Máximo: 15
Unidade: segundos
Predefinição5
CamporesolutionTipostringRequisitoOpcionalValores e limites
480P, 720P, 1080P
Predefinição720P
CamporatioTipostringRequisitoOpcionalValores e limites
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Predefinição16:9
Campoimage_urlsTipohttps_url|data_image_url[]RequisitoOpcionalValores e limites
Número mínimo de elementos: 0
Número máximo de elementos: 0
Número máximo de bytes descodificados: 20 971 520
Tipos MIME: image/jpeg, image/png, image/webp
Predefinição—
Combinações de materiais de entrada

Texto para vídeo · Obrigatório: prompt

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetromaterial_typesContratotext
ParâmetrorequiredContratonull
Parâmetrooptional_controlsContratonull

Ciclo de vida: 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

As estruturas dos métodos e os ID são exatos; a capacidade do fornecedor é distinta da admissão dos pedidos.

Tarifários

Tarifas dos métodos Ailoot

Ailoot VídeoPOST /v1/videos/generations
Saída
0,18 US$ por segundo a 1080p
Saída
0,07 US$ por segundo a 480p
Saída
0,14 US$ por segundo a 720p

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot · Vídeo

Exemplo de cena
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

Receber e guardar os resultados

Ailoot · Vídeo

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
Verificar o estado da tarefa
GET estado
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
Guardar todos os recursos concluídos
GET todos os recursos concluídos
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
Outras leituras de conteúdo
GET conteúdo
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
Guardar todos os resultados concluídos

Guarde cada vídeo concluído ou ficheiro devolvido; obtenha cada URL de recurso efetivamente devolvido.

Conserve todos os elementos de dados/índices de saída devolvidos. content_url corresponde apenas ao primeiro; obtenha todos os caminhos de conteúdo/recursos reais. GET do conteúdo sem index não corresponde a todas as saídas.

Se for necessário verificar a resposta original

Consulte a tarefa original existente; nunca volte a enviar um pedido cujo envio tenha resultado desconhecido.

Campos da resposta
CampoTipo
CampoidTipostring
CampoobjectTipostring
CampomodelTipostring
CampostatusTipostring
Campocontent_urlTiposigned URL
Campodata[]Tiposigned URL
CampousageTipoobject
Camporesult_pending_checkTipoboolean
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.
Resposta409 · video_not_readyCondiçãoO conteúdo do resultado original ainda não está disponívelPasso seguinteConsulte periodicamente o ID original devolvido e respeite Retry-After.
Respostaserver_errorCondiçãoA resposta devolvida indica que a operação ou o resultado requer verificaçãoPasso seguinteGuarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. Não volte a enviar o pedido de criação.

Aliases

Aliases do modelo

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

Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

IDs de chamada relacionados

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

Ailoot · Vídeo POST /v1/videos/generations happyhorse-t2v-latest

happyhorse-t2v-latest

Alibaba /happyhorse-t2v-latest
ID do modelo
  • happyhorse-1.1-t2v
  • happyhorse-t2v
  • happyhorse-t2v-latest

Introdução

Modelo de criação de vídeos curtos com som a partir de uma descrição textual. Adequado a cenas em que o movimento, a composição e o estilo visual são definidos por palavras.

Entradas aceites
Texto
Resultados
Vídeo

Disponível no Ailoot · entradas e métodos

Ailoot · Vídeo POST /v1/videos/generations
Entrada
text
Saída
video
Formato de saída
mp4
CampoTipoRequisitoValores e limitesPredefinição
CampomodelTipostringRequisitoObrigatórioValores e limites
happyhorse-t2v-latest
Predefinição—
CampopromptTipostringRequisitoObrigatórioValores e limites
Comprimento mínimo: 1
Predefinição—
CampodurationTipointegerRequisitoOpcionalValores e limites
Mínimo: 3
Máximo: 15
Unidade: segundos
Predefinição5
CamporesolutionTipostringRequisitoOpcionalValores e limites
480P, 720P, 1080P
Predefinição720P
CamporatioTipostringRequisitoOpcionalValores e limites
16:9, 9:16, 1:1, 4:3, 3:4, 4:5, 5:4, 9:21, 21:9
Predefinição16:9
Campoimage_urlsTipohttps_url|data_image_url[]RequisitoOpcionalValores e limites
Número mínimo de elementos: 0
Número máximo de elementos: 0
Número máximo de bytes descodificados: 20 971 520
Tipos MIME: image/jpeg, image/png, image/webp
Predefinição—
Combinações de materiais de entrada

Texto para vídeo · Obrigatório: prompt

Parâmetros e ciclo de vida do método
ParâmetroContrato
Parâmetromaterial_typesContratotext
ParâmetrorequiredContratonull
Parâmetrooptional_controlsContratonull

Ciclo de vida: 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

As estruturas dos métodos e os ID são exatos; a capacidade do fornecedor é distinta da admissão dos pedidos.

Tarifários

Tarifas dos métodos Ailoot

Ailoot VídeoPOST /v1/videos/generations
Saída
0,18 US$ por segundo a 1080p
Saída
0,07 US$ por segundo a 480p
Saída
0,14 US$ por segundo a 720p

O Ailoot reserva um montante estimado antes de um pedido. Após o resultado, liquida o custo final com base na utilização medida. No streaming, a liquidação usa o registo final de utilização. Como funcionam a reserva e a liquidação →

Exemplos de pedidos

Ailoot · Vídeo

Exemplo de cena
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

Receber e guardar os resultados

Ailoot · Vídeo

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
Verificar o estado da tarefa
GET estado
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
Guardar todos os recursos concluídos
GET todos os recursos concluídos
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
Outras leituras de conteúdo
GET conteúdo
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
Guardar todos os resultados concluídos

Guarde cada vídeo concluído ou ficheiro devolvido; obtenha cada URL de recurso efetivamente devolvido.

Conserve todos os elementos de dados/índices de saída devolvidos. content_url corresponde apenas ao primeiro; obtenha todos os caminhos de conteúdo/recursos reais. GET do conteúdo sem index não corresponde a todas as saídas.

Se for necessário verificar a resposta original

Consulte a tarefa original existente; nunca volte a enviar um pedido cujo envio tenha resultado desconhecido.

Campos da resposta
CampoTipo
CampoidTipostring
CampoobjectTipostring
CampomodelTipostring
CampostatusTipostring
Campocontent_urlTiposigned URL
Campodata[]Tiposigned URL
CampousageTipoobject
Camporesult_pending_checkTipoboolean
Erros e passos seguintes
RespostaCondiçãoPasso seguinte
Resposta400 · invalid_request_errorCondiçãoCampos obrigatórios, representação do material ou valor do parâmetro inválidosPasso seguinteCorrija os campos indicados antes de um novo pedido de criação.
Resposta409 · video_not_readyCondiçãoO conteúdo do resultado original ainda não está disponívelPasso seguinteConsulte periodicamente o ID original devolvido e respeite Retry-After.
Respostaserver_errorCondiçãoA resposta devolvida indica que a operação ou o resultado requer verificaçãoPasso seguinteGuarde o ID original da operação/tarefa devolvido, os cabeçalhos do pedido e a resposta; continue a consultar essa operação original através das consultas suportadas. Não volte a enviar o pedido de criação.

Aliases

Aliases do modelo

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

Aliases dos caminhos dos métodos

Use os caminhos dos métodos indicados acima.

IDs de chamada relacionados

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

FAQ · happyhorse-1.1-t2v
Que entradas e resultados estão disponíveis?

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

Que campos utiliza o pedido?

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

Que limites se aplicam?

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

Mais detalhes

Ligue o Ailoot ao Claude Code, OpenCode, Hermes ou à sua aplicação.

A empresa e a sua carteira de projetos

A empresa e a sua carteira de projetos: milhões de clientes; vendas mensais na ordem dos milhares de milhões.

Compre tokens com desconto.

Desconto por subscrição para trabalho regular. Códigos promocionais — até 50% na compra de tokens.

Subscrição
Escolha um plano com desconto para os pedidos regulares.
Código promocional até 50%
Introduza o código na compra. O preço é recalculado conforme a campanha em vigor.
Custos no histórico
O modelo, os tokens e o montante são guardados para cada pedido.

Escolher subscrição · Ver preços dos modelos

Ligue a API ao produto que vende.

SaaS, aplicações e bots — ao abrigo da oferta e do contrato de licença Ailoot. Para revenda, peça uma licença de revendedor.

Aplicação comercial
Integre geração de texto, imagens, vídeo e som nas funcionalidades pagas do seu serviço.
Licença de revendedor
Envie uma descrição do projeto e do modelo de acesso. Peça condições escritas de utilização e revenda.
Documentos no site
A oferta, o contrato de licença e a política de tratamento de dados estão disponíveis antes da ligação.

Pedir licença de revendedor · Oferta e contrato de licença