توثيق الـ API
Llumi Cut خدمة HTTP. ترفع الملفات، وترسل خطًا زمنيًا بصيغة JSON، وتنزّل النتيجة. تلخّص هذه الصفحة الحقول؛ أما المخطط الكامل المُتحقق منه فتجده في /openapi.json على كل تثبيت.
المصادقة
لكل تثبيت مفتاحه الخاص. أرسله مع كل مسار /v1:
Authorization: Bearer <مفتاحك>التسلسل
- ارفع كل ملف عبر
POST /v1/assets?kind=image|video|audioمع الملف كمحتوى ثنائي في جسم الطلب. يعيد{"id": "…"}. - أدخل المونتاج في الطابور عبر
POST /v1/rendersمع الخط الزمني بصيغة JSON. استخدم الترويسةIdempotency-Keyحتى لا تُنشئ إعادة المحاولة عملية إنتاج ثانية. - استعلم عبر
GET /v1/renders/{id}حتى تصبح قيمةstatusهيcompleted، ثم نزّل كل ملف منresult.files.
نقاط النهاية
| الطريقة | المسار | الوظيفة |
|---|---|---|
| GET | /health | حالة الخدمة |
| POST | /v1/assets?kind=image|video|audio | يرفع ملفًا ثنائيًا ويعيد معرّفه |
| 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=N | يحذف عمليات الإنتاج المتوقفة الأقدم من N يومًا |
الخط الزمني
الحقول الإلزامية فقط title وduration وclips. يجب أن يساوي مجموع مدد اللقطات قيمة duration.
| الحقل | القيم |
|---|---|
duration | 3–600 s |
width · aspect | 640 أو 1280 أو 1920 (الضلع الأطول) · 16:9، 9:16، 1:1 |
fps | 24 أو 30 |
background | لون الأشرطة الجانبية، #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 | ظهور واختفاء تدريجي للفيديو كله وصوته، 0–5 s |
audio_asset_id · pauses | أغنية رئيسية اختيارية وحتى عشرة توقفات بصمت رقمي |
اللقطات (clips[])
| الحقل | القيم |
|---|---|
asset_id · duration | صورة أو فيديو · حتى 60 s |
trim_start · speed | ثانية البداية في الملف المصدر · 0.25–4 |
volume | صوت المقطع نفسه، 0–2 (القيمة 0 تكتمه) |
fit | contain (مع أشرطة) أو cover (يملأ الإطار بالاقتصاص) |
freeze · motion | يجمّد الإطار الأول · حركة Ken Burns |
effects | حتى ستة من 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 | الانتقال من اللقطة السابقة |
الصوت (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.
الحدود
- ملفات حتى 250 MB، وصور حتى 8192 × 8192، ووسائط حتى 610 s.
- حتى 150 لقطة و20 مسارًا صوتيًا و20 طبقة و100 عنوان و500 سطر ترجمة.
- تنتهي العناوين والطبقات والترجمة داخل مدة الفيديو. لا يمكن أن يتجاوز الانتقال نصف مدة أي من اللقطتين اللتين يربط بينهما.
- لا تُقبل مسارات القرص ولا عناوين URL ولا قوائم التشغيل كوسائط.