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
- Unggah setiap file dengan
POST /v1/assets?kind=image|video|audiodan file sebagai body biner. Responsnya{"id": "…"}. - Antrekan editan dengan
POST /v1/rendersdan timeline sebagai JSON. Gunakan headerIdempotency-Keyagar percobaan ulang tidak membuat render kedua. - Polling
GET /v1/renders/{id}sampaistatusbernilaicompleted, lalu unduh setiap file dariresult.files.
Endpoint
| Metode | Path | Fungsi |
|---|---|---|
| GET | /health | Status layanan |
| POST | /v1/assets?kind=image|video|audio | Mengunggah file biner dan mengembalikan ID-nya |
| POST | /v1/renders | Memvalidasi timeline dan memasukkannya ke antrean |
| GET | /v1/renders | 100 render terakhir |
| GET | /v1/renders/{id} | Status, progres, event, dan error |
| POST | /v1/renders/{id}/cancel | Membatalkan render yang sedang antre atau berjalan |
| POST | /v1/renders/{id}/retry | Mengulang 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=N | Menghapus render berhenti yang lebih lama dari N hari |
Timeline
Hanya title, duration, dan clips yang wajib. Total durasi adegan harus sama dengan duration.
| Field | Nilai |
|---|---|
duration | 3–600 s |
width · aspect | 640, 1280, atau 1920 (sisi panjang) · 16:9, 9:16, 1:1 |
fps | 24 atau 30 |
background | Warna bilah tepi, #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 untuk seluruh video beserta suaranya, 0–5 s |
audio_asset_id · pauses | Lagu utama opsional dan hingga sepuluh jeda hening digital |
Adegan (clips[])
| Field | Nilai |
|---|---|
asset_id · duration | Gambar atau video · hingga 60 s |
trim_start · speed | Detik awal di sumber · 0,25–4 |
volume | Suara asli klip, 0–2 (0 membisukannya) |
fit | contain (dengan bilah) atau cover (memenuhi bingkai dengan crop) |
freeze · motion | Membekukan frame pertama · gerakan Ken Burns |
effects | Hingga 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_duration | Transisi 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
- File hingga 250 MB, gambar hingga 8192 × 8192, dan media hingga 610 s.
- Hingga 150 adegan, 20 trek audio, 20 lapisan, 100 judul, dan 500 subtitle.
- Judul, lapisan, dan subtitle harus berakhir sebelum video selesai. Transisi tidak boleh lebih panjang dari separuh adegan mana pun yang disambungkannya.
- Path disk, URL, dan playlist tidak diterima sebagai media.