Documentação da API
O Llumi Cut é um serviço HTTP. Você envia as mídias, manda uma timeline em JSON e baixa o resultado. Esta página resume os campos; o esquema completo e validado está em /openapi.json em cada instalação.
Autenticação
Cada instalação tem sua própria chave. Envie-a em todas as rotas /v1:
Authorization: Bearer <sua-chave>Fluxo
- Envie cada arquivo com
POST /v1/assets?kind=image|video|audioe o arquivo como corpo binário. A resposta é{"id": "…"}. - Coloque na fila a edição com
POST /v1/renderse a timeline em JSON. Use o cabeçalhoIdempotency-Keypara que uma nova tentativa não crie uma segunda renderização. - Consulte
GET /v1/renders/{id}até questatussejacompletede baixe cada arquivo deresult.files.
Endpoints
| Método | Rota | O que faz |
|---|---|---|
| GET | /health | Status do serviço |
| POST | /v1/assets?kind=image|video|audio | Envia um arquivo binário e retorna seu ID |
| POST | /v1/renders | Valida a timeline e a coloca na fila |
| GET | /v1/renders | As 100 renderizações mais recentes |
| GET | /v1/renders/{id} | Status, progresso, eventos e erros |
| POST | /v1/renders/{id}/cancel | Cancela uma renderização na fila ou em andamento |
| POST | /v1/renders/{id}/retry | Tenta de novo uma renderização parada |
| DELETE | /v1/renders/{id} | Exclui uma renderização parada e seus arquivos |
| GET | /v1/renders/{id}/files/{name} | Baixa uma saída |
| POST | /v1/maintenance/purge?older_than_days=N | Exclui renderizações paradas com mais de N dias |
Timeline
Só title, duration e clips são obrigatórios. A soma das durações das cenas deve ser igual a duration.
| Campo | Valores |
|---|---|
duration | 3–600 s |
width · aspect | 640, 1280 ou 1920 (lado maior) · 16:9, 9:16, 1:1 |
fps | 24 ou 30 |
background | Cor das faixas laterais, #RRGGBB |
transition · transition_duration | cut, fade, fadeblack, fadewhite, dissolve, slideleft, slideright, wipeleft, wiperight, smoothleft, smoothright, circleopen, circleclose · 0,1–2 s |
image_motion | none, zoom_in, zoom_out, pan_left, pan_right, auto |
fade_in · fade_out | Fade do vídeo inteiro e do seu som, 0–5 s |
audio_asset_id · pauses | Música principal opcional e até dez pausas de silêncio digital |
Cenas (clips[])
| Campo | Valores |
|---|---|
asset_id · duration | Imagem ou vídeo · até 60 s |
trim_start · speed | Segundo inicial na fonte · 0,25–4 |
volume | Som próprio do clipe, 0–2 (0 silencia) |
fit | contain (com faixas) ou cover (preenche recortando) |
freeze · motion | Congela o primeiro quadro · movimento Ken Burns |
effects | Até seis entre 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_duration | Transição a partir da cena anterior |
Som (audio_tracks[])
asset_id, start, trim_start, duration, volume (0–2), fade_in, fade_out, loop e duck. Uma faixa com duck: true abaixa cerca de 10 dB enquanto tocam a música principal, uma voz ou o som de um clipe.
Títulos (texts[])
text (até cinco linhas), start, end, position (nove posições) ou x/y como frações do quadro, size, color, outline_color, outline, box, box_color, box_opacity, font, bold, italic e animation (none, fade, slide_up, slide_left, pop, typewriter).
Camadas (overlays[])
asset_id (imagem ou vídeo), start, end, position ou x/y, width, height (com os dois, a caixa é preenchida: tela dividida e grades), margin, opacity, trim_start, volume, fade, border e border_color.
Legendas (captions[])
start, end e text. São exportadas em SRT e WebVTT e, com burn_subtitles: true, gravadas na imagem.
Saídas
video.mp4 (H.264 + AAC), audio.wav (trilha sonora final), song.wav (só com música principal), subtitles.srt, subtitles.vtt, qc.json (duração, resolução, fontes de som, avisos) e manifest.json.
Limites
- Arquivos de até 250 MB, imagens de até 8192 × 8192 e mídias de até 610 s.
- Até 150 cenas, 20 faixas de áudio, 20 camadas, 100 títulos e 500 legendas.
- Títulos, camadas e legendas terminam dentro do vídeo. Uma transição não pode durar mais que a metade de qualquer uma das cenas que une.
- Caminhos de disco, URLs e playlists não são aceitos como mídia.