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

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

# Vídeo e música

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

Geração de vídeos e música: o pedido cria uma tarefa e o resultado é obtido através do respetivo identificador.

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

Vídeo e música

```bash
# Guarde o ID do pedido: o suporte utiliza-o para localizar o seu pedido.
# Crie a tarefa uma única vez; o ciclo abaixo apenas consulta o seu estado.
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":"um lago tranquilo","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=""
# Este ciclo consulta apenas a tarefa original. Nunca volta a enviar o pedido de criação.
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 (o estado mantém-se in_progress): o resultado está a ser verificado. Pare; nunca volte a criar a tarefa.
  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 ou qualquer outro estado: apresente-o e pare. Nunca volte a criar a tarefa.
    *) 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
# Após um timeout na criação, consulte o ID do pedido no histórico de utilização antes de voltar a executar este script.
```

```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 e violoncelo tranquilos, sem voz"}' 
```

Resposta · abreviada

```json
// O identificador da tarefa está no campo id ou request_id
{ "id": "…", … }

// O formato depende do modelo: utilize o identificador
// da resposta de criação sem o alterar.
```

## Autorização

| Parâmetro | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `Authorization` | header | obrigatório | Chave no formato `Bearer sk-…`. Também são aceites os cabeçalhos `x-api-key` ou `x-goog-api-key`. |

## Vídeo: corpo do pedido

| Parâmetro | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `model` | string | obrigatório | Modelo de vídeo: `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 | obrigatório | Descrição do vídeo. |
| `duration / seconds` | integer / string | opcional | Depende da família: Grok 1–15 segundos, MiniMax 6/10 a 768P ou 6 a 1080P, HappyHorse 3–15; Google Omni 4/6/8/10. Não utilize um campo de uma família noutra. |
| `resolution / size` | string | opcional | Grok: 480p/720p/1080p (1080p em video-1.5), ou size 1280x720/720x1280/1920x1080/1080x1920. MiniMax: 768P/1080P. HappyHorse: 480P/720P/1080P. Google Omni: 360p/720p. |
| `image / first_frame_image / image_urls` | string / array | opcional | Os campos das imagens de origem dependem da família e do modo. MiniMax Fast exige first\_frame\_image. HappyHorse t2v — sem images, i2v — exatamente uma imagem sem ratio, r2v — 1–9 imagens. |

A resposta contém o identificador da tarefa (campo `id` ou `request_id`). Utilize-o tal como é, sem o interpretar: o formato depende do modelo. Estado e ficheiro concluído:

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

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

Os mesmos endereços também funcionam com o prefixo `/v1/videos/generations/{id}`. O estado de uma tarefa concluída e os campos da resposta dependem do modelo — consulte o campo de estado e obtenha o ficheiro através de `/content`.

## Criação → estado → transferência

Guarde a resposta de criação e o respetivo Request ID. Em MiniMax/HappyHorse, a conclusão é indicada por `status: completed`; a resposta contém `content_url`, `data[]` e usage. Em Grok — `status: done` com `video.url`. O Google Omni devolve 202 queued, seguido de in\_progress com Retry-After, completed ou partial/content\_revoked. Não interprete qualquer 200 como um vídeo concluído. Se a resposta de estado contiver `result_pending_check: true` (`status` e, ao mesmo tempo, `in_progress`), o resultado está a ser verificado. Não volte a criar a tarefa — consulte-a mais tarde através de GET /v1/videos/{id} ou contacte o suporte com o Request ID.

`/content` pode devolver o MP4 diretamente ou redirecionar para um ficheiro com ligação assinada. Se a resposta contiver vários resultados em `data[]`, guarde cada um: todos os resultados entregues são cobrados. Não é possível cancelar ou eliminar uma tarefa de vídeo através da API. Eliminar o ficheiro concluído impede o acesso ao mesmo, mas não cancela a geração.

A cobrança é por segundos de vídeo concluído na resolução escolhida ou por vídeo, conforme indicado no catálogo. O custo total é reservado na criação da tarefa.

## Música

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

| Parâmetro | Tipo | Obrigatório | Descrição |
| --- | --- | --- | --- |
| `model` | string | obrigatório | `google/lyria`, `google/lyria-3-clip-preview`. |
| `prompt` | string | obrigatório | Descrição da faixa: género, instrumentos, ambiente. |

Na resposta, `data[]` — ligações para os clips concluídos. Um único pedido pode devolver vários clips; cada clip entregue é cobrado.

Não repita um pedido de vídeo ou música se a ligação for interrompida: a tarefa pode já ter começado. Consulte primeiro o estado pelo identificador ou contacte o suporte com o Request ID.

Ainda tem dúvidas? Envie o Request ID e uma descrição — ajudamos a esclarecer.[Contactar o suporte](mailto:support@ailoot.ai)

## Ailoot · A empresa e a sua carteira de projetos





A Ailoot assenta numa experiência operacional consolidada, numa ampla base de clientes, num serviço estável e no acompanhamento contínuo dos KPI.





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





A Ailoot aplica essa experiência operacional ao acesso por API a funcionalidades de IA nos produtos dos clientes, agentes, aplicações e automatizações.
