Llumi Cut · Nordic Byte

Dokumentasi API

Llumi Cut adalah layanan HTTP. Anda mengunggah media, mengirim timeline JSON, dan mengunduh hasilnya. Halaman ini merangkum field-nya; skema lengkap yang tervalidasi ada di /openapi.json di setiap instalasi.

Autentikasi

Setiap instalasi punya kunci sendiri. Kirimkan kunci ini di setiap rute /v1:

Authorization: Bearer <kunci-anda>

Alur

  1. Unggah setiap file dengan POST /v1/assets?kind=image|video|audio dan file sebagai body biner. Responsnya {"id": "…"}.
  2. Antrekan editan dengan POST /v1/renders dan timeline sebagai JSON. Gunakan header Idempotency-Key agar percobaan ulang tidak membuat render kedua.
  3. Polling GET /v1/renders/{id} sampai status bernilai completed, lalu unduh setiap file dari result.files.

Endpoint

MetodePathFungsi
GET/healthStatus layanan
POST/v1/assets?kind=image|video|audioMengunggah file biner dan mengembalikan ID-nya
POST/v1/rendersMemvalidasi timeline dan memasukkannya ke antrean
GET/v1/renders100 render terakhir
GET/v1/renders/{id}Status, progres, event, dan error
POST/v1/renders/{id}/cancelMembatalkan render yang sedang antre atau berjalan
POST/v1/renders/{id}/retryMengulang render yang berhenti
DELETE/v1/renders/{id}Menghapus render yang berhenti beserta file-nya
GET/v1/renders/{id}/files/{name}Mengunduh output
POST/v1/maintenance/purge?older_than_days=NMenghapus render berhenti yang lebih lama dari N hari

Timeline

Hanya title, duration, dan clips yang wajib. Total durasi adegan harus sama dengan duration.

FieldNilai
duration3–600 s
width · aspect640, 1280, atau 1920 (sisi panjang) · 16:9, 9:16, 1:1
fps24 atau 30
backgroundWarna bilah tepi, #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_outFade untuk seluruh video beserta suaranya, 0–5 s
audio_asset_id · pausesLagu utama opsional dan hingga sepuluh jeda hening digital

Adegan (clips[])

FieldNilai
asset_id · durationGambar atau video · hingga 60 s
trim_start · speedDetik awal di sumber · 0,25–4
volumeSuara asli klip, 0–2 (0 membisukannya)
fitcontain (dengan bilah) atau cover (memenuhi bingkai dengan crop)
freeze · motionMembekukan frame pertama · gerakan Ken Burns
effectsHingga enam dari 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_durationTransisi dari adegan sebelumnya

Suara (audio_tracks[])

asset_id, start, trim_start, duration, volume (0–2), fade_in, fade_out, loop, dan duck. Trek dengan duck: true turun sekitar 10 dB selama lagu, suara narasi, atau suara klip sedang diputar.

Judul (texts[])

text (hingga lima baris), start, end, position (sembilan posisi) atau x/y sebagai pecahan bingkai, size, color, outline_color, outline, box, box_color, box_opacity, font, bold, italic, dan animation (none, fade, slide_up, slide_left, pop, typewriter).

Lapisan (overlays[])

asset_id (gambar atau video), start, end, position atau x/y, width, height (jika keduanya diisi, kotak dipenuhi: layar terbagi dan grid), margin, opacity, trim_start, volume, fade, border, dan border_color.

Subtitle (captions[])

start, end, dan text. Diekspor sebagai SRT dan WebVTT, dan dengan burn_subtitles: true ditanam langsung ke gambar.

Output

video.mp4 (H.264 + AAC), audio.wav (soundtrack akhir), song.wav (hanya jika ada lagu utama), subtitles.srt, subtitles.vtt, qc.json (durasi, resolusi, sumber suara, peringatan), dan manifest.json.

Batasan