Referência da API
Vídeos
Modelos deste endpoint (13)
/v1/videos/v1/videos/{task_id}/v1/videos/{task_id}/contentGeração de vídeo assíncrona (Seedance, Kling, Veo, Wan, Grok Imagine …). /v1/videos aceita entradas de texto para vídeo e de imagem para vídeo em uma única requisição no formato da OpenAI. Retorna um task_id para você consultar — ou registre um webhook no momento do envio.
#Parâmetros da requisição
modelstringobrigatórioID de um modelo de vídeo da página de modelos, por exemplo doubao-seedance-2.5.
promptstringobrigatórioDescrição da cena; em image2video, direciona o movimento.
imagestringopcionalSomente image2video: imagem do primeiro frame como URL ou base64.
imagesarrayopcionalFrames de referência para provedores que aceitam várias imagens em uma tarefa.
durationnumberopcionalDuração do clipe em segundos — uma dimensão da faixa de preço; valores suportados na ficha do modelo.
secondsnumberopcionalAlias usado por algumas famílias de modelos para a duração do clipe; prefira o campo duration.
resolutionstringopcionalFaixa de resolução da saída, como 720p ou 1080p, quando o modelo oferece.
sizestringopcionalSeletor de proporção ou tamanho para famílias de modelos que usam tamanhos no estilo largura x altura.
webhook_urlstringopcionalURL HTTPS chamada quando a tarefa chega a um estado final — veja o guia de vídeo para o contrato do callback.
webhook_secretstringopcionalSe definido, as entregas trazem X-Xiaoxiang-Signature: sha256=hex(HMAC-SHA256(body, secret)).
Repasse de parâmetros do provedor
Tarefas com falha são reembolsadas automaticamente
#Cancelar uma tarefa em execução
/v1/videos/:task_idInterrompe uma tarefa que ainda não chegou a um estado final. Em caso de sucesso, a cota reservada é reembolsada, a tarefa é registrada como failed com o motivo "cancelled by user", e qualquer webhook registrado dispara como task.failed.
A maioria dos provedores não permite cancelar
curl -X DELETE https://www.aisplice.store/v1/videos/task_xxx \
-H "Authorization: Bearer sk-YOUR_KEY"{
"id": "task_xxx",
"task_id": "task_xxx",
"status": "cancelled"
}Note que "cancelled" aparece apenas nesta resposta. Uma consulta posterior informa a tarefa como failed, porque esse é o estado para o qual ela foi movida.
- 404 task_not_existid de tarefa desconhecido, ou pertence a outra conta.
- 409 task_not_cancellableA tarefa já terminou — não há nada para interromper.
- 501 task_cancel_not_supportedEste provedor não oferece API de cancelamento.
#Fazer remix de um vídeo existente
/v1/videos/:video_id/remixRenderiza de novo um vídeo concluído com um novo prompt, nos modelos que oferecem isso. Envie prompt e nada mais: o modelo, a duração, a resolução e os fatores de preço são herdados da tarefa original, e a requisição fica vinculada ao canal que a produziu.
curl https://www.aisplice.store/v1/videos/task_xxx/remix \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: remix-of-task_xxx" \
-d '{"prompt": "Same shot, at night"}'{
"task_id": "task_yyy",
"status": "queued",
"remixed_from_video_id": "task_xxx"
}Um remix é uma nova tarefa cobrada
- 400 invalid_requestprompt é obrigatório em um remix.
- 400 task_not_existO id do vídeo de origem é desconhecido ou pertence a outra conta.
- 400 task_channel_disableO canal que produziu o vídeo original não está mais ativado.
#Erros relacionados
- 404 not_foundCaminho desconhecido, nome de modelo desconhecido ou um task_id expirado ou de outra conta.
- 422 unprocessable_entityO provedor rejeitou valores de parâmetros que o gateway repassou (por exemplo, tamanho ou duração não suportados).
- 401Bearer token inválido ou ausente. Não há error.code neste caminho — verifique o status.
- 402 insufficient_user_quotaO saldo da carteira não cobre a estimativa pré-reservada.
- 429Limitação por chave. Corpo vazio; aguarde o Retry-After. Um 429 que traz insufficient_user_quota indica, na verdade, o limite de gastos diário.
- 503 model_not_foundModelo desconhecido, ou nenhum canal saudável o atende no momento.
#Exemplo de requisição
# submit
curl https://www.aisplice.store/v1/videos \
-H "Authorization: Bearer sk-YOUR_KEY" \
-H "Content-Type: application/json" \
-d '{"model": "doubao-seedance-2.5", "prompt": "A drone shot of a lighthouse at dawn"}'
# poll every 5s
curl https://www.aisplice.store/v1/videos/$TASK_ID -H "Authorization: Bearer sk-YOUR_KEY"
# download when completed
curl -L https://www.aisplice.store/v1/videos/$TASK_ID/content -o out.mp4 -H "Authorization: Bearer sk-YOUR_KEY"#Resposta
// POST — submit accepted
{"task_id": "task_xxx", "status": "queued"}
// GET /v1/videos/{task_id}
{
"task_id": "task_xxx",
"status": "in_progress", // queued | in_progress | completed | failed
"progress": "45%"
}
// terminal state
{
"task_id": "task_xxx",
"status": "completed",
"metadata": {"url": "https://…"}
}Ainda com problemas?
Envie para nós o ID da requisição ou a mensagem de erro e vamos investigar.