POST/api/v1/generate/cortes

Cortes IA

Bearer tokenescopo generate:video

Corta um vídeo longo em vários clipes curtos verticais, rankeados por IA (transcrição → ranking dos melhores trechos → recorte automático). Aceita um link de página (YouTube, TikTok, Instagram) ou a URL de um arquivo de vídeo já hospedado. Responde 202 Accepted com um taskId; acompanhe o resultado por polling em GET /api/v1/tasks/:id.

Escopo necessário: generate:video.

O número de cortes é automático — derivado da duração do vídeo (cerca de 3 cortes a cada 10 min, mínimo 3, máximo 20). Não é configurável. A duração de links do YouTube é re-resolvida no servidor (o durationSec enviado é ignorado para YouTube). O custo é por duração do vídeo de entrada + número de cortes — o débito acontece na criação da task.

Body

CampoTipoObrigatórioValores / restrições
videoUrlstringsimURL HTTPS de um link de página (YouTube/TikTok/Instagram) ou de um arquivo de vídeo já hospedado. Host privado/interno é rejeitado.
aspectRatiostringnão9:16 (default), 16:9, 1:1, 4:5, 4:3 ou 3:4
durationSecnumbernãoDuração do vídeo em segundos. Usado só para precificar arquivos que não são do YouTube (links do YouTube têm a duração re-resolvida no servidor).

Exemplo de request

cURL
curl -X POST https://avatrix.io/api/v1/generate/cortes \
  -H "Authorization: Bearer av_xxxxxxxxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 9f1c-cortes-001" \
  -d '{
    "videoUrl": "https://www.youtube.com/watch?v=dQw4w9WgXcQ",
    "aspectRatio": "9:16"
  }'

Resposta — 202

JSON
{ "success": true, "data": { "taskId": "...", "status": "queued" } }

Resultado — os N cortes

Faça polling em GET /api/v1/tasks/:id. Quando a task chega a completed, além do resultUrl (o primeiro corte, usado como capa) o corpo traz a lista completa clips:

JSON
{
  "success": true,
  "data": {
    "id": "...",
    "taskType": "cortes",
    "status": "completed",
    "resultUrl": "https://storage.avatrix.io/.../corte-1.mp4",
    "clips": [
      {
        "url": "https://storage.avatrix.io/.../corte-1.mp4",
        "title": "O momento que viralizou",
        "hook": "Você não vai acreditar no que aconteceu",
        "score": 0.92,
        "startTime": 124.5,
        "endTime": 152.0
      }
    ]
  }
}

Cada item de clips traz url (mp4 do corte), title, hook, score (relevância 0–1) e startTime/endTime (em segundos, no vídeo original).

Idempotência

Envie o header Idempotency-Key (opcional, máx. 128 chars). Requisições repetidas com a mesma chave (24h) retornam a resposta original sem novo débito. Ver Idempotência.

Erros relevantes

CódigoHTTPQuando
VALIDATION_ERROR400videoUrl ausente/inválida, não-HTTPS, host privado, ou vídeo acima da duração máxima
INSUFFICIENT_CREDITS402saldo insuficiente
FORBIDDEN403Cortes IA indisponível no plano, ou token sem generate:video
RATE_LIMITED / MAX_CONCURRENT_TASKS429rate limit ou 20 tasks simultâneas
DOWNLOAD_FAILED502não foi possível baixar o vídeo da URL informada
GENERATION_FAILED502falha ao iniciar a geração
FEATURE_DISABLED503Cortes IA temporariamente indisponível

Ver Códigos de erro e Escopos.