Llumi Cut · Nordic Byte

Documentación de la API

Llumi Cut es un servicio HTTP. Importas recursos, envías un timeline JSON y descargas el resultado. Esta página resume los campos; el esquema completo y validado está en /openapi.json de cada instalación.

Autenticación

Cada instalación tiene su propia clave. Envíala en todas las rutas /v1:

Authorization: Bearer <tu-clave>

Flujo

  1. Importar cada recurso con POST /v1/assets?kind=image|video|audio y el fichero como cuerpo binario. Devuelve {"id": "…"}.
  2. Encolar el montaje con POST /v1/renders y el timeline como JSON. Usa la cabecera Idempotency-Key para que un reintento no cree un segundo render.
  3. Consultar GET /v1/renders/{id} hasta que status sea completed, y descargar cada fichero de result.files.

Endpoints

MétodoRutaQué hace
GET/healthEstado del servicio
POST/v1/assets?kind=image|video|audioImporta un recurso binario y devuelve su id
POST/v1/rendersValida el timeline y lo encola
GET/v1/rendersÚltimos 100 renders
GET/v1/renders/{id}Estado, progreso, eventos y errores
POST/v1/renders/{id}/cancelCancela un render en cola o en curso
POST/v1/renders/{id}/retryReintenta un render detenido
DELETE/v1/renders/{id}Borra un render detenido y sus ficheros
GET/v1/renders/{id}/files/{name}Descarga una salida
POST/v1/maintenance/purge?older_than_days=NBorra renders detenidos con más de N días

Timeline

Solo title, duration y clips son obligatorios. La suma de las duraciones de los planos debe coincidir con duration.

CampoValores
duration3–600 s
width · aspect640, 1280 o 1920 (lado largo) · 16:9, 9:16, 1:1
fps24 o 30
backgroundColor de las bandas, #RRGGBB
transition · transition_durationcut, fade, fadeblack, fadewhite, dissolve, slideleft, slideright, wipeleft, wiperight, smoothleft, smoothright, circleopen, circleclose · 0,1–2 s
image_motionnone, zoom_in, zoom_out, pan_left, pan_right, auto
fade_in · fade_outFundido de todo el vídeo y su sonido, 0–5 s
audio_asset_id · pausesCanción principal opcional y hasta diez pausas de silencio digital

Planos (clips[])

CampoValores
asset_id · durationImagen o vídeo · hasta 60 s
trim_start · speedSegundo de inicio en la fuente · 0,25–4
volumeSonido propio del vídeo, 0–2 (0 lo silencia)
fitcontain (con bandas) o cover (llena recortando)
freeze · motionCongela el primer fotograma · movimiento Ken Burns
effectsHasta seis de grayscale, sepia, vintage, noir, warm, cool, blur, sharpen, vignette, invert, mirror, flip
brightness · contrast · saturation−0,5–0,5 · 0,3–2 · 0–3
transition · transition_durationTransición desde el plano anterior

Sonido (audio_tracks[])

asset_id, start, trim_start, duration, volume (0–2), fade_in, fade_out, loop y duck. Una pista con duck: true baja unos 10 dB mientras suena la canción, una voz o el sonido de un vídeo.

Textos (texts[])

text (hasta cinco líneas), start, end, position (nueve posiciones) o x/y en fracciones del cuadro, size, color, outline_color, outline, box, box_color, box_opacity, font, bold, italic y animation (none, fade, slide_up, slide_left, pop, typewriter).

Capas (overlays[])

asset_id (imagen o vídeo), start, end, position o x/y, width, height (con ambos se rellena la caja: pantalla dividida y cuadrículas), margin, opacity, trim_start, volume, fade, border y border_color.

Subtítulos (captions[])

start, end y text. Se exportan como SRT y WebVTT y, con burn_subtitles: true, se integran en la imagen.

Salidas

video.mp4 (H.264 + AAC), audio.wav (banda sonora final), song.wav (solo con canción principal), subtitles.srt, subtitles.vtt, qc.json (duración, resolución, fuentes de sonido, avisos) y manifest.json.

Límites