Llumi Cut · Nordic Byte

API डॉक्यूमेंटेशन

Llumi Cut एक HTTP सेवा है। आप मीडिया अपलोड करते हैं, JSON टाइमलाइन भेजते हैं और नतीजा डाउनलोड करते हैं। यह पेज फ़ील्ड का सार देता है; पूरा, जाँचा हुआ स्कीमा हर इंस्टॉलेशन पर /openapi.json में है।

ऑथेंटिकेशन

हर इंस्टॉलेशन की अपनी key होती है। इसे हर /v1 रूट पर भेजें:

Authorization: Bearer <आपकी-key>

प्रक्रिया

  1. हर फ़ाइल को POST /v1/assets?kind=image|video|audio से अपलोड करें, फ़ाइल को बाइनरी बॉडी में भेजें। यह {"id": "…"} लौटाता है।
  2. एडिट को POST /v1/renders से, टाइमलाइन को JSON के रूप में भेजकर कतार में डालें। Idempotency-Key हेडर इस्तेमाल करें, ताकि दोबारा कोशिश करने पर दूसरा रेंडर न बने।
  3. GET /v1/renders/{id} को तब तक पोल करें जब तक status का मान completed न हो जाए, फिर result.files से हर फ़ाइल डाउनलोड करें।

एंडपॉइंट

मेथडपाथयह क्या करता है
GET/healthसेवा की स्थिति
POST/v1/assets?kind=image|video|audioबाइनरी फ़ाइल अपलोड करता है और उसकी ID लौटाता है
POST/v1/rendersटाइमलाइन की जाँच करता है और उसे कतार में डालता है
GET/v1/rendersपिछले 100 रेंडर
GET/v1/renders/{id}स्थिति, प्रगति, इवेंट और त्रुटियाँ
POST/v1/renders/{id}/cancelकतार में या चल रहे रेंडर को रद्द करता है
POST/v1/renders/{id}/retryरुके हुए रेंडर को दोबारा चलाता है
DELETE/v1/renders/{id}रुके हुए रेंडर और उसकी फ़ाइलें हटाता है
GET/v1/renders/{id}/files/{name}एक आउटपुट डाउनलोड करता है
POST/v1/maintenance/purge?older_than_days=NN दिन से पुराने रुके हुए रेंडर हटाता है

टाइमलाइन

सिर्फ़ title, duration और clips ज़रूरी हैं। शॉट की अवधियों का जोड़ duration के बराबर होना चाहिए।

फ़ील्डमान
duration3–600 s
width · aspect640, 1280 या 1920 (लंबी साइड) · 16:9, 9:16, 1:1
fps24 या 30
backgroundकिनारे की पट्टियों का रंग, #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_outपूरे वीडियो और उसकी आवाज़ का फ़ेड, 0–5 s
audio_asset_id · pausesवैकल्पिक मुख्य गाना और डिजिटल ख़ामोशी के दस तक विराम

शॉट (clips[])

फ़ील्डमान
asset_id · durationइमेज या वीडियो · 60 s तक
trim_start · speedसोर्स में शुरुआती सेकंड · 0.25–4
volumeक्लिप की अपनी आवाज़, 0–2 (0 पर म्यूट)
fitcontain (पट्टियों के साथ) या cover (क्रॉप करके भरता है)
freeze · motionपहला फ़्रेम रोक देता है · Ken Burns मूवमेंट
effectsgrayscale, 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पिछले शॉट से ट्रांज़िशन

साउंड (audio_tracks[])

asset_id, start, trim_start, duration, volume (0–2), fade_in, fade_out, loop और duck। duck: true वाला ट्रैक लगभग 10 dB धीमा हो जाता है जब गाना, कोई आवाज़ या किसी क्लिप की साउंड चल रही हो।

टाइटल (texts[])

text (पाँच लाइन तक), start, end, position (नौ पोज़िशन) या फ़्रेम के अंश के रूप में x/y, size, color, outline_color, outline, box, box_color, box_opacity, font, bold, italic और animation (none, fade, slide_up, slide_left, pop, typewriter)।

लेयर (overlays[])

asset_id (इमेज या वीडियो), start, end, position या x/y, width, height (दोनों देने पर बॉक्स भर जाता है: स्प्लिट स्क्रीन और ग्रिड), margin, opacity, trim_start, volume, fade, border और border_color।

सबटाइटल (captions[])

start, end और text। ये SRT और WebVTT में एक्सपोर्ट होते हैं और burn_subtitles: true होने पर तस्वीर में जोड़ दिए जाते हैं।

आउटपुट

video.mp4 (H.264 + AAC), audio.wav (अंतिम साउंडट्रैक), song.wav (सिर्फ़ मुख्य गाने के साथ), subtitles.srt, subtitles.vtt, qc.json (अवधि, रिज़ॉल्यूशन, साउंड सोर्स, चेतावनियाँ) और manifest.json।

सीमाएँ