Por recurso
Vídeos
Vídeos sempre são gerados como tarefa: envie e depois consulte ou receba um callback. Clipes mais longos e mais nítidos custam mais.
#1. Escolha um modelo
gemini-omni-1.1-flash$0.088 / requisiçãoLimites e status
13 modelos online para isto. Trocar de modelo altera o código abaixo.
#2. Copie a requisição
Substitua YOUR_API_KEY pela sua chave e execute. As opções mostradas são as que este modelo aceita.
https://www.aisplice.store/v1/videosBearer API keyTarefa assíncronaOpçõesSó aparecem as opções publicadas para este modelo.
# Requires curl and jq
API_KEY="${API_KEY:-YOUR_API_KEY}"
# 1. Submit once
SUBMITTED=$(curl --fail-with-body -sS https://www.aisplice.store/v1/videos \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: model-docs-$(date +%s)-$$" \\
-d '{
"model": "Gemini Omni 1.1 Flash",
"prompt": "A cinematic scene with careful composition",
"resolution": "720p",
"size": "16:9"
}')
TASK_ID=$(printf '%s' "$SUBMITTED" | jq -r '.task_id // .id // empty')
if [ -z "$TASK_ID" ]; then
printf '%s\n' "$SUBMITTED" >&2
exit 1
fi
echo "task_id=$TASK_ID"
# 2. Poll until terminal
while true; do
STATUS_JSON=$(curl --fail-with-body -sS \
"https://www.aisplice.store/v1/videos/$TASK_ID" \
-H "Authorization: Bearer $API_KEY")
STATUS=$(printf '%s' "$STATUS_JSON" | jq -r '.status // empty' | tr '[:upper:]' '[:lower:]')
echo "status=$STATUS"
case "$STATUS" in
completed|succeeded|success) break ;;
failed|failure|cancelled|canceled)
printf '%s\n' "$STATUS_JSON" | jq .
exit 1
;;
esac
sleep 5
done
# 3. Fetch the final result
curl --fail-with-body -sS \
"https://www.aisplice.store/v1/videos/$TASK_ID/content" \
-H "Authorization: Bearer $API_KEY" | jq .Este modelo exige URLs de mídia públicas. Envie primeiro o arquivo local e depois coloque public_url na requisição do modelo. Evite corpos grandes em Base64.
Ler o guia de uploadTodos os parâmetros
Todos os campos que este modelo aceita, com os valores permitidos.
Todos os parâmetros
Todos os campos que este modelo aceita, com os valores permitidos.
modelIdentificador exato do modelo para esta requisição.
gemini-omni-1.1-flashpromptWhat to make, or for a picture or video what to animate or change. Describe pacing in words; there is no duration field.
resolutionOutput resolution; it sets the per-second rate.
360p720p1080p4ksizeForwarded as aspect_ratio. A video input keeps its own ratio.
16:99:16imagesOne public picture is the first frame. Several pictures, image_reference_mode=multi, or pictures beside a video are references (who or what appears). Up to 10 including frames.
metadata.video_urlsURLs HTTP(S) públicas dos vídeos de origem. No máximo 1 itens.
Ciclo de vida da resposta
Status da tarefa, estados finais e exemplos de resposta com o resultado.
Ciclo de vida da resposta
Status da tarefa, estados finais e exemplos de resposta com o resultado.
{
"id": "task_xxx",
"task_id": "task_xxx",
"object": "video",
"model": "Gemini Omni 1.1 Flash",
"status": "queued"
}Aguardando
queued · submitted · in_progress · processing
Sucesso
completed · succeeded · success
Falha
failed · failure · cancelled · canceled
#3. Obtenha o resultado
A chamada de envio responde na hora com um task_id. Consulte a tarefa a cada poucos segundos até o status ser completed, ou passe webhook_url e nós chamamos você quando terminar.
GET https://www.aisplice.store/v1/videos/{task_id}
GET https://www.aisplice.store/v1/videos/{task_id}/content
A duração e a resolução definem a faixa de preço. Uma tarefa em execução pode ser cancelada; veja a referência da API.
Cobrado só em caso de sucesso
Valores de status e consultas →Receba um callback em vez de consultar →
#Quando algo dá errado
- 400 com o nome de um campo: essa opção não é aceita por este modelo; use os valores listados na etapa 2.
- Imagem ou vídeo de referência rejeitado: precisa ser uma URL pública que o modelo consiga baixar.
- Conteúdo recusado pelo modelo: reformule o prompt; requisições recusadas não são cobradas.
- 402: o saldo não cobre esta requisição; recarregue em Carteira e tente novamente.
- 429: diminua o ritmo e tente novamente após os segundos de Retry-After.
- 503 model_not_found: o nome do modelo está errado ou o modelo está offline; escolha um na etapa 1.
#Primeiro e último frames, imagens e vídeos de referência
Os modelos que os aceitam mostram os campos na etapa 2: primeiro frame, último frame, imagens de referência ou um vídeo de referência. Passe URLs públicas; envie os arquivos locais antes.
Integrando ao seu produtoQuais opções mostrar primeiro aos seus usuários e quais deixar para depois.
Quais opções mostrar primeiro aos seus usuáriosComece com o prompt e um controle de preço; adicione o resto quando o fluxo básico funcionar.+
Intenção criativa
Campos como prompt pertencem à UI porque o usuário entende diretamente o resultado que eles mudam.
Multiplicador de custo
Campos como duração, resolução, tamanho e quantidade só devem ser introduzidos quando o preço já puder ser explicado.
Troca de modo
Campos como image, mask ou IDs de continuação mudam o próprio fluxo e só devem aparecer em modos dedicados.
Infraestrutura do sistema
Campos como webhook_secret são para integradores, não para criadores no dia a dia, então mantenha-os fora da UI padrão.
prompt- Quando expor
- Sempre. Define a cena ou a direção do movimento.
- Padrão recomendado
- Obrigatório na UI.
- Por que importa
- Sem ele, os usuários não conseguem direcionar a intenção do clipe.
image / images- Quando expor
- Exponha só em produtos guiados por referência ou de imagem para vídeo.
- Padrão recomendado
- Oculte nos fluxos só com prompt.
- Por que importa
- Muda o modo de criação e deve ser uma escolha de produto deliberada.
duration- Quando expor
- Exponha quando o fluxo assíncrono básico estiver estável e o preço estiver visível.
- Padrão recomendado
- Comece pela menor duração suportada.
- Por que importa
- É um dos maiores multiplicadores de custo e latência na geração de vídeo.
resolution- Quando expor
- Exponha quando os clientes compararem explicitamente saídas em 720p, 1080p ou 4K.
- Padrão recomendado
- Escolha uma resolução recomendada no servidor.
- Por que importa
- Resolução maior aumenta o custo, o tempo de fila e a sensibilidade a falhas.
webhook_url / webhook_secret- Quando expor
- Exponha só para integradores de backend, não para usuários finais comuns.
- Padrão recomendado
- Prefira consultas periódicas (polling) em produtos com UI.
- Por que importa
- Eles resolvem a integração de sistemas, não a criatividade do usuário final, então devem ficar fora dos controles voltados ao consumidor.
Phase 1
- prompt
- one size or one duration default
- submit -> poll -> content
Phase 2
- one quality or resolution selector
- clear pricing hint
Phase 3
- advanced controls such as reference media, continuation, webhook, or vendor-specific tuningMantenha uma única fonte da verdade para os resultados
Ainda com problemas?
Envie para nós o ID da requisição ou a mensagem de erro e vamos investigar.