Pular para o conteúdo

Enviando um vídeo para clipagem

Antes de gerar clipes, você precisa de um video_id. Há duas formas de obter um, e ambas convergem para o mesmo passo seguinte: chamar POST /clips com esse video_id (veja o Quickstart).

A forma mais simples. Envie a URL de um vídeo público (YouTube, TikTok, Twitch, Kick, Vimeo, etc.) para análise. Analisar não custa créditos.

Terminal window
curl -X POST https://api.cut.pro/api/v1/clips/info \
-H "X-Api-Key: $CUTPRO_API_KEY" \
-H "Content-Type: application/json" \
-d '{ "url": "https://www.youtube.com/watch?v=dQw4w9WgXcQ" }'

A resposta traz video_id, credits_cost (o que será cobrado ao submeter), current_balance e o título e a duração do vídeo. Guarde o video_id e siga para POST /clips.

Nem todo link público pode ser clipado. Estes casos voltam com 422 e um code que diz o motivo:

codeO que aconteceu
LIVE_STREAMA transmissão ainda está no ar. Espere ela terminar e virar vídeo
PLAYLIST_URLA URL é de uma playlist. Envie o link de um vídeo
CHANNEL_URLA URL é de um canal. Envie o link de um vídeo
SHORTS_NOT_SUPPORTEDO vídeo já é um curto vertical, não há o que cortar
AUDIO_ONLYO link não tem faixa de vídeo
INVALID_DURATIONMenos de 1 minuto, ou mais do que o seu plano permite
INVALID_URLA plataforma não é suportada ou o endereço está errado

Vídeo privado, com restrição de idade ou bloqueado por região volta com 403 (PRIVATE_VIDEO, AGE_RESTRICTED, REGION_BLOCKED).

Para vídeos do seu computador, o envio é feito em três passos com uma URL pré-assinada (presigned), enviando os bytes direto para o armazenamento.

  1. Declare o nome do arquivo e o tipo de conteúdo. A resposta traz o video_id, a upload_url (para onde enviar os bytes) e expires_in (segundos até expirar).

    Terminal window
    curl -X POST https://api.cut.pro/api/v1/videos/upload \
    -H "X-Api-Key: $CUTPRO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "file_name": "minha-live.mp4",
    "content_type": "video/mp4"
    }'
  2. Faça um PUT do arquivo direto na upload_url. Não envie a sua chave de API aqui (a URL já é assinada), e use o mesmo Content-Type que você declarou no passo anterior.

    Terminal window
    curl -X PUT "UPLOAD_URL" \
    -H "Content-Type: video/mp4" \
    --data-binary @minha-live.mp4

    O PUT deve retornar 200 antes de seguir.

  3. Registre o upload informando as dimensões e a duração do arquivo (medidas no seu lado). A resposta traz a metadata do vídeo e o credits_cost, igual à análise por URL.

    Terminal window
    curl -X POST https://api.cut.pro/api/v1/videos/upload/complete \
    -H "X-Api-Key: $CUTPRO_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
    "video_id": "VIDEO_ID",
    "file_name": "minha-live.mp4",
    "duration": 5400,
    "width": 1920,
    "height": 1080
    }'

    Chame este passo apenas depois que o PUT retornar 200. Se o arquivo não estiver no armazenamento, a resposta é 404 FILE_NOT_FOUND. Se a duração estiver fora dos limites, retorna 400 VIDEO_TOO_SHORT ou VIDEO_TOO_LONG (com max_duration).

Continue no Quickstart

Com o video_id em mãos, siga a partir do passo “Envie para clipagem” (POST /clips)