{
  "aboutHtml": "<p>Kling VIDEO O1 هو نموذج Kuaishou الموحّد للفيديو الموجّه بالمراجع. يجمع وصفًا نصيًا وصورًا أو عناصر مرجعية مُعدّة للشخصيات والأشياء أو فيديو مصدرًا لتوجيه مشاهد جديدة وتغييرات محددة في لقطات موجودة. واجهته الأساسية متطلبات بصرية: عرّف المادة المرجعية وصف دورها وحدّد المظهر أو الفعل أو التحول المطلوب في الفيديو الناتج.</p><p>يمكن أن تبدأ لقطة جديدة من نص أو صورة افتتاحية أو مجموعة مراجع بصرية. استخدم صورة لتحديد شخصية أو شيء، وصف المكان والفعل والمنظور بالكلمات. وعندما تسهم مراجع متعددة بصفات مختلفة، أسند أدوارها صراحة. قد تأخذ متطلبات منتج أصلية الشيء من صورة والبيئة من أخرى، ثم تصف حركة الشيء في ذلك المكان.</p><p>يمكن لتوجيه O1 تسمية الصور والعناصر والفيديوهات بعلامات مرجعية محددة، مثل &lt;&lt;&lt;image_1&gt;&gt;&gt; أو&lt;&lt;&lt;video_1&gt;&gt;&gt;. اربط تلك العلامات بالمادة المقدّمة فعليًا واشرح ما ينبغي أخذه منها. حد التوجيه لدى الشركة المصنّعة 2,500 حرف. وتعليمة موجزة تعرّف الموضوع والتغيير أنفع من مجموعة مصطلحات أسلوبية غير مترابطة.</p><p>للمراجع القائمة على الصور دون إدخال فيديو، الميزانية المجمعة الموثّقة حتى سبع صور مرجعية وعناصر متعددة الصور. ومع فيديو مرجعي، تبلغ ميزانية الصور والعناصر أربعة. تخص هذه الحدود العناصر القائمة على الصور؛ ولأنواع العناصر الأخرى قواعد توافق منفصلة. اختر المادة التي توفر المظهر أو معلومات المشهد الأساسية بدل ملء الميزانية بزوايا مكررة.</p><p>تستخدم مدخلات الصور JPG أوJPEG أوPNG، وتُقدّم عبر URL متاح أو بيانات صورة، بملفات حتى 10 MB وأبعاد لا تقل عن 300 بكسل ونسبة عرض بين 1:2.5 و2.5:1. أعدّ صورًا واضحة للعناصر المصوّرة واحتفظ بالتفاصيل المهمة في الاقتطاع. وإذا احتاجت المهمة إلى بقاء شخصية أو منتج مميزًا، حدّد السمات التي يجب أن تبقى وافحصها عبر المقطع المكتمل.</p><p>يوجّه الإطاران الأول والأخير الانتقال بين حدَّين بصريَّين. يتطلب سير عمل O1 الموثّق للإطارات الحدودية إطار بداية عند تقديم إطار نهاية، ولا يدعم التحكّم بإطارَي البداية والنهاية مع أكثر من صورتين في المصفوفة. وعند استخدام الإطارين الحدوديين، لا تدخل عناصر مرجعية إضافية للشخصيات والأشياء في إعداد O1 ذلك. افصل مهمة التحكّم بالإطارات عن تحرير فيديو أساسي مقدّم.</p><p>يمكن أن يكون للفيديو المصدر دوران مختلفان. بوصفه المقطع الأساسي، يكون اللقطات المطلوب تحريرها: وجّه إضافة أو إزالة أو معالجة أسلوبية أو تغيرًا تكوينيًا محددًا مع بيان ما ينبغي أن يبقى. يتبع التعديل مدة المقطع المدخل ولا يجمع مهمة الفيديو الأساسي مع التحكّم بالإطارات الحدودية أو التوليد متعدد اللقطات. وبوصفه مرجع صفات، يزود الفيديو محتوى أو أسلوبًا أو معلومات كاميرا للقطة جديدة.</p><p>يمكن للتوجيه بفيديو مرجعي أيضًا طلب لقطة سابقة أو لاحقة. عرّف المقطع المصدر وصف الحدث المرئي الجديد، مثل استكمال فعل الموضوع أو كشف البيئة المحيطة. يستخدم هذا المرجع لنقل معلومات بصرية؛ راجع الوصلة واستمرارية الموضوع قبل تجميع الجزء الجديد مع اللقطات الأصلية.</p><p>تقبل مواصفات إدخال الفيديو لدى الجهة المنتجة مصدر MP4 أوMOV واحدًا، حتى 200 MB وبحد أدنى ثلاث ثوانٍ. وتحدد المواصفات المفصلة أبعادًا من 720 إلى 2160 بكسل ومعدلات 24 إلى 60 fps، مع نسبة عرض إدخال بين 1:2.5 و2.5:1. يعيد مسار الفيديو المصدر الموثّق فيديو بمعدل 24 fps. وتعتمد مدة المقطع المسموحة الدقيقة أيضًا على نمط النموذج المختار. نطاق التوليد الجديد في O1 ثلاث إلى عشر ثوانٍ، منفصل عن نطاق مدة 3.0 Omni اللاحق.</p><p>توفر أوضاع O1 لدى الشركة المصنّعة إخراج Standard بدقة 720p أوPro بدقة 1080p. يدعم تأطير اللقطة الجديدة خيارات أفقية وعمودية ومربعة موثّقة حيث يستخدم المسار المختار ذلك الإعداد؛ ويتبع تعديل الفيديو الأساسي تأطير مصدره. ويمكن حفظ صوت الفيديو المصدر أو إسقاطه. وينبغي فصل مسار مراجع O1 وتحريره عن نمط 3.0 Omni اللاحق للصوت الأصلي ولوحة القصة المخصصة.</p><p>ينتج التوليد مهمة تتضمن نتيجتها المكتملة مادة الفيديو ومدته الفعلية. وتقول وثائق النتائج لدى الشركة المصنّعة إن الفيديوهات المولّدة تُحذف بعد 30 يومًا، لذا احفظ المقطع المكتمل سريعًا. احتفظ بالمواد المصدر والمتطلبات مع النتيجة، ثم راجع التغيير المطلوب واستخدام المراجع والاستمرارية. وللتحرير، قارن المنطقة المتأثرة والأجزاء المطلوب أن تبقى. وللقطة جديدة تقودها مراجع، تحقّق من تزويد كل مادة المعلومات البصرية المقصودة. أبقِ المقطع المكتمل متاحًا للتحرير اللاحق أو تسلسل الإنتاج.</p>",
  "aboutText": "Kling VIDEO O1 هو نموذج Kuaishou الموحّد للفيديو الموجّه بالمراجع. يجمع وصفًا نصيًا وصورًا أو عناصر مرجعية مُعدّة للشخصيات والأشياء أو فيديو مصدرًا لتوجيه مشاهد جديدة وتغييرات محددة في لقطات موجودة. واجهته الأساسية متطلبات بصرية: عرّف المادة المرجعية وصف دورها وحدّد المظهر أو الفعل أو التحول المطلوب في الفيديو الناتج.\n\nيمكن أن تبدأ لقطة جديدة من نص أو صورة افتتاحية أو مجموعة مراجع بصرية. استخدم صورة لتحديد شخصية أو شيء، وصف المكان والفعل والمنظور بالكلمات. وعندما تسهم مراجع متعددة بصفات مختلفة، أسند أدوارها صراحة. قد تأخذ متطلبات منتج أصلية الشيء من صورة والبيئة من أخرى، ثم تصف حركة الشيء في ذلك المكان.\n\nيمكن لتوجيه O1 تسمية الصور والعناصر والفيديوهات بعلامات مرجعية محددة، مثل <<<image_1>>> أو<<<video_1>>>. اربط تلك العلامات بالمادة المقدّمة فعليًا واشرح ما ينبغي أخذه منها. حد التوجيه لدى الشركة المصنّعة 2,500 حرف. وتعليمة موجزة تعرّف الموضوع والتغيير أنفع من مجموعة مصطلحات أسلوبية غير مترابطة.\n\nللمراجع القائمة على الصور دون إدخال فيديو، الميزانية المجمعة الموثّقة حتى سبع صور مرجعية وعناصر متعددة الصور. ومع فيديو مرجعي، تبلغ ميزانية الصور والعناصر أربعة. تخص هذه الحدود العناصر القائمة على الصور؛ ولأنواع العناصر الأخرى قواعد توافق منفصلة. اختر المادة التي توفر المظهر أو معلومات المشهد الأساسية بدل ملء الميزانية بزوايا مكررة.\n\nتستخدم مدخلات الصور JPG أوJPEG أوPNG، وتُقدّم عبر URL متاح أو بيانات صورة، بملفات حتى 10 MB وأبعاد لا تقل عن 300 بكسل ونسبة عرض بين 1:2.5 و2.5:1. أعدّ صورًا واضحة للعناصر المصوّرة واحتفظ بالتفاصيل المهمة في الاقتطاع. وإذا احتاجت المهمة إلى بقاء شخصية أو منتج مميزًا، حدّد السمات التي يجب أن تبقى وافحصها عبر المقطع المكتمل.\n\nيوجّه الإطاران الأول والأخير الانتقال بين حدَّين بصريَّين. يتطلب سير عمل O1 الموثّق للإطارات الحدودية إطار بداية عند تقديم إطار نهاية، ولا يدعم التحكّم بإطارَي البداية والنهاية مع أكثر من صورتين في المصفوفة. وعند استخدام الإطارين الحدوديين، لا تدخل عناصر مرجعية إضافية للشخصيات والأشياء في إعداد O1 ذلك. افصل مهمة التحكّم بالإطارات عن تحرير فيديو أساسي مقدّم.\n\nيمكن أن يكون للفيديو المصدر دوران مختلفان. بوصفه المقطع الأساسي، يكون اللقطات المطلوب تحريرها: وجّه إضافة أو إزالة أو معالجة أسلوبية أو تغيرًا تكوينيًا محددًا مع بيان ما ينبغي أن يبقى. يتبع التعديل مدة المقطع المدخل ولا يجمع مهمة الفيديو الأساسي مع التحكّم بالإطارات الحدودية أو التوليد متعدد اللقطات. وبوصفه مرجع صفات، يزود الفيديو محتوى أو أسلوبًا أو معلومات كاميرا للقطة جديدة.\n\nيمكن للتوجيه بفيديو مرجعي أيضًا طلب لقطة سابقة أو لاحقة. عرّف المقطع المصدر وصف الحدث المرئي الجديد، مثل استكمال فعل الموضوع أو كشف البيئة المحيطة. يستخدم هذا المرجع لنقل معلومات بصرية؛ راجع الوصلة واستمرارية الموضوع قبل تجميع الجزء الجديد مع اللقطات الأصلية.\n\nتقبل مواصفات إدخال الفيديو لدى الجهة المنتجة مصدر MP4 أوMOV واحدًا، حتى 200 MB وبحد أدنى ثلاث ثوانٍ. وتحدد المواصفات المفصلة أبعادًا من 720 إلى 2160 بكسل ومعدلات 24 إلى 60 fps، مع نسبة عرض إدخال بين 1:2.5 و2.5:1. يعيد مسار الفيديو المصدر الموثّق فيديو بمعدل 24 fps. وتعتمد مدة المقطع المسموحة الدقيقة أيضًا على نمط النموذج المختار. نطاق التوليد الجديد في O1 ثلاث إلى عشر ثوانٍ، منفصل عن نطاق مدة 3.0 Omni اللاحق.\n\nتوفر أوضاع O1 لدى الشركة المصنّعة إخراج Standard بدقة 720p أوPro بدقة 1080p. يدعم تأطير اللقطة الجديدة خيارات أفقية وعمودية ومربعة موثّقة حيث يستخدم المسار المختار ذلك الإعداد؛ ويتبع تعديل الفيديو الأساسي تأطير مصدره. ويمكن حفظ صوت الفيديو المصدر أو إسقاطه. وينبغي فصل مسار مراجع O1 وتحريره عن نمط 3.0 Omni اللاحق للصوت الأصلي ولوحة القصة المخصصة.\n\nينتج التوليد مهمة تتضمن نتيجتها المكتملة مادة الفيديو ومدته الفعلية. وتقول وثائق النتائج لدى الشركة المصنّعة إن الفيديوهات المولّدة تُحذف بعد 30 يومًا، لذا احفظ المقطع المكتمل سريعًا. احتفظ بالمواد المصدر والمتطلبات مع النتيجة، ثم راجع التغيير المطلوب واستخدام المراجع والاستمرارية. وللتحرير، قارن المنطقة المتأثرة والأجزاء المطلوب أن تبقى. وللقطة جديدة تقودها مراجع، تحقّق من تزويد كل مادة المعلومات البصرية المقصودة. أبقِ المقطع المكتمل متاحًا للتحرير اللاحق أو تسلسل الإنتاج.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "c33fcddf825deabcf7ac0c810250340c58fdf1305c20c09912a7f4da7fea281f",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ar",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">Kling: Video O1</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>Kuaishou /</span><code>kwaivgi/kling-video-o1</code><button type=\"button\" id=\"copy-id\">نسخ ID</button></div><nav class=\"card-jump-nav\" aria-label=\"أقسام بطاقة النموذج\"><button type=\"button\" data-card-jump=\"overview\">البداية</button><button type=\"button\" data-card-jump=\"methods\">المدخلات والطرائق</button><button type=\"button\" data-card-jump=\"pricing\">الباقات</button><button type=\"button\" data-card-jump=\"examples\">أمثلة</button><button type=\"button\" data-card-jump=\"results\">النتائج</button><button type=\"button\" data-card-jump=\"aliases\">الأسماء البديلة</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"طرائق API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|kwaivgi%2Fkling-video-o1\">فيديو</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">البداية</h3><p class=\"mdesc-full\">Kling VIDEO O1 هو نموذج Kuaishou للفيديو الموجّه بالمراجع، لتوليد المشاهد وتحريرها بالنص والصور وعناصر مرجعية للشخصيات والأشياء ومقطع مصدر. استخدم نمط توليده من ثلاث إلى عشر ثوانٍ للاستمرارية البصرية وانتقالات الإطارات الموجّهة والتغييرات المحددة في لقطات موجودة.</p><dl class=\"card-io\" data-card-io><div><dt>المدخلات المقبولة</dt><dd>النص · الصور</dd></div><div><dt>النتائج</dt><dd>فيديو</dd></div></dl><details class=\"card-about\"><summary>عن النموذج</summary><p class=\"note-s\" data-model-method-boundary>يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.</p><div class=\"mabout\" id=\"m-about\"><p>Kling VIDEO O1 هو نموذج Kuaishou الموحّد للفيديو الموجّه بالمراجع. يجمع وصفًا نصيًا وصورًا أو عناصر مرجعية مُعدّة للشخصيات والأشياء أو فيديو مصدرًا لتوجيه مشاهد جديدة وتغييرات محددة في لقطات موجودة. واجهته الأساسية متطلبات بصرية: عرّف المادة المرجعية وصف دورها وحدّد المظهر أو الفعل أو التحول المطلوب في الفيديو الناتج.</p><p>يمكن أن تبدأ لقطة جديدة من نص أو صورة افتتاحية أو مجموعة مراجع بصرية. استخدم صورة لتحديد شخصية أو شيء، وصف المكان والفعل والمنظور بالكلمات. وعندما تسهم مراجع متعددة بصفات مختلفة، أسند أدوارها صراحة. قد تأخذ متطلبات منتج أصلية الشيء من صورة والبيئة من أخرى، ثم تصف حركة الشيء في ذلك المكان.</p><p>يمكن لتوجيه O1 تسمية الصور والعناصر والفيديوهات بعلامات مرجعية محددة، مثل &lt;&lt;&lt;image_1&gt;&gt;&gt; أو&lt;&lt;&lt;video_1&gt;&gt;&gt;. اربط تلك العلامات بالمادة المقدّمة فعليًا واشرح ما ينبغي أخذه منها. حد التوجيه لدى الشركة المصنّعة 2,500 حرف. وتعليمة موجزة تعرّف الموضوع والتغيير أنفع من مجموعة مصطلحات أسلوبية غير مترابطة.</p><p>للمراجع القائمة على الصور دون إدخال فيديو، الميزانية المجمعة الموثّقة حتى سبع صور مرجعية وعناصر متعددة الصور. ومع فيديو مرجعي، تبلغ ميزانية الصور والعناصر أربعة. تخص هذه الحدود العناصر القائمة على الصور؛ ولأنواع العناصر الأخرى قواعد توافق منفصلة. اختر المادة التي توفر المظهر أو معلومات المشهد الأساسية بدل ملء الميزانية بزوايا مكررة.</p><p>تستخدم مدخلات الصور JPG أوJPEG أوPNG، وتُقدّم عبر URL متاح أو بيانات صورة، بملفات حتى 10 MB وأبعاد لا تقل عن 300 بكسل ونسبة عرض بين 1:2.5 و2.5:1. أعدّ صورًا واضحة للعناصر المصوّرة واحتفظ بالتفاصيل المهمة في الاقتطاع. وإذا احتاجت المهمة إلى بقاء شخصية أو منتج مميزًا، حدّد السمات التي يجب أن تبقى وافحصها عبر المقطع المكتمل.</p><p>يوجّه الإطاران الأول والأخير الانتقال بين حدَّين بصريَّين. يتطلب سير عمل O1 الموثّق للإطارات الحدودية إطار بداية عند تقديم إطار نهاية، ولا يدعم التحكّم بإطارَي البداية والنهاية مع أكثر من صورتين في المصفوفة. وعند استخدام الإطارين الحدوديين، لا تدخل عناصر مرجعية إضافية للشخصيات والأشياء في إعداد O1 ذلك. افصل مهمة التحكّم بالإطارات عن تحرير فيديو أساسي مقدّم.</p><p>يمكن أن يكون للفيديو المصدر دوران مختلفان. بوصفه المقطع الأساسي، يكون اللقطات المطلوب تحريرها: وجّه إضافة أو إزالة أو معالجة أسلوبية أو تغيرًا تكوينيًا محددًا مع بيان ما ينبغي أن يبقى. يتبع التعديل مدة المقطع المدخل ولا يجمع مهمة الفيديو الأساسي مع التحكّم بالإطارات الحدودية أو التوليد متعدد اللقطات. وبوصفه مرجع صفات، يزود الفيديو محتوى أو أسلوبًا أو معلومات كاميرا للقطة جديدة.</p><p>يمكن للتوجيه بفيديو مرجعي أيضًا طلب لقطة سابقة أو لاحقة. عرّف المقطع المصدر وصف الحدث المرئي الجديد، مثل استكمال فعل الموضوع أو كشف البيئة المحيطة. يستخدم هذا المرجع لنقل معلومات بصرية؛ راجع الوصلة واستمرارية الموضوع قبل تجميع الجزء الجديد مع اللقطات الأصلية.</p><p>تقبل مواصفات إدخال الفيديو لدى الجهة المنتجة مصدر MP4 أوMOV واحدًا، حتى 200 MB وبحد أدنى ثلاث ثوانٍ. وتحدد المواصفات المفصلة أبعادًا من 720 إلى 2160 بكسل ومعدلات 24 إلى 60 fps، مع نسبة عرض إدخال بين 1:2.5 و2.5:1. يعيد مسار الفيديو المصدر الموثّق فيديو بمعدل 24 fps. وتعتمد مدة المقطع المسموحة الدقيقة أيضًا على نمط النموذج المختار. نطاق التوليد الجديد في O1 ثلاث إلى عشر ثوانٍ، منفصل عن نطاق مدة 3.0 Omni اللاحق.</p><p>توفر أوضاع O1 لدى الشركة المصنّعة إخراج Standard بدقة 720p أوPro بدقة 1080p. يدعم تأطير اللقطة الجديدة خيارات أفقية وعمودية ومربعة موثّقة حيث يستخدم المسار المختار ذلك الإعداد؛ ويتبع تعديل الفيديو الأساسي تأطير مصدره. ويمكن حفظ صوت الفيديو المصدر أو إسقاطه. وينبغي فصل مسار مراجع O1 وتحريره عن نمط 3.0 Omni اللاحق للصوت الأصلي ولوحة القصة المخصصة.</p><p>ينتج التوليد مهمة تتضمن نتيجتها المكتملة مادة الفيديو ومدته الفعلية. وتقول وثائق النتائج لدى الشركة المصنّعة إن الفيديوهات المولّدة تُحذف بعد 30 يومًا، لذا احفظ المقطع المكتمل سريعًا. احتفظ بالمواد المصدر والمتطلبات مع النتيجة، ثم راجع التغيير المطلوب واستخدام المراجع والاستمرارية. وللتحرير، قارن المنطقة المتأثرة والأجزاء المطلوب أن تبقى. وللقطة جديدة تقودها مراجع، تحقّق من تزويد كل مادة المعلومات البصرية المقصودة. أبقِ المقطع المكتمل متاحًا للتحرير اللاحق أو تسلسل الإنتاج.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">متاح في Ailoot · المدخلات والطرائق</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · فيديو</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>الإدخال</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>الإخراج</dt><dd><code>video</code></dd></div><div><dt>صيغة الإخراج</dt><dd>بايتات MP4 الأصلية؛ دون تطبيع أو إعادة ترميز</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>الحقل</th><th>النوع</th><th>المتطلب</th><th>القيم والحدود</th><th>القيمة الافتراضية</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>kwaivgi/kling-video-o1</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>integer</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>⁦5⁩, ⁦10⁩</div><div>الحد الأدنى: ⁦1⁩</div><div>الحد الأقصى: ⁦600⁩</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>720p</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>16:9, 9:16, 1:1</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>boolean</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>false, true</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>array</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الحد الأدنى للعناصر: ⁦1⁩</div><div>الحد الأقصى للعناصر: ⁦2⁩</div><div>محتوى الإدخال: مصفوفة من كائنات الإطارات. يحتوي كل كائن على type=image_url وimage_url الذي يحتوي على url، وعلى frame_type. استخدم عنوان URL لصورة عبر HTTPS واضبط frame_type على first_frame أو last_frame. لا يتكرر كل دور إطار أكثر من مرة.</div><div>المفاتيح الدقيقة: type, image_url, frame_type</div><div>الشروط: تصف هذه المفاتيح كل كائن إطار؛ ولا يحتوي image_url إلا على url. احذف frame_images في الطلبات النصية فقط.</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>array</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">size</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>1280x720, 720x1280, 720x720</div><div>النمط: ^[1-9][0-9]*x[1-9][0-9]*$</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>النمط: ^https://</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>object</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>اختياري</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>تركيبات مواد الإدخال</summary><p class=\"note-s\"><b>تحويل النص إلى فيديو</b> · موجّه نصي. · مطلوب: model, prompt, duration</p><p class=\"note-s\"><code>قدّم prompt كنص وduration بعدد صحيح من الثواني. اختر دقة مدعومة؛ وأضف نسبة أبعاد أو استخدم مقاساً مدرجاً.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: النوع: string · kwaivgi/kling-video-o1</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: النوع: string · الحد الأقصى لبايتات UTF-8: ⁦10,000⁩ · يجب أن يتضمن الإدخال محارف غير المسافات البيضاء: نعم</p><p class=\"note-s\"><b>تحويل الصورة إلى فيديو</b> · موجّه نصي وصورة للإطار الأول. · مطلوب: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>الحقل frame_images مصفوفة. يحتوي كل كائن إطار على type وimage_url وframe_type؛ ويحتوي image_url على url. اضبط type على image_url. استخدم first_frame مع last_frame اختياري. لا يتكرر كل دور إطار أكثر من مرة. وفّر عنوان URL عاماً لصورة عبر HTTPS لكل إطار. اختر دقة مدعومة؛ وأضف نسبة أبعاد أو استخدم مقاساً مدرجاً.</code></p><p class=\"note-s\">المفاتيح الدقيقة: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: النوع: string · kwaivgi/kling-video-o1</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: النوع: string · الحد الأقصى لبايتات UTF-8: ⁦10,000⁩ · يجب أن يتضمن الإدخال محارف غير المسافات البيضاء: نعم</p></details><details class=\"note-s\" data-method-contract><summary>معلمات الطريقة ودورة حياتها</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>المعلمة</th><th>المواصفات</th></tr></thead><tbody><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>content_type</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>application/json</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>required</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>material_types</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>text, image</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>additional_properties</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>false</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>optional_controls</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>دورة الحياة: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">الباقات</h3><div class=\"card-result-process\" data-billing-basis><h5>كيفية احتساب الرسوم النهائية</h5><p class=\"note-s\">تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>مراجع التسعير لا تضيف خيارات للطلب. المعلمات المدعومة مذكورة للطريقة المحددة.</p><dl data-price-conditions><dt>الوضع السريع</dt><dd>غير محدد <span class=\"note-s\">عند اختيار الوضع السريع</span></dd><dt>الوضع المرن</dt><dd>غير محدد <span class=\"note-s\">عند اختيار وضع flex</span></dd><dt>أقصى جهد للاستدلال</dt><dd>غير محدد <span class=\"note-s\">عندما يُطبَّق الضبط الافتراضي default مع أقصى جهد للاستدلال</span></dd></dl></div><div data-declared-tariff-pricing><h4>تعرفات تقديرية للمقارنة</h4><h4>الأسعار حسب الإعدادات</h4><p class=\"note-s\">طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>الإعدادات</th><th>جدول التعرفة</th><th>الكمية المتوقعة</th><th>وحدة الفوترة</th><th>شروط الفوترة</th><th>الرسوم</th></tr></thead><tbody><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>التعرفات الأساسية للرموز</th><td data-cell-label=\"جدول التعرفة\"><span class=\"card-cell-label\">جدول التعرفة</span>التعرفة الأساسية</td><td data-cell-label=\"الكمية المتوقعة\"><span class=\"card-cell-label\">الكمية المتوقعة</span>—</td><td data-cell-label=\"وحدة الفوترة\"><span class=\"card-cell-label\">وحدة الفوترة</span>—</td><td data-cell-label=\"شروط الفوترة\"><span class=\"card-cell-label\">شروط الفوترة</span>—</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإدخال · رموز الإدخال · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإخراج · رموز الإخراج · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · قراءة ذاكرة التخزين المؤقت · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · الكتابة إلى ذاكرة التخزين المؤقت · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div><div><span>الإدخال · الكتابة إلى ذاكرة التخزين المؤقت، 1 ساعة · تقدير للمقارنة فقط</span> <b>—</b> <span class=\"price-unit\">/ 1K من الرموز</span></div></td></tr><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>سعر الفيديو</th><td data-cell-label=\"جدول التعرفة\"><span class=\"card-cell-label\">جدول التعرفة</span>—</td><td data-cell-label=\"الكمية المتوقعة\"><span class=\"card-cell-label\">الكمية المتوقعة</span>—</td><td data-cell-label=\"وحدة الفوترة\"><span class=\"card-cell-label\">وحدة الفوترة</span>لكل ثانية فيديو</td><td data-cell-label=\"شروط الفوترة\"><span class=\"card-cell-label\">شروط الفوترة</span>لم يُذكر شرط إضافي في مفتاح التسعير هذا.</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإخراج · سعر الفيديو · تقدير للمقارنة فقط</span> <b>$0.224</b> <span class=\"price-unit\">لكل ثانية فيديو</span></div></td></tr><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>تكلفة التوليد التقديرية</th><td data-cell-label=\"جدول التعرفة\"><span class=\"card-cell-label\">جدول التعرفة</span>—</td><td data-cell-label=\"الكمية المتوقعة\"><span class=\"card-cell-label\">الكمية المتوقعة</span>تقدير لتوليد واحد</td><td data-cell-label=\"وحدة الفوترة\"><span class=\"card-cell-label\">وحدة الفوترة</span>—</td><td data-cell-label=\"شروط الفوترة\"><span class=\"card-cell-label\">شروط الفوترة</span>—</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإخراج · تكلفة التوليد التقديرية · تقدير للمقارنة فقط</span> <b>$1.12</b> <span class=\"price-unit\">تقدير قبل الإنشاء</span></div><p class=\"note-s\">هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.</p></td></tr></tbody></table></div></div><p class=\"note-s\">تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. <a href=\"/docs/ar/billing/reserve/\">كيفية عمل حجز المبلغ وتسوية الرسوم →</a></p><div data-declared-reference-pricing><h4>تفاصيل التعرفة المرجعية</h4><p class=\"note-s\">لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>مراجع أسعار إعدادات الفيديو</summary><h4>الأسعار حسب الإعدادات</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>الإعدادات</th><th>شروط الفوترة</th><th>الرسوم</th></tr></thead><tbody><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>سعر الفيديو</th><td data-cell-label=\"شروط الفوترة\"><span class=\"card-cell-label\">شروط الفوترة</span>لم يُذكر شرط إضافي في مفتاح التسعير هذا.</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإخراج · سعر الفيديو</span> <b>$0.224</b> <span class=\"price-unit\">لكل ثانية فيديو</span></div><p class=\"note-s\">مرجع السعر المنشور للإعداد المعروض. تتبع الرسوم النهائية الإعداد الفعلي الذي تمت فوترته.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">أمثلة للطلبات</h3><h4>Ailoot Ultra · فيديو</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-1785-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1785-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · أنشئ فيديو</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"نسخ الشيفرة\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1785-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1785-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:5,&quot;model&quot;:&quot;kwaivgi/kling-video-o1&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;720p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">استلام النتائج وحفظها</h3><h4>Ailoot Ultra · فيديو</h4><p class=\"note-s\">عناوين URL موقّعة لمحتوى مملوك لك</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>التحقق من حالة المهمة</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-1786-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1786-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · جلب حالة العملية الأصلية</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"نسخ الشيفرة\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1786-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1786-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>عمليات أخرى لقراءة المحتوى</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-1787-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1787-panel-0\" aria-selected=\"true\" tabindex=\"0\">حفظ كل المخرجات المكتملة المملوكة لك</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"نسخ الشيفرة\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1787-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1787-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>الاحتفاظ بكل النتائج المكتملة</h5><p class=\"note-s\">احفظ كل فيديو مكتمل أو ملف مُرجع؛ ونزّل كل أصل من URL الخاص به الذي تم إرجاعه فعليًا.</p><p class=\"note-s\">احتفظ بكل مخرج فعلي مملوك لك وبالبيانات الوصفية المقاسة المُعادة معه.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>عند الحاجة إلى التحقق من الاستجابة الأصلية</h5><p class=\"note-s\">503 result_pending_check + المعرّف الأصلي + X-Should-Retry:false؛ لا تعِد تنفيذ العملية الأصلية مطلقاً</p></div><details class=\"card-about\" data-output-fields><summary>حقول الاستجابة</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>الحقل</th><th>النوع</th><th>المعنى</th></tr></thead><tbody><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>integer</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>موضع هذا الفيديو في قائمة المخرجات، بدءاً من الصفر.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>string</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>عنوان URL موقّع عبر HTTPS لتنزيل هذا الفيديو المكتمل.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>string | null</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>بصمة SHA-256 لبايتات الفيديو الأصلي؛ وتكون القيمة null إذا لم تتوفر.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>integer | null</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>حجم ملف الفيديو الأصلي بالبايت؛ وتكون القيمة null إذا لم يتوفر.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>integer | null</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>مدة الفيديو المقاسة بالمللي ثانية؛ وتكون القيمة null إذا لم تتوفر.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>integer | null</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>عرض الفيديو بالبكسل؛ وتكون القيمة null إذا لم يتوفر.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>integer | null</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>ارتفاع الفيديو بالبكسل؛ وتكون القيمة null إذا لم يتوفر.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>string | null</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>معرّف ترميز الفيديو؛ وتكون القيمة null إذا لم يُسجَّل.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>boolean | null</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>ما إذا كان الفيديو يحتوي على مسار صوتي؛ وتكون القيمة null إذا لم يُقَس ذلك.</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>string | null</td><td data-cell-label=\"المعنى\"><span class=\"card-cell-label\">المعنى</span>معرّف ترميز الصوت؛ وتكون القيمة null إذا لم يُسجَّل معرّف.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>الأخطاء والخطوات التالية</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>الاستجابة</th><th>الشرط</th><th>الخطوة التالية</th></tr></thead><tbody><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦404⁩ · <code>not_found_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>الوصول إلى الفيديو غير متاح، أو لم يُعثر على معرّف الفيديو هذا.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>تحقق من الوصول إلى الفيديو. للفيديو الموجود، استخدم معرّفه العام الأصلي ومفتاح API نفسه.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦401⁩ · <code>authentication_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>مفتاح API لا يطابق الحساب الذي تمت المصادقة عليه.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>تحقق من مفتاح API وإمكانية وصول حسابك قبل الإرسال.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>تعذرت قراءة الطلب، أو فهرس التنزيل غير صالح.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>صحّح متن الطلب. للتنزيل، اختر فهرس مخرج أعادته المهمة الأصلية.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦422⁩ · <code>price_unavailable</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>يتعذر تسعير إعداد الفيديو المختار.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>اختر إعداد فيديو مدعوماً وأكمل خياراته المطلوبة قبل إرسال طلب مصحح.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦422⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>إدخال الفيديو أو مهمة المتابعة الأصلية غير صالح.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>استخدم مدخلات HTTPS صالحة. للمتابعة، استخدم المعرّف العام للفيديو الأصلي المكتمل لديك مع مفتاح API نفسه.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦402⁩ · <code>billing_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>الرصيد المتاح أو الحدود المقررة لا تسمح بحجز الرصيد.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>تحقق من رصيدك المتاح وحدودك قبل إرسال طلب جديد.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦503⁩ · <code>server_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>التحقق من الفيديو أو التخزين أو الوصول إلى الخدمة غير متاح مؤقتاً.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>انتظر إتاحة الخدمة. إذا كان لديك معرّف فيديو بالفعل، فتحقق من تلك المهمة الأصلية بدلاً من إنشاء عملية توليد أخرى.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦503⁩ · <code>result_pending_check</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>تحتاج نتيجة الفيديو الأصلية والرسم المحتسب إلى التحقق.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>احتفظ بمعرّف الفيديو المُعاد وتحقق من تلك المهمة. لا ترسل طلب توليد بديل أثناء التحقق منها.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦503⁩ · <code>owned_result_unavailable</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>تنزيل الفيديو الموجود غير متاح مؤقتاً.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>تحقق من مهمة الفيديو نفسها لاحقاً ونزّل مخرجها الموجود. ينشئ التوليد الجديد عملية منفصلة.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦409⁩ · <code>video_not_ready</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>لم يُنشر محتوى الفيديو.</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>تحقق من حالة المهمة الأصلية. نزّل المخرجات بعد أن تُبلِغ عن completed؛ وإذا أبلغت عن failed، فاتبع إشعارها المتعلق بالتحقق من الرسم المحتسب.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">الأسماء البديلة</h3><h4>الأسماء البديلة للنموذج</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=kwaivgi%2Fkling-video-o1&amp;route=Ultra&amp;caller=kwaivgi%2Fkling-video-o1&amp;fmt=videos\"><code>kwaivgi/kling-video-o1</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\">استخدم مسارات الطرائق المعروضة أعلاه.</p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=kwaivgi%2Fkling-video-o1&amp;route=Ultra&amp;caller=kwaivgi%2Fkling-video-o1&amp;fmt=videos\"><code>kwaivgi/kling-video-o1</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "kwaivgi/kling-video-o1",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "kwaivgi/kling-video-o1",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|kwaivgi%2Fkling-video-o1",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "احتفظ بكل مخرج فعلي مملوك لك وبالبيانات الوصفية المقاسة المُعادة معه.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "الوصول إلى الفيديو غير متاح، أو لم يُعثر على معرّف الفيديو هذا.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "تحقق من الوصول إلى الفيديو. للفيديو الموجود، استخدم معرّفه العام الأصلي ومفتاح API نفسه.",
                "type": "not_found_error"
              },
              {
                "condition": "مفتاح API لا يطابق الحساب الذي تمت المصادقة عليه.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "تحقق من مفتاح API وإمكانية وصول حسابك قبل الإرسال.",
                "type": "authentication_error"
              },
              {
                "condition": "تعذرت قراءة الطلب، أو فهرس التنزيل غير صالح.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "صحّح متن الطلب. للتنزيل، اختر فهرس مخرج أعادته المهمة الأصلية.",
                "type": "invalid_request_error"
              },
              {
                "condition": "يتعذر تسعير إعداد الفيديو المختار.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "اختر إعداد فيديو مدعوماً وأكمل خياراته المطلوبة قبل إرسال طلب مصحح.",
                "type": "price_unavailable"
              },
              {
                "condition": "إدخال الفيديو أو مهمة المتابعة الأصلية غير صالح.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "استخدم مدخلات HTTPS صالحة. للمتابعة، استخدم المعرّف العام للفيديو الأصلي المكتمل لديك مع مفتاح API نفسه.",
                "type": "invalid_request_error"
              },
              {
                "condition": "الرصيد المتاح أو الحدود المقررة لا تسمح بحجز الرصيد.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "تحقق من رصيدك المتاح وحدودك قبل إرسال طلب جديد.",
                "type": "billing_error"
              },
              {
                "condition": "التحقق من الفيديو أو التخزين أو الوصول إلى الخدمة غير متاح مؤقتاً.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "انتظر إتاحة الخدمة. إذا كان لديك معرّف فيديو بالفعل، فتحقق من تلك المهمة الأصلية بدلاً من إنشاء عملية توليد أخرى.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "تحتاج نتيجة الفيديو الأصلية والرسم المحتسب إلى التحقق.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "احتفظ بمعرّف الفيديو المُعاد وتحقق من تلك المهمة. لا ترسل طلب توليد بديل أثناء التحقق منها.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "تنزيل الفيديو الموجود غير متاح مؤقتاً.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "تحقق من مهمة الفيديو نفسها لاحقاً ونزّل مخرجها الموجود. ينشئ التوليد الجديد عملية منفصلة.",
                "type": "server_error"
              },
              {
                "condition": "لم يُنشر محتوى الفيديو.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "تحقق من حالة المهمة الأصلية. نزّل المخرجات بعد أن تُبلِغ عن completed؛ وإذا أبلغت عن failed، فاتبع إشعارها المتعلق بالتحقق من الرسم المحتسب.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + المعرّف الأصلي + X-Should-Retry:false؛ لا تعِد تنفيذ العملية الأصلية مطلقاً"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-video-o1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "قدّم prompt كنص وduration بعدد صحيح من الثواني. اختر دقة مدعومة؛ وأضف نسبة أبعاد أو استخدم مقاساً مدرجاً.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "موجّه نصي."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-video-o1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "الحقل frame_images مصفوفة. يحتوي كل كائن إطار على type وimage_url وframe_type؛ ويحتوي image_url على url. اضبط type على image_url. استخدم first_frame مع last_frame اختياري. لا يتكرر كل دور إطار أكثر من مرة. وفّر عنوان URL عاماً لصورة عبر HTTPS لكل إطار. اختر دقة مدعومة؛ وأضف نسبة أبعاد أو استخدم مقاساً مدرجاً.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "موجّه نصي وصورة للإطار الأول."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "موضع هذا الفيديو في قائمة المخرجات، بدءاً من الصفر.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "عنوان URL موقّع عبر HTTPS لتنزيل هذا الفيديو المكتمل.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "بصمة SHA-256 لبايتات الفيديو الأصلي؛ وتكون القيمة null إذا لم تتوفر.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "حجم ملف الفيديو الأصلي بالبايت؛ وتكون القيمة null إذا لم يتوفر.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "مدة الفيديو المقاسة بالمللي ثانية؛ وتكون القيمة null إذا لم تتوفر.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "عرض الفيديو بالبكسل؛ وتكون القيمة null إذا لم يتوفر.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "ارتفاع الفيديو بالبكسل؛ وتكون القيمة null إذا لم يتوفر.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "معرّف ترميز الفيديو؛ وتكون القيمة null إذا لم يُسجَّل.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "ما إذا كان الفيديو يحتوي على مسار صوتي؛ وتكون القيمة null إذا لم يُقَس ذلك.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "معرّف ترميز الصوت؛ وتكون القيمة null إذا لم يُسجَّل معرّف.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "عناوين URL موقّعة لمحتوى مملوك لك",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "kwaivgi/kling-video-o1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "kwaivgi/kling-video-o1"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  5,
                  10
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    10
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "تصف هذه المفاتيح كل كائن إطار؛ ولا يحتوي image_url إلا على url. احذف frame_images في الطلبات النصية فقط.",
                "content": "مصفوفة من كائنات الإطارات. يحتوي كل كائن على type=image_url وimage_url الذي يحتوي على url، وعلى frame_type. استخدم عنوان URL لصورة عبر HTTPS واضبط frame_type على first_frame أو last_frame. لا يتكرر كل دور إطار أكثر من مرة.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "720x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    5,
                    10
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "kwaivgi/kling-video-o1"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist."
              ]
            },
            "unsupported": [
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "تكلفة التوليد التقديرية",
            "units": [
              {
                "amount": "1.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":5,\"model\":\"kwaivgi/kling-video-o1\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kwaivgi/kling-video-o1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "1.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "kwaivgi/kling-video-o1",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "42e8a828681099123c8e3dc7835ae1b52cbbb7ad46eebc58570f9f478d8a103d",
    "input_html_sha256": "484dd5456579d320202cf28f248f92ab3aa4896ea5bb6c4227f926d15c98f715",
    "private_audit_sha256": "ffd5446ae0bd22dd0512ea68e14d108841a2e531390dd147d47e7479c7de7f67",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/kwaivgi-kling-video-o1/",
    "description": "Kling VIDEO O1 هو نموذج Kuaishou للفيديو الموجّه بالمراجع، لتوليد المشاهد وتحريرها بالنص والصور وعناصر مرجعية للشخصيات والأشياء ومقطع مصدر. استخدم نمط توليده من ثلاث إلى عشر ثوانٍ للاستمرارية البصرية وانتقالات الإطارات الموجّهة والتغييرات المحددة في لقطات موجودة.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/kwaivgi-kling-video-o1/index.md",
    "title": "Kling: Video O1 — Ailoot",
    "url": "https://ailoot.ai/models/ar/kwaivgi-kling-video-o1/"
  },
  "rawModel": {
    "about": "Kling VIDEO O1 هو نموذج Kuaishou الموحّد للفيديو الموجّه بالمراجع. يجمع وصفًا نصيًا وصورًا أو عناصر مرجعية مُعدّة للشخصيات والأشياء أو فيديو مصدرًا لتوجيه مشاهد جديدة وتغييرات محددة في لقطات موجودة. واجهته الأساسية متطلبات بصرية: عرّف المادة المرجعية وصف دورها وحدّد المظهر أو الفعل أو التحول المطلوب في الفيديو الناتج.\n\nيمكن أن تبدأ لقطة جديدة من نص أو صورة افتتاحية أو مجموعة مراجع بصرية. استخدم صورة لتحديد شخصية أو شيء، وصف المكان والفعل والمنظور بالكلمات. وعندما تسهم مراجع متعددة بصفات مختلفة، أسند أدوارها صراحة. قد تأخذ متطلبات منتج أصلية الشيء من صورة والبيئة من أخرى، ثم تصف حركة الشيء في ذلك المكان.\n\nيمكن لتوجيه O1 تسمية الصور والعناصر والفيديوهات بعلامات مرجعية محددة، مثل <<<image_1>>> أو<<<video_1>>>. اربط تلك العلامات بالمادة المقدّمة فعليًا واشرح ما ينبغي أخذه منها. حد التوجيه لدى الشركة المصنّعة 2,500 حرف. وتعليمة موجزة تعرّف الموضوع والتغيير أنفع من مجموعة مصطلحات أسلوبية غير مترابطة.\n\nللمراجع القائمة على الصور دون إدخال فيديو، الميزانية المجمعة الموثّقة حتى سبع صور مرجعية وعناصر متعددة الصور. ومع فيديو مرجعي، تبلغ ميزانية الصور والعناصر أربعة. تخص هذه الحدود العناصر القائمة على الصور؛ ولأنواع العناصر الأخرى قواعد توافق منفصلة. اختر المادة التي توفر المظهر أو معلومات المشهد الأساسية بدل ملء الميزانية بزوايا مكررة.\n\nتستخدم مدخلات الصور JPG أوJPEG أوPNG، وتُقدّم عبر URL متاح أو بيانات صورة، بملفات حتى 10 MB وأبعاد لا تقل عن 300 بكسل ونسبة عرض بين 1:2.5 و2.5:1. أعدّ صورًا واضحة للعناصر المصوّرة واحتفظ بالتفاصيل المهمة في الاقتطاع. وإذا احتاجت المهمة إلى بقاء شخصية أو منتج مميزًا، حدّد السمات التي يجب أن تبقى وافحصها عبر المقطع المكتمل.\n\nيوجّه الإطاران الأول والأخير الانتقال بين حدَّين بصريَّين. يتطلب سير عمل O1 الموثّق للإطارات الحدودية إطار بداية عند تقديم إطار نهاية، ولا يدعم التحكّم بإطارَي البداية والنهاية مع أكثر من صورتين في المصفوفة. وعند استخدام الإطارين الحدوديين، لا تدخل عناصر مرجعية إضافية للشخصيات والأشياء في إعداد O1 ذلك. افصل مهمة التحكّم بالإطارات عن تحرير فيديو أساسي مقدّم.\n\nيمكن أن يكون للفيديو المصدر دوران مختلفان. بوصفه المقطع الأساسي، يكون اللقطات المطلوب تحريرها: وجّه إضافة أو إزالة أو معالجة أسلوبية أو تغيرًا تكوينيًا محددًا مع بيان ما ينبغي أن يبقى. يتبع التعديل مدة المقطع المدخل ولا يجمع مهمة الفيديو الأساسي مع التحكّم بالإطارات الحدودية أو التوليد متعدد اللقطات. وبوصفه مرجع صفات، يزود الفيديو محتوى أو أسلوبًا أو معلومات كاميرا للقطة جديدة.\n\nيمكن للتوجيه بفيديو مرجعي أيضًا طلب لقطة سابقة أو لاحقة. عرّف المقطع المصدر وصف الحدث المرئي الجديد، مثل استكمال فعل الموضوع أو كشف البيئة المحيطة. يستخدم هذا المرجع لنقل معلومات بصرية؛ راجع الوصلة واستمرارية الموضوع قبل تجميع الجزء الجديد مع اللقطات الأصلية.\n\nتقبل مواصفات إدخال الفيديو لدى الجهة المنتجة مصدر MP4 أوMOV واحدًا، حتى 200 MB وبحد أدنى ثلاث ثوانٍ. وتحدد المواصفات المفصلة أبعادًا من 720 إلى 2160 بكسل ومعدلات 24 إلى 60 fps، مع نسبة عرض إدخال بين 1:2.5 و2.5:1. يعيد مسار الفيديو المصدر الموثّق فيديو بمعدل 24 fps. وتعتمد مدة المقطع المسموحة الدقيقة أيضًا على نمط النموذج المختار. نطاق التوليد الجديد في O1 ثلاث إلى عشر ثوانٍ، منفصل عن نطاق مدة 3.0 Omni اللاحق.\n\nتوفر أوضاع O1 لدى الشركة المصنّعة إخراج Standard بدقة 720p أوPro بدقة 1080p. يدعم تأطير اللقطة الجديدة خيارات أفقية وعمودية ومربعة موثّقة حيث يستخدم المسار المختار ذلك الإعداد؛ ويتبع تعديل الفيديو الأساسي تأطير مصدره. ويمكن حفظ صوت الفيديو المصدر أو إسقاطه. وينبغي فصل مسار مراجع O1 وتحريره عن نمط 3.0 Omni اللاحق للصوت الأصلي ولوحة القصة المخصصة.\n\nينتج التوليد مهمة تتضمن نتيجتها المكتملة مادة الفيديو ومدته الفعلية. وتقول وثائق النتائج لدى الشركة المصنّعة إن الفيديوهات المولّدة تُحذف بعد 30 يومًا، لذا احفظ المقطع المكتمل سريعًا. احتفظ بالمواد المصدر والمتطلبات مع النتيجة، ثم راجع التغيير المطلوب واستخدام المراجع والاستمرارية. وللتحرير، قارن المنطقة المتأثرة والأجزاء المطلوب أن تبقى. وللقطة جديدة تقودها مراجع، تحقّق من تزويد كل مادة المعلومات البصرية المقصودة. أبقِ المقطع المكتمل متاحًا للتحرير اللاحق أو تسلسل الإنتاج.",
    "alias_of": null,
    "aliases": [],
    "author": "Kuaishou",
    "available": null,
    "canonical_model": "kwaivgi/kling-video-o1",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "1.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "التسعير الكامل للتكوين في التفاصيل."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "5674106f0bbce742cc7b0c00",
        "label": "مراجع أسعار إعدادات الفيديو",
        "profiles": [
          {
            "basis": "مرجع السعر المنشور للإعداد المعروض. تتبع الرسوم النهائية الإعداد الفعلي الذي تمت فوترته.",
            "dimensions": {
              "conditions": "لم يُذكر شرط إضافي في مفتاح التسعير هذا."
            },
            "label": "سعر الفيديو",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "kwaivgi/kling-video-o1",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "تقدّر التعرفات المعروضة التكلفة قبل التوليد. تُحسب الرسوم النهائية من التكلفة المسجّلة لعملية التوليد الأصلية. مدة المخرجات المقاسة والكميات المتوقعة ليست الكمية النهائية الخاضعة للفوترة.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "احتفظ بكل مخرج فعلي مملوك لك وبالبيانات الوصفية المقاسة المُعادة معه.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "الوصول إلى الفيديو غير متاح، أو لم يُعثر على معرّف الفيديو هذا.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "تحقق من الوصول إلى الفيديو. للفيديو الموجود، استخدم معرّفه العام الأصلي ومفتاح API نفسه.",
                "type": "not_found_error"
              },
              {
                "condition": "مفتاح API لا يطابق الحساب الذي تمت المصادقة عليه.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "تحقق من مفتاح API وإمكانية وصول حسابك قبل الإرسال.",
                "type": "authentication_error"
              },
              {
                "condition": "تعذرت قراءة الطلب، أو فهرس التنزيل غير صالح.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "صحّح متن الطلب. للتنزيل، اختر فهرس مخرج أعادته المهمة الأصلية.",
                "type": "invalid_request_error"
              },
              {
                "condition": "يتعذر تسعير إعداد الفيديو المختار.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "اختر إعداد فيديو مدعوماً وأكمل خياراته المطلوبة قبل إرسال طلب مصحح.",
                "type": "price_unavailable"
              },
              {
                "condition": "إدخال الفيديو أو مهمة المتابعة الأصلية غير صالح.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "استخدم مدخلات HTTPS صالحة. للمتابعة، استخدم المعرّف العام للفيديو الأصلي المكتمل لديك مع مفتاح API نفسه.",
                "type": "invalid_request_error"
              },
              {
                "condition": "الرصيد المتاح أو الحدود المقررة لا تسمح بحجز الرصيد.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "تحقق من رصيدك المتاح وحدودك قبل إرسال طلب جديد.",
                "type": "billing_error"
              },
              {
                "condition": "التحقق من الفيديو أو التخزين أو الوصول إلى الخدمة غير متاح مؤقتاً.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "انتظر إتاحة الخدمة. إذا كان لديك معرّف فيديو بالفعل، فتحقق من تلك المهمة الأصلية بدلاً من إنشاء عملية توليد أخرى.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "تحتاج نتيجة الفيديو الأصلية والرسم المحتسب إلى التحقق.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "احتفظ بمعرّف الفيديو المُعاد وتحقق من تلك المهمة. لا ترسل طلب توليد بديل أثناء التحقق منها.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "تنزيل الفيديو الموجود غير متاح مؤقتاً.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "تحقق من مهمة الفيديو نفسها لاحقاً ونزّل مخرجها الموجود. ينشئ التوليد الجديد عملية منفصلة.",
                "type": "server_error"
              },
              {
                "condition": "لم يُنشر محتوى الفيديو.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "تحقق من حالة المهمة الأصلية. نزّل المخرجات بعد أن تُبلِغ عن completed؛ وإذا أبلغت عن failed، فاتبع إشعارها المتعلق بالتحقق من الرسم المحتسب.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + المعرّف الأصلي + X-Should-Retry:false؛ لا تعِد تنفيذ العملية الأصلية مطلقاً"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-video-o1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "قدّم prompt كنص وduration بعدد صحيح من الثواني. اختر دقة مدعومة؛ وأضف نسبة أبعاد أو استخدم مقاساً مدرجاً.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "موجّه نصي."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "kwaivgi/kling-video-o1"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "الحقل frame_images مصفوفة. يحتوي كل كائن إطار على type وimage_url وframe_type؛ ويحتوي image_url على url. اضبط type على image_url. استخدم first_frame مع last_frame اختياري. لا يتكرر كل دور إطار أكثر من مرة. وفّر عنوان URL عاماً لصورة عبر HTTPS لكل إطار. اختر دقة مدعومة؛ وأضف نسبة أبعاد أو استخدم مقاساً مدرجاً.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "موجّه نصي وصورة للإطار الأول."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "موضع هذا الفيديو في قائمة المخرجات، بدءاً من الصفر.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "عنوان URL موقّع عبر HTTPS لتنزيل هذا الفيديو المكتمل.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "بصمة SHA-256 لبايتات الفيديو الأصلي؛ وتكون القيمة null إذا لم تتوفر.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "حجم ملف الفيديو الأصلي بالبايت؛ وتكون القيمة null إذا لم يتوفر.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "مدة الفيديو المقاسة بالمللي ثانية؛ وتكون القيمة null إذا لم تتوفر.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "عرض الفيديو بالبكسل؛ وتكون القيمة null إذا لم يتوفر.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "ارتفاع الفيديو بالبكسل؛ وتكون القيمة null إذا لم يتوفر.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "معرّف ترميز الفيديو؛ وتكون القيمة null إذا لم يُسجَّل.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "ما إذا كان الفيديو يحتوي على مسار صوتي؛ وتكون القيمة null إذا لم يُقَس ذلك.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "معرّف ترميز الصوت؛ وتكون القيمة null إذا لم يُسجَّل معرّف.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "عناوين URL موقّعة لمحتوى مملوك لك",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "kwaivgi/kling-video-o1"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "kwaivgi/kling-video-o1"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  5,
                  10
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    5,
                    10
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16",
                  "1:1"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "تصف هذه المفاتيح كل كائن إطار؛ ولا يحتوي image_url إلا على url. احذف frame_images في الطلبات النصية فقط.",
                "content": "مصفوفة من كائنات الإطارات. يحتوي كل كائن على type=image_url وimage_url الذي يحتوي على url، وعلى frame_type. استخدم عنوان URL لصورة عبر HTTPS واضبط frame_type على first_frame أو last_frame. لا يتكرر كل دور إطار أكثر من مرة.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1280x720",
                  "720x1280",
                  "720x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "16:9",
                    "9:16",
                    "1:1"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    5,
                    10
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "kwaivgi/kling-video-o1"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "720p"
                  ]
                },
                "seed": false,
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "1280x720",
                    "720x1280",
                    "720x720"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist."
              ]
            },
            "unsupported": [
              "seed",
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "تكلفة التوليد التقديرية",
            "units": [
              {
                "amount": "1.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":5,\"model\":\"kwaivgi/kling-video-o1\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.224",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.224",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "1.12",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "1.12",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "kwaivgi/kling-video-o1",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.224",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "1.12",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "1.12",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "kwaivgi/kling-video-o1",
        "request_model_id": "kwaivgi/kling-video-o1",
        "route_label": "Ultra"
      }
    ],
    "name": "Kling: Video O1",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 1.12,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 1.12,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "hosted_reference"
        },
        "dimensions": {
          "published_labels": [],
          "variant": "duration_seconds"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.2240",
            "amount_unit": "usd_per_second",
            "conditions": {
              "published_labels": [],
              "variant": "duration_seconds"
            },
            "key": "duration_seconds",
            "label": "duration seconds",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.224",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "output second",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.2240",
            "key": "duration_seconds",
            "label": "output second",
            "native_amount_usd_per_unit": "0.224",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "kwaivgi/kling-video-o1",
    "short": "Kling VIDEO O1 هو نموذج Kuaishou للفيديو الموجّه بالمراجع، لتوليد المشاهد وتحريرها بالنص والصور وعناصر مرجعية للشخصيات والأشياء ومقطع مصدر. استخدم نمط توليده من ثلاث إلى عشر ثوانٍ للاستمرارية البصرية وانتقالات الإطارات الموجّهة والتغييرات المحددة في لقطات موجودة."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Kling VIDEO O1 هو نموذج Kuaishou للفيديو الموجّه بالمراجع، لتوليد المشاهد وتحريرها بالنص والصور وعناصر مرجعية للشخصيات والأشياء ومقطع مصدر. استخدم نمط توليده من ثلاث إلى عشر ثوانٍ للاستمرارية البصرية وانتقالات الإطارات الموجّهة والتغييرات المحددة في لقطات موجودة.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "947bf476ec6aa558b8e707581a4e9474933f8df69e36756155bc10cf78ac7020",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "373279ea030ef45dc6cf1d29bac3fce920ee60f15c427618fc378bb00fcf0531"
}
