Com o video_id em mãos, siga a partir do passo “Envie para clipagem” (POST /clips)
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).
Opção A: por URL pública
Seção intitulada “Opção A: por URL pública”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.
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.
Quando o link não serve
Seção intitulada “Quando o link não serve”Nem todo link público pode ser clipado. Estes casos voltam com 422 e um code que diz o motivo:
code | O que aconteceu |
|---|---|
LIVE_STREAM | A transmissão ainda está no ar. Espere ela terminar e virar vídeo |
PLAYLIST_URL | A URL é de uma playlist. Envie o link de um vídeo |
CHANNEL_URL | A URL é de um canal. Envie o link de um vídeo |
SHORTS_NOT_SUPPORTED | O vídeo já é um curto vertical, não há o que cortar |
AUDIO_ONLY | O link não tem faixa de vídeo |
INVALID_DURATION | Menos de 1 minuto, ou mais do que o seu plano permite |
INVALID_URL | A 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).
Opção B: enviando seu próprio arquivo
Seção intitulada “Opção B: enviando seu próprio arquivo”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.
-
Inicie o upload
Seção intitulada “Inicie o upload”Declare o nome do arquivo e o tipo de conteúdo. A resposta traz o
video_id, aupload_url(para onde enviar os bytes) eexpires_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"}' -
Envie os bytes para a upload_url
Seção intitulada “Envie os bytes para a upload_url”Faça um
PUTdo arquivo direto naupload_url. Não envie a sua chave de API aqui (a URL já é assinada), e use o mesmoContent-Typeque você declarou no passo anterior.Terminal window curl -X PUT "UPLOAD_URL" \-H "Content-Type: video/mp4" \--data-binary @minha-live.mp4O
PUTdeve retornar200antes de seguir. -
Finalize o upload
Seção intitulada “Finalize o upload”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
PUTretornar200. Se o arquivo não estiver no armazenamento, a resposta é404 FILE_NOT_FOUND. Se a duração estiver fora dos limites, retorna400 VIDEO_TOO_SHORTouVIDEO_TOO_LONG(commax_duration).