Ir al contenido

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).

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.

Ventana de terminal
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.

No todo enlace público se puede recortar. Estos casos vuelven con 422 y un code que dice el motivo:

codeQué pasó
LIVE_STREAMLa emisión sigue en directo. Espera a que termine y quede como vídeo
PLAYLIST_URLLa URL es de una lista de reproducción. Envía el enlace de un vídeo
CHANNEL_URLLa URL es de un canal. Envía el enlace de un vídeo
SHORTS_NOT_SUPPORTEDEl vídeo ya es un corto vertical, no hay nada que recortar
AUDIO_ONLYEl enlace no tiene pista de vídeo
INVALID_DURATIONMenos de 1 minuto, o más de lo que permite tu plan
INVALID_URLLa 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).

Para vídeos de tu ordenador, la subida son tres pasos con una URL prefirmada (presigned), enviando los bytes directo al almacenamiento.

  1. Declara el nombre del archivo y el tipo de contenido. La respuesta trae el video_id, la upload_url (adónde enviar los bytes) y expires_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"
    }'
  2. Haz un PUT del archivo directo a la upload_url. No envíes aquí tu clave de API (la URL ya está firmada), y usa el mismo Content-Type que declaraste en el paso anterior.

    Ventana de terminal
    curl -X PUT "UPLOAD_URL" \
    -H "Content-Type: video/mp4" \
    --data-binary @mi-directo.mp4

    El PUT debe devolver 200 antes de seguir.

  3. 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 PUT devuelva 200. Si el archivo no está en el almacenamiento, la respuesta es 404 FILE_NOT_FOUND. Si la duración se sale de los límites, devuelve 400 VIDEO_TOO_SHORT o VIDEO_TOO_LONG (con max_duration).

Sigue en el Quickstart

Con el video_id en la mano, continúa desde el paso “Envíalo al recorte” (POST /clips)