Con el video_id en la mano, continúa desde el paso “Envíalo al recorte” (POST /clips)
Enviando un vídeo para recortar
Antes de generar clips necesitas un video_id. Hay dos formas de conseguirlo, y las dos llevan al mismo paso siguiente: llamar a POST /clips con ese video_id (mira el Quickstart).
Opción A: por URL pública
Sección titulada «Opción A: por URL pública»La forma más simple. Envía la URL de un vídeo público (YouTube, TikTok, Twitch, Kick, Vimeo y otros) para analizarlo. Analizar no cuesta 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" }'La respuesta trae video_id, credits_cost (lo que se cobrará al enviar), current_balance y el título y la duración del vídeo. Guarda el video_id y sigue con POST /clips.
Cuando el enlace no sirve
Sección titulada «Cuando el enlace no sirve»No todo enlace público se puede recortar. Estos casos vuelven con 422 y un code que dice el motivo:
code | Qué pasó |
|---|---|
LIVE_STREAM | La emisión sigue en directo. Espera a que termine y quede como vídeo |
PLAYLIST_URL | La URL es de una lista de reproducción. Envía el enlace de un vídeo |
CHANNEL_URL | La URL es de un canal. Envía el enlace de un vídeo |
SHORTS_NOT_SUPPORTED | El vídeo ya es un corto vertical, no hay nada que recortar |
AUDIO_ONLY | El enlace no tiene pista de vídeo |
INVALID_DURATION | Menos de 1 minuto, o más de lo que permite tu plan |
INVALID_URL | La plataforma no está soportada o la dirección está mal |
Un vídeo privado, con restricción de edad o bloqueado por región vuelve con 403 (PRIVATE_VIDEO, AGE_RESTRICTED, REGION_BLOCKED).
Opción B: subiendo tu propio archivo
Sección titulada «Opción B: subiendo tu propio archivo»Para vídeos de tu ordenador, la subida son tres pasos con una URL prefirmada (presigned), enviando los bytes directo al almacenamiento.
-
Inicia la subida
Sección titulada «Inicia la subida»Declara el nombre del archivo y el tipo de contenido. La respuesta trae el
video_id, laupload_url(adónde enviar los bytes) yexpires_in(segundos hasta que caduque).Ventana de terminal 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": "mi-directo.mp4","content_type": "video/mp4"}' -
Envía los bytes a la upload_url
Sección titulada «Envía los bytes a la upload_url»Haz un
PUTdel archivo directo a laupload_url. No envíes aquí tu clave de API (la URL ya está firmada), y usa el mismoContent-Typeque declaraste en el paso anterior.Ventana de terminal curl -X PUT "UPLOAD_URL" \-H "Content-Type: video/mp4" \--data-binary @mi-directo.mp4El
PUTdebe devolver200antes de seguir. -
Finaliza la subida
Sección titulada «Finaliza la subida»Registra la subida indicando las dimensiones y la duración del archivo (medidas por tu lado). La respuesta trae los metadatos del vídeo y el
credits_cost, igual que el análisis por URL.Ventana de terminal 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": "mi-directo.mp4","duration": 5400,"width": 1920,"height": 1080}'Llama a este paso solo después de que el
PUTdevuelva200. Si el archivo no está en el almacenamiento, la respuesta es404 FILE_NOT_FOUND. Si la duración se sale de los límites, devuelve400 VIDEO_TOO_SHORToVIDEO_TOO_LONG(conmax_duration).