{
  "aboutHtml": "<p>Seedance 1.5 Pro هو نموذج ByteDance Seed للتوليد الأصلي المشترك للصوت والفيديو. ينمذج الفعل البصري والكلام والإيقاع معًا، فيتيح للمشهد أداء شخصية وحوارًا متزامنًا وبيئة صوتية مصممة. والفرق المحوري عن متطلبات فيديو بصري فقط أن الصوت يصبح جزءًا من وصف المشهد: من يتحدث، وكيف تُلقى العبارة، وما يسمعه الجمهور حول الفعل.</p><h4>التوليد السمعي البصري المشترك</h4><p>يشمل نطاق الصوت الموثّق أصوات البيئة ومؤثرات الأفعال والأصوات المركّبة والآلات والموسيقى الخلفية والغناء. يُقصد بالنموذج وصل الصوت بما يحدث على الشاشة: شيء يضرب طاولة أو باب يُفتح أو شخصية تتحدث. استخدمه للحظة درامية قصيرة أو إعلان منتج بصوت أو مشهد يعتمد مزاجه على الأداء والصوت معًا.</p><p>ابدأ التوجيه بالموضوع والحركة، ثم أضف البيئة والكاميرا والأسلوب البصري والصوت. وقد يكون مشهد موجز: «يرفع طاهٍ الغطاء عن قدر صغير، ويبتسم ويقول: «أصبح جاهزًا». تتصاعد دفعة بخار خفيفة، تتبعها رنة هادئة عند وضع الغطاء على المنضدة.» يمنح ذلك العبارة المنطوقة والمؤثرات سببًا مرئيًا.</p><h4>الحوار والتعليق الصوتي</h4><p>يدعم النموذج المونولوج والمحادثات متعددة المتحدثين مع مطابقة حركة الشفاه للشخصيات. يوثّق دليله الماندرين ولهجات صينية تشمل الكانتونية ولهجتي شنشي وسيتشوان، والإنجليزية واليابانية والكورية والإسبانية والإندونيسية المنطوقة. ولغتا التوجيه الموثّقتان هما الصينية والإنجليزية؛ لغة التوجيه واللغة المطلوبة لعبارة منطوقة اختياران منفصلان.</p><p>عرّف كل متحدث بسمة مرئية متسقة واكتب العبارات بين علامتي اقتباس. ضمّن تعليمات إلقاء مثل صوت هادئ أو رد متردد أو وتيرة أسرع، واجعل تناوب الأدوار صريحًا. ولمتحدثين، صف من يبدأ وأي رد فعل تعرضه الكاميرا. يمنح تبادل قصير يناسب المقطع المختار هدف أداء أوضح من مقطع طويل بمتحدثين غير محددين.</p><p>يمكن توجيه التعليق الصوتي بطابع الصوت والعاطفة والتنغيم ومعدل الكلام. يفيد عندما يجب أن يشرح الصوت منتجًا وتبقى الكاميرا عليه، أو عندما يحدد راوٍ المزاج دون متحدث على الشاشة. يصف الدليل الحفاظ على طابع يمكن تمييزه مع تغيير الإلقاء؛ راجع الكلمات والنطق والأداء الفعلي مع الصورة.</p><h4>المؤثرات الصوتية والموسيقى الخلفية</h4><p>صف المؤثرات أحداثًا متصلة بالفعل: خطوات عند دخول شخصية، أو اشتداد المطر خارج نافذة، أو حركة قماش عند ارتداء معطف. تُولّد الموسيقى الخلفية لتناسب التوجيه افتراضيًا. حدّد مزاجها وأسلوبها وإيقاعها عندما تهم، واذكر وقت بدايتها أو تلاشيها بالنسبة إلى المشهد.</p><p>لعرض هادئ، اطلب موسيقى خافتة وأبرز أصوات التعامل مع المنتج. ولمشهد متحرك، صف لحظة الفعل التي ينبغي أن توافق الإيقاع الموسيقي. المسار الصوتي المولّد أحادي القناة. ويتيح إعداد الصوت الموثّق أيضًا فيديو صامتًا عندما يحتاج المشروع إلى مسار صوتي مُعدّ منفصلًا.</p><h4>انتقالات اللقطات وتوجيه الكاميرا</h4><p>يدعم النموذج تغير اللقطات بمعالجة بصرية متسقة واللقطات العكسية للمحادثة وتعليمات توقيت الانتقال. ويمكن لتسلسل حوار مفيد تقديم متحدثين في لقطة متوسطة ثم القطع إلى المتحدث المجيب والعودة إلى رد فعل الأول. حدّد هوية كل شخص عند تغير اللقطة.</p><p>يغطي الدليل زوايا مرتفعة ومنخفضة وعند مستوى العين، ومناظير من فوق الكتف وذاتية، وتأطيرًا واسعًا ومتوسطًا وقريبًا. صف حركة الكاميرا بتكوينها الأول واتجاهها ومداها وتكوينها النهائي. مثلًا، قد ينتهي اقتراب بطيء على تعبير المتحدث مع انتهاء العبارة. اربط الحركة بالقصة بدل سرد تقنيات كاميرا متعددة بلا غرض.</p><h4>الأوضاع والإخراج والمعاينة</h4><p>أوضاع الإدخال الموثّقة هي النص إلى فيديو والصورة إلى فيديو بإطار أول والصورة إلى فيديو بإطارين أول وأخير. تحدد صورة أولى مُعدّة التكوين الافتتاحي؛ ويمكن لصورة أخيرة تحديد نقطة النهاية المقصودة. تسرد مواصفات الإخراج MP4 بمعدل 24 fps ودقة 480p أو720p أو1080p وإعدادات مدة 4–12 ثانية. ويستطيع النموذج أيضًا اختيار طول بالثواني الصحيحة ضمن نطاقه المدعوم. النسب الموثّقة 21:9 و16:9 و4:3 و1:1 و3:4 و9:16، مع دعم التأطير التكيفي.</p><p>توثّق الشركة المصنّعة سير عمل Draft بمرحلتين: معاينة 480p لفحص بنية المشهد واختيارات اللقطات والحركة وقصد التوجيه، تليها عملية توليد نهائي تعيد استخدام المدخلات الإبداعية. وهذه وسيلة لتقييم أداء مخطط قبل اختيار دقته النهائية. المعاينة نفسها تقتصر على 480p ولا تدعم إعادة آخر إطار. ويظل معرّف مهمة Draft لدى الجهة المنتجة صالحًا لسبعة أيام بعد الإنشاء؛ ولّد الفيديو النهائي منه خلال تلك النافذة.</p><p>للعمل الذي تقوده صورة، أعدّ الصورة المصدر للتأطير المقصود: فتغيير نسبة الإخراج قد يقتطعها. تنتج البذرة المتكررة إطارات متشابهة لا متطابقة بضمان، وتعليمة الكاميرا الثابتة ليست ضمان تثبيت كامل. والأهم تقييم مقطع الحوار أداءً سمعيًا بصريًا واحدًا: يجب أن يدعم المتحدث الصحيح والعبارة المسموعة ورد الفعل الوجهي وتركيز الكاميرا الحدث نفسه.</p>",
  "aboutText": "Seedance 1.5 Pro هو نموذج ByteDance Seed للتوليد الأصلي المشترك للصوت والفيديو. ينمذج الفعل البصري والكلام والإيقاع معًا، فيتيح للمشهد أداء شخصية وحوارًا متزامنًا وبيئة صوتية مصممة. والفرق المحوري عن متطلبات فيديو بصري فقط أن الصوت يصبح جزءًا من وصف المشهد: من يتحدث، وكيف تُلقى العبارة، وما يسمعه الجمهور حول الفعل.\n\n### التوليد السمعي البصري المشترك\n\nيشمل نطاق الصوت الموثّق أصوات البيئة ومؤثرات الأفعال والأصوات المركّبة والآلات والموسيقى الخلفية والغناء. يُقصد بالنموذج وصل الصوت بما يحدث على الشاشة: شيء يضرب طاولة أو باب يُفتح أو شخصية تتحدث. استخدمه للحظة درامية قصيرة أو إعلان منتج بصوت أو مشهد يعتمد مزاجه على الأداء والصوت معًا.\n\nابدأ التوجيه بالموضوع والحركة، ثم أضف البيئة والكاميرا والأسلوب البصري والصوت. وقد يكون مشهد موجز: «يرفع طاهٍ الغطاء عن قدر صغير، ويبتسم ويقول: «أصبح جاهزًا». تتصاعد دفعة بخار خفيفة، تتبعها رنة هادئة عند وضع الغطاء على المنضدة.» يمنح ذلك العبارة المنطوقة والمؤثرات سببًا مرئيًا.\n\n### الحوار والتعليق الصوتي\n\nيدعم النموذج المونولوج والمحادثات متعددة المتحدثين مع مطابقة حركة الشفاه للشخصيات. يوثّق دليله الماندرين ولهجات صينية تشمل الكانتونية ولهجتي شنشي وسيتشوان، والإنجليزية واليابانية والكورية والإسبانية والإندونيسية المنطوقة. ولغتا التوجيه الموثّقتان هما الصينية والإنجليزية؛ لغة التوجيه واللغة المطلوبة لعبارة منطوقة اختياران منفصلان.\n\nعرّف كل متحدث بسمة مرئية متسقة واكتب العبارات بين علامتي اقتباس. ضمّن تعليمات إلقاء مثل صوت هادئ أو رد متردد أو وتيرة أسرع، واجعل تناوب الأدوار صريحًا. ولمتحدثين، صف من يبدأ وأي رد فعل تعرضه الكاميرا. يمنح تبادل قصير يناسب المقطع المختار هدف أداء أوضح من مقطع طويل بمتحدثين غير محددين.\n\nيمكن توجيه التعليق الصوتي بطابع الصوت والعاطفة والتنغيم ومعدل الكلام. يفيد عندما يجب أن يشرح الصوت منتجًا وتبقى الكاميرا عليه، أو عندما يحدد راوٍ المزاج دون متحدث على الشاشة. يصف الدليل الحفاظ على طابع يمكن تمييزه مع تغيير الإلقاء؛ راجع الكلمات والنطق والأداء الفعلي مع الصورة.\n\n### المؤثرات الصوتية والموسيقى الخلفية\n\nصف المؤثرات أحداثًا متصلة بالفعل: خطوات عند دخول شخصية، أو اشتداد المطر خارج نافذة، أو حركة قماش عند ارتداء معطف. تُولّد الموسيقى الخلفية لتناسب التوجيه افتراضيًا. حدّد مزاجها وأسلوبها وإيقاعها عندما تهم، واذكر وقت بدايتها أو تلاشيها بالنسبة إلى المشهد.\n\nلعرض هادئ، اطلب موسيقى خافتة وأبرز أصوات التعامل مع المنتج. ولمشهد متحرك، صف لحظة الفعل التي ينبغي أن توافق الإيقاع الموسيقي. المسار الصوتي المولّد أحادي القناة. ويتيح إعداد الصوت الموثّق أيضًا فيديو صامتًا عندما يحتاج المشروع إلى مسار صوتي مُعدّ منفصلًا.\n\n### انتقالات اللقطات وتوجيه الكاميرا\n\nيدعم النموذج تغير اللقطات بمعالجة بصرية متسقة واللقطات العكسية للمحادثة وتعليمات توقيت الانتقال. ويمكن لتسلسل حوار مفيد تقديم متحدثين في لقطة متوسطة ثم القطع إلى المتحدث المجيب والعودة إلى رد فعل الأول. حدّد هوية كل شخص عند تغير اللقطة.\n\nيغطي الدليل زوايا مرتفعة ومنخفضة وعند مستوى العين، ومناظير من فوق الكتف وذاتية، وتأطيرًا واسعًا ومتوسطًا وقريبًا. صف حركة الكاميرا بتكوينها الأول واتجاهها ومداها وتكوينها النهائي. مثلًا، قد ينتهي اقتراب بطيء على تعبير المتحدث مع انتهاء العبارة. اربط الحركة بالقصة بدل سرد تقنيات كاميرا متعددة بلا غرض.\n\n### الأوضاع والإخراج والمعاينة\n\nأوضاع الإدخال الموثّقة هي النص إلى فيديو والصورة إلى فيديو بإطار أول والصورة إلى فيديو بإطارين أول وأخير. تحدد صورة أولى مُعدّة التكوين الافتتاحي؛ ويمكن لصورة أخيرة تحديد نقطة النهاية المقصودة. تسرد مواصفات الإخراج MP4 بمعدل 24 fps ودقة 480p أو720p أو1080p وإعدادات مدة 4–12 ثانية. ويستطيع النموذج أيضًا اختيار طول بالثواني الصحيحة ضمن نطاقه المدعوم. النسب الموثّقة 21:9 و16:9 و4:3 و1:1 و3:4 و9:16، مع دعم التأطير التكيفي.\n\nتوثّق الشركة المصنّعة سير عمل Draft بمرحلتين: معاينة 480p لفحص بنية المشهد واختيارات اللقطات والحركة وقصد التوجيه، تليها عملية توليد نهائي تعيد استخدام المدخلات الإبداعية. وهذه وسيلة لتقييم أداء مخطط قبل اختيار دقته النهائية. المعاينة نفسها تقتصر على 480p ولا تدعم إعادة آخر إطار. ويظل معرّف مهمة Draft لدى الجهة المنتجة صالحًا لسبعة أيام بعد الإنشاء؛ ولّد الفيديو النهائي منه خلال تلك النافذة.\n\nللعمل الذي تقوده صورة، أعدّ الصورة المصدر للتأطير المقصود: فتغيير نسبة الإخراج قد يقتطعها. تنتج البذرة المتكررة إطارات متشابهة لا متطابقة بضمان، وتعليمة الكاميرا الثابتة ليست ضمان تثبيت كامل. والأهم تقييم مقطع الحوار أداءً سمعيًا بصريًا واحدًا: يجب أن يدعم المتحدث الصحيح والعبارة المسموعة ورد الفعل الوجهي وتركيز الكاميرا الحدث نفسه.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "7706db23f5edbf351dc91b0d28b750c0b045054f834dba93e6d8c04067502a1e",
    "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\">ByteDance: Seedance 1.5 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>bytedance/seedance-1-5-pro</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|bytedance%2Fseedance-1-5-pro\">فيديو</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\">يولّد ByteDance Seedance 1.5 Pro الفيديو مع حوار متزامن ومؤثرات صوتية وموسيقى. وجّه المتحدثين والمشاعر والكاميرا والأجواء الصوتية لتطوير مشاهد درامية قصيرة وإعلانات بصوت ومشاهد شخصيات.</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>Seedance 1.5 Pro هو نموذج ByteDance Seed للتوليد الأصلي المشترك للصوت والفيديو. ينمذج الفعل البصري والكلام والإيقاع معًا، فيتيح للمشهد أداء شخصية وحوارًا متزامنًا وبيئة صوتية مصممة. والفرق المحوري عن متطلبات فيديو بصري فقط أن الصوت يصبح جزءًا من وصف المشهد: من يتحدث، وكيف تُلقى العبارة، وما يسمعه الجمهور حول الفعل.</p><h4>التوليد السمعي البصري المشترك</h4><p>يشمل نطاق الصوت الموثّق أصوات البيئة ومؤثرات الأفعال والأصوات المركّبة والآلات والموسيقى الخلفية والغناء. يُقصد بالنموذج وصل الصوت بما يحدث على الشاشة: شيء يضرب طاولة أو باب يُفتح أو شخصية تتحدث. استخدمه للحظة درامية قصيرة أو إعلان منتج بصوت أو مشهد يعتمد مزاجه على الأداء والصوت معًا.</p><p>ابدأ التوجيه بالموضوع والحركة، ثم أضف البيئة والكاميرا والأسلوب البصري والصوت. وقد يكون مشهد موجز: «يرفع طاهٍ الغطاء عن قدر صغير، ويبتسم ويقول: «أصبح جاهزًا». تتصاعد دفعة بخار خفيفة، تتبعها رنة هادئة عند وضع الغطاء على المنضدة.» يمنح ذلك العبارة المنطوقة والمؤثرات سببًا مرئيًا.</p><h4>الحوار والتعليق الصوتي</h4><p>يدعم النموذج المونولوج والمحادثات متعددة المتحدثين مع مطابقة حركة الشفاه للشخصيات. يوثّق دليله الماندرين ولهجات صينية تشمل الكانتونية ولهجتي شنشي وسيتشوان، والإنجليزية واليابانية والكورية والإسبانية والإندونيسية المنطوقة. ولغتا التوجيه الموثّقتان هما الصينية والإنجليزية؛ لغة التوجيه واللغة المطلوبة لعبارة منطوقة اختياران منفصلان.</p><p>عرّف كل متحدث بسمة مرئية متسقة واكتب العبارات بين علامتي اقتباس. ضمّن تعليمات إلقاء مثل صوت هادئ أو رد متردد أو وتيرة أسرع، واجعل تناوب الأدوار صريحًا. ولمتحدثين، صف من يبدأ وأي رد فعل تعرضه الكاميرا. يمنح تبادل قصير يناسب المقطع المختار هدف أداء أوضح من مقطع طويل بمتحدثين غير محددين.</p><p>يمكن توجيه التعليق الصوتي بطابع الصوت والعاطفة والتنغيم ومعدل الكلام. يفيد عندما يجب أن يشرح الصوت منتجًا وتبقى الكاميرا عليه، أو عندما يحدد راوٍ المزاج دون متحدث على الشاشة. يصف الدليل الحفاظ على طابع يمكن تمييزه مع تغيير الإلقاء؛ راجع الكلمات والنطق والأداء الفعلي مع الصورة.</p><h4>المؤثرات الصوتية والموسيقى الخلفية</h4><p>صف المؤثرات أحداثًا متصلة بالفعل: خطوات عند دخول شخصية، أو اشتداد المطر خارج نافذة، أو حركة قماش عند ارتداء معطف. تُولّد الموسيقى الخلفية لتناسب التوجيه افتراضيًا. حدّد مزاجها وأسلوبها وإيقاعها عندما تهم، واذكر وقت بدايتها أو تلاشيها بالنسبة إلى المشهد.</p><p>لعرض هادئ، اطلب موسيقى خافتة وأبرز أصوات التعامل مع المنتج. ولمشهد متحرك، صف لحظة الفعل التي ينبغي أن توافق الإيقاع الموسيقي. المسار الصوتي المولّد أحادي القناة. ويتيح إعداد الصوت الموثّق أيضًا فيديو صامتًا عندما يحتاج المشروع إلى مسار صوتي مُعدّ منفصلًا.</p><h4>انتقالات اللقطات وتوجيه الكاميرا</h4><p>يدعم النموذج تغير اللقطات بمعالجة بصرية متسقة واللقطات العكسية للمحادثة وتعليمات توقيت الانتقال. ويمكن لتسلسل حوار مفيد تقديم متحدثين في لقطة متوسطة ثم القطع إلى المتحدث المجيب والعودة إلى رد فعل الأول. حدّد هوية كل شخص عند تغير اللقطة.</p><p>يغطي الدليل زوايا مرتفعة ومنخفضة وعند مستوى العين، ومناظير من فوق الكتف وذاتية، وتأطيرًا واسعًا ومتوسطًا وقريبًا. صف حركة الكاميرا بتكوينها الأول واتجاهها ومداها وتكوينها النهائي. مثلًا، قد ينتهي اقتراب بطيء على تعبير المتحدث مع انتهاء العبارة. اربط الحركة بالقصة بدل سرد تقنيات كاميرا متعددة بلا غرض.</p><h4>الأوضاع والإخراج والمعاينة</h4><p>أوضاع الإدخال الموثّقة هي النص إلى فيديو والصورة إلى فيديو بإطار أول والصورة إلى فيديو بإطارين أول وأخير. تحدد صورة أولى مُعدّة التكوين الافتتاحي؛ ويمكن لصورة أخيرة تحديد نقطة النهاية المقصودة. تسرد مواصفات الإخراج MP4 بمعدل 24 fps ودقة 480p أو720p أو1080p وإعدادات مدة 4–12 ثانية. ويستطيع النموذج أيضًا اختيار طول بالثواني الصحيحة ضمن نطاقه المدعوم. النسب الموثّقة 21:9 و16:9 و4:3 و1:1 و3:4 و9:16، مع دعم التأطير التكيفي.</p><p>توثّق الشركة المصنّعة سير عمل Draft بمرحلتين: معاينة 480p لفحص بنية المشهد واختيارات اللقطات والحركة وقصد التوجيه، تليها عملية توليد نهائي تعيد استخدام المدخلات الإبداعية. وهذه وسيلة لتقييم أداء مخطط قبل اختيار دقته النهائية. المعاينة نفسها تقتصر على 480p ولا تدعم إعادة آخر إطار. ويظل معرّف مهمة Draft لدى الجهة المنتجة صالحًا لسبعة أيام بعد الإنشاء؛ ولّد الفيديو النهائي منه خلال تلك النافذة.</p><p>للعمل الذي تقوده صورة، أعدّ الصورة المصدر للتأطير المقصود: فتغيير نسبة الإخراج قد يقتطعها. تنتج البذرة المتكررة إطارات متشابهة لا متطابقة بضمان، وتعليمة الكاميرا الثابتة ليست ضمان تثبيت كامل. والأهم تقييم مقطع الحوار أداءً سمعيًا بصريًا واحدًا: يجب أن يدعم المتحدث الصحيح والعبارة المسموعة ورد الفعل الوجهي وتركيز الكاميرا الحدث نفسه.</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>bytedance/seedance-1-5-pro</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>⁦4⁩, ⁦5⁩, ⁦6⁩, ⁦7⁩, ⁦8⁩, ⁦9⁩, ⁦10⁩, ⁦11⁩, ⁦12⁩</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>480p, 720p, 1080p</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>1:1, 3:4, 9:16, 9:21, 4:3, 16:9, 21: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\">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><div>الشروط: يؤدي حذف هذا الخيار إلى اختيار السعر الذي يتضمن الصوت. اضبطه على false لاختيار السعر دون صوت. افحص has_audio في النتيجة لمعرفة ما إذا أُعيد مسار صوتي.</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>480x480, 480x640, 480x854, 480x1120, 640x480, 720x720, 720x960, 720x1280, 720x1680, 854x480, 960x720, 1080x1080, 1080x1440, 1080x1920, 1080x2520, 1120x480, 1280x720, 1440x1080, 1680x720, 1920x1080, 2520x1080</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\">seed</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>الحد الأدنى: ⁦‎-9,223,372,036,854,775,808⁩</div><div>الحد الأقصى: ⁦9,223,372,036,854,775,807⁩</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 · bytedance/seedance-1-5-pro</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 · bytedance/seedance-1-5-pro</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, seed, 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>لكل 1K من رموز الفيديو</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.0048</b> <span class=\"price-unit\">لكل 1K من رموز الفيديو</span></div><p class=\"note-s\">تعرفة توكنات الفيديو هي المرجع الأساسي للسعر. أما التقديرات البارزة لكل ثانية فهي مراجع منفصلة، وليست رسومًا إضافية.</p></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>لكل 1K من رموز الفيديو</td><td data-cell-label=\"شروط الفوترة\"><span class=\"card-cell-label\">شروط الفوترة</span>الصوت: without_audio</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإخراج · سعر توكن الفيديو · تقدير للمقارنة فقط</span> <b>$0.0024</b> <span class=\"price-unit\">لكل 1K من رموز الفيديو</span></div><p class=\"note-s\">تعرفة توكنات الفيديو هي المرجع الأساسي للسعر. أما التقديرات البارزة لكل ثانية فهي مراجع منفصلة، وليست رسومًا إضافية.</p></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.05184</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><p class=\"note-s\">طابق كل رسم مع الشروط المعروضة. طبّق تعرفة واحدة لكل مجموعة من الإعدادات البديلة.</p><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.0048</b> <span class=\"price-unit\">لكل 1K من رموز الفيديو</span></div><p class=\"note-s\">تعرفة توكنات الفيديو هي المرجع الأساسي للسعر. أما التقديرات البارزة لكل ثانية فهي مراجع منفصلة، وليست رسومًا إضافية.</p></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>الصوت: without_audio</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإخراج · سعر توكن الفيديو</span> <b>$0.0024</b> <span class=\"price-unit\">لكل 1K من رموز الفيديو</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-1128-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1128-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-1128-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1128-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;:8,&quot;model&quot;:&quot;bytedance/seedance-1-5-pro&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-1129-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1129-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-1129-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1129-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-1130-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1130-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-1130-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1130-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=bytedance%2Fseedance-1-5-pro&amp;route=Ultra&amp;caller=bytedance%2Fseedance-1-5-pro&amp;fmt=videos\"><code>bytedance/seedance-1-5-pro</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\">استخدم مسارات الطرائق المعروضة أعلاه.</p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=bytedance%2Fseedance-1-5-pro&amp;route=Ultra&amp;caller=bytedance%2Fseedance-1-5-pro&amp;fmt=videos\"><code>bytedance/seedance-1-5-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance/seedance-1-5-pro",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "bytedance/seedance-1-5-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|bytedance%2Fseedance-1-5-pro",
      "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": [
                    "bytedance/seedance-1-5-pro"
                  ],
                  "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": [
                    "bytedance/seedance-1-5-pro"
                  ],
                  "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": [
                  "bytedance/seedance-1-5-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-1-5-pro"
                },
                "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": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "9:21",
                  "4:3",
                  "16:9",
                  "21:9"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "9:21",
                    "4:3",
                    "16:9",
                    "21:9"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "يؤدي حذف هذا الخيار إلى اختيار السعر الذي يتضمن الصوت. اضبطه على false لاختيار السعر دون صوت. افحص has_audio في النتيجة لمعرفة ما إذا أُعيد مسار صوتي.",
                "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": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "480x1120",
                  "640x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "854x480",
                  "960x720",
                  "1080x1080",
                  "1080x1440",
                  "1080x1920",
                  "1080x2520",
                  "1120x480",
                  "1280x720",
                  "1440x1080",
                  "1680x720",
                  "1920x1080",
                  "2520x1080"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "480x1120",
                    "640x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "854x480",
                    "960x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1080x2520",
                    "1120x480",
                    "1280x720",
                    "1440x1080",
                    "1680x720",
                    "1920x1080",
                    "2520x1080"
                  ],
                  "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,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "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": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "9:21",
                    "4:3",
                    "16:9",
                    "21:9"
                  ]
                },
                "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": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "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": "bytedance/seedance-1-5-pro"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "480x1120",
                    "640x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "854x480",
                    "960x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1080x2520",
                    "1120x480",
                    "1280x720",
                    "1440x1080",
                    "1680x720",
                    "1920x1080",
                    "2520x1080"
                  ],
                  "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.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "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",
              "seed",
              "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"
              }
            ]
          },
          {
            "basis": "تعرفة توكنات الفيديو هي المرجع الأساسي للسعر. أما التقديرات البارزة لكل ثانية فهي مراجع منفصلة، وليست رسومًا إضافية.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "سعر توكن الفيديو",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "تكلفة التوليد التقديرية",
            "units": [
              {
                "amount": "0.05184",
                "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": "0.05184",
                "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\":8,\"model\":\"bytedance/seedance-1-5-pro\",\"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"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "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": "0.05184",
                "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": "0.05184",
                "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": "bytedance/seedance-1-5-pro",
        "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.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.05184",
            "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": "0.05184",
            "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": "bytedance/seedance-1-5-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "0f00c5ec0a934c09b4b6faa10d9883a88e389fedbb991af9077e7fe98bb98ed6",
    "input_html_sha256": "90fc39364c3885454adb5a853fff3966dccb9325151083c5680f86c950369574",
    "private_audit_sha256": "6e41b1be7b5e4a50a647abb59a69f4aad9871c000eaa78d75ef98f48aa27cc05",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/bytedance-seedance-1-5-pro/",
    "description": "يولّد ByteDance Seedance 1.5 Pro الفيديو مع حوار متزامن ومؤثرات صوتية وموسيقى. وجّه المتحدثين والمشاعر والكاميرا والأجواء الصوتية لتطوير مشاهد درامية قصيرة وإعلانات بصوت ومشاهد شخصيات.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/bytedance-seedance-1-5-pro/index.md",
    "title": "ByteDance: Seedance 1.5 Pro — Ailoot",
    "url": "https://ailoot.ai/models/ar/bytedance-seedance-1-5-pro/"
  },
  "rawModel": {
    "about": "Seedance 1.5 Pro هو نموذج ByteDance Seed للتوليد الأصلي المشترك للصوت والفيديو. ينمذج الفعل البصري والكلام والإيقاع معًا، فيتيح للمشهد أداء شخصية وحوارًا متزامنًا وبيئة صوتية مصممة. والفرق المحوري عن متطلبات فيديو بصري فقط أن الصوت يصبح جزءًا من وصف المشهد: من يتحدث، وكيف تُلقى العبارة، وما يسمعه الجمهور حول الفعل.\n\n### التوليد السمعي البصري المشترك\n\nيشمل نطاق الصوت الموثّق أصوات البيئة ومؤثرات الأفعال والأصوات المركّبة والآلات والموسيقى الخلفية والغناء. يُقصد بالنموذج وصل الصوت بما يحدث على الشاشة: شيء يضرب طاولة أو باب يُفتح أو شخصية تتحدث. استخدمه للحظة درامية قصيرة أو إعلان منتج بصوت أو مشهد يعتمد مزاجه على الأداء والصوت معًا.\n\nابدأ التوجيه بالموضوع والحركة، ثم أضف البيئة والكاميرا والأسلوب البصري والصوت. وقد يكون مشهد موجز: «يرفع طاهٍ الغطاء عن قدر صغير، ويبتسم ويقول: «أصبح جاهزًا». تتصاعد دفعة بخار خفيفة، تتبعها رنة هادئة عند وضع الغطاء على المنضدة.» يمنح ذلك العبارة المنطوقة والمؤثرات سببًا مرئيًا.\n\n### الحوار والتعليق الصوتي\n\nيدعم النموذج المونولوج والمحادثات متعددة المتحدثين مع مطابقة حركة الشفاه للشخصيات. يوثّق دليله الماندرين ولهجات صينية تشمل الكانتونية ولهجتي شنشي وسيتشوان، والإنجليزية واليابانية والكورية والإسبانية والإندونيسية المنطوقة. ولغتا التوجيه الموثّقتان هما الصينية والإنجليزية؛ لغة التوجيه واللغة المطلوبة لعبارة منطوقة اختياران منفصلان.\n\nعرّف كل متحدث بسمة مرئية متسقة واكتب العبارات بين علامتي اقتباس. ضمّن تعليمات إلقاء مثل صوت هادئ أو رد متردد أو وتيرة أسرع، واجعل تناوب الأدوار صريحًا. ولمتحدثين، صف من يبدأ وأي رد فعل تعرضه الكاميرا. يمنح تبادل قصير يناسب المقطع المختار هدف أداء أوضح من مقطع طويل بمتحدثين غير محددين.\n\nيمكن توجيه التعليق الصوتي بطابع الصوت والعاطفة والتنغيم ومعدل الكلام. يفيد عندما يجب أن يشرح الصوت منتجًا وتبقى الكاميرا عليه، أو عندما يحدد راوٍ المزاج دون متحدث على الشاشة. يصف الدليل الحفاظ على طابع يمكن تمييزه مع تغيير الإلقاء؛ راجع الكلمات والنطق والأداء الفعلي مع الصورة.\n\n### المؤثرات الصوتية والموسيقى الخلفية\n\nصف المؤثرات أحداثًا متصلة بالفعل: خطوات عند دخول شخصية، أو اشتداد المطر خارج نافذة، أو حركة قماش عند ارتداء معطف. تُولّد الموسيقى الخلفية لتناسب التوجيه افتراضيًا. حدّد مزاجها وأسلوبها وإيقاعها عندما تهم، واذكر وقت بدايتها أو تلاشيها بالنسبة إلى المشهد.\n\nلعرض هادئ، اطلب موسيقى خافتة وأبرز أصوات التعامل مع المنتج. ولمشهد متحرك، صف لحظة الفعل التي ينبغي أن توافق الإيقاع الموسيقي. المسار الصوتي المولّد أحادي القناة. ويتيح إعداد الصوت الموثّق أيضًا فيديو صامتًا عندما يحتاج المشروع إلى مسار صوتي مُعدّ منفصلًا.\n\n### انتقالات اللقطات وتوجيه الكاميرا\n\nيدعم النموذج تغير اللقطات بمعالجة بصرية متسقة واللقطات العكسية للمحادثة وتعليمات توقيت الانتقال. ويمكن لتسلسل حوار مفيد تقديم متحدثين في لقطة متوسطة ثم القطع إلى المتحدث المجيب والعودة إلى رد فعل الأول. حدّد هوية كل شخص عند تغير اللقطة.\n\nيغطي الدليل زوايا مرتفعة ومنخفضة وعند مستوى العين، ومناظير من فوق الكتف وذاتية، وتأطيرًا واسعًا ومتوسطًا وقريبًا. صف حركة الكاميرا بتكوينها الأول واتجاهها ومداها وتكوينها النهائي. مثلًا، قد ينتهي اقتراب بطيء على تعبير المتحدث مع انتهاء العبارة. اربط الحركة بالقصة بدل سرد تقنيات كاميرا متعددة بلا غرض.\n\n### الأوضاع والإخراج والمعاينة\n\nأوضاع الإدخال الموثّقة هي النص إلى فيديو والصورة إلى فيديو بإطار أول والصورة إلى فيديو بإطارين أول وأخير. تحدد صورة أولى مُعدّة التكوين الافتتاحي؛ ويمكن لصورة أخيرة تحديد نقطة النهاية المقصودة. تسرد مواصفات الإخراج MP4 بمعدل 24 fps ودقة 480p أو720p أو1080p وإعدادات مدة 4–12 ثانية. ويستطيع النموذج أيضًا اختيار طول بالثواني الصحيحة ضمن نطاقه المدعوم. النسب الموثّقة 21:9 و16:9 و4:3 و1:1 و3:4 و9:16، مع دعم التأطير التكيفي.\n\nتوثّق الشركة المصنّعة سير عمل Draft بمرحلتين: معاينة 480p لفحص بنية المشهد واختيارات اللقطات والحركة وقصد التوجيه، تليها عملية توليد نهائي تعيد استخدام المدخلات الإبداعية. وهذه وسيلة لتقييم أداء مخطط قبل اختيار دقته النهائية. المعاينة نفسها تقتصر على 480p ولا تدعم إعادة آخر إطار. ويظل معرّف مهمة Draft لدى الجهة المنتجة صالحًا لسبعة أيام بعد الإنشاء؛ ولّد الفيديو النهائي منه خلال تلك النافذة.\n\nللعمل الذي تقوده صورة، أعدّ الصورة المصدر للتأطير المقصود: فتغيير نسبة الإخراج قد يقتطعها. تنتج البذرة المتكررة إطارات متشابهة لا متطابقة بضمان، وتعليمة الكاميرا الثابتة ليست ضمان تثبيت كامل. والأهم تقييم مقطع الحوار أداءً سمعيًا بصريًا واحدًا: يجب أن يدعم المتحدث الصحيح والعبارة المسموعة ورد الفعل الوجهي وتركيز الكاميرا الحدث نفسه.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "available": null,
    "canonical_model": "bytedance/seedance-1-5-pro",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.05184",
            "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": "0.05184",
            "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": "09b7f40b8299fa0acb9ef099",
        "label": "مراجع أسعار إعدادات الفيديو",
        "profiles": [
          {
            "basis": "تعرفة توكنات الفيديو هي المرجع الأساسي للسعر. أما التقديرات البارزة لكل ثانية فهي مراجع منفصلة، وليست رسومًا إضافية.",
            "dimensions": {
              "conditions": "لم يُذكر شرط إضافي في مفتاح التسعير هذا."
            },
            "label": "سعر توكن الفيديو",
            "units": [
              {
                "amount": "0.0048",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "تعرفة توكنات الفيديو هي المرجع الأساسي للسعر. أما التقديرات البارزة لكل ثانية فهي مراجع منفصلة، وليست رسومًا إضافية.",
            "dimensions": {
              "conditions": "الصوت: without_audio"
            },
            "label": "سعر توكن الفيديو",
            "units": [
              {
                "amount": "0.0024",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "bytedance/seedance-1-5-pro",
    "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": [
                    "bytedance/seedance-1-5-pro"
                  ],
                  "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": [
                    "bytedance/seedance-1-5-pro"
                  ],
                  "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": [
                  "bytedance/seedance-1-5-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-1-5-pro"
                },
                "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": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "9:21",
                  "4:3",
                  "16:9",
                  "21:9"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "9:21",
                    "4:3",
                    "16:9",
                    "21:9"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "يؤدي حذف هذا الخيار إلى اختيار السعر الذي يتضمن الصوت. اضبطه على false لاختيار السعر دون صوت. افحص has_audio في النتيجة لمعرفة ما إذا أُعيد مسار صوتي.",
                "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": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "480x1120",
                  "640x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "854x480",
                  "960x720",
                  "1080x1080",
                  "1080x1440",
                  "1080x1920",
                  "1080x2520",
                  "1120x480",
                  "1280x720",
                  "1440x1080",
                  "1680x720",
                  "1920x1080",
                  "2520x1080"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "480x1120",
                    "640x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "854x480",
                    "960x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1080x2520",
                    "1120x480",
                    "1280x720",
                    "1440x1080",
                    "1680x720",
                    "1920x1080",
                    "2520x1080"
                  ],
                  "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,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "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": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "9:21",
                    "4:3",
                    "16:9",
                    "21:9"
                  ]
                },
                "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": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "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": "bytedance/seedance-1-5-pro"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "480x1120",
                    "640x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "854x480",
                    "960x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1080x2520",
                    "1120x480",
                    "1280x720",
                    "1440x1080",
                    "1680x720",
                    "1920x1080",
                    "2520x1080"
                  ],
                  "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.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "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",
              "seed",
              "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"
              }
            ]
          },
          {
            "basis": "تعرفة توكنات الفيديو هي المرجع الأساسي للسعر. أما التقديرات البارزة لكل ثانية فهي مراجع منفصلة، وليست رسومًا إضافية.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "سعر توكن الفيديو",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "هذا التقدير ليس رسومًا إضافية ولا تعرفة ثابتة لعملية التوليد المكتملة.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "تكلفة التوليد التقديرية",
            "units": [
              {
                "amount": "0.05184",
                "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": "0.05184",
                "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\":8,\"model\":\"bytedance/seedance-1-5-pro\",\"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"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "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": "0.05184",
                "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": "0.05184",
                "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": "bytedance/seedance-1-5-pro",
        "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.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.05184",
            "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": "0.05184",
            "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": "bytedance/seedance-1-5-pro",
        "request_model_id": "bytedance/seedance-1-5-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 1.5 Pro",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.05184,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.05184,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "draft_estimate_conversion_factor": "0.6",
          "draft_quantity_is_estimate_not_actual": true,
          "maker_model_id": "seedance-1-5-pro-251215",
          "output_audio": true,
          "quoted_unit": "1000000_video_tokens"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000048",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "draft_estimate_conversion_factor": "0.6",
              "draft_quantity_is_estimate_not_actual": true,
              "maker_model_id": "seedance-1-5-pro-251215",
              "output_audio": true,
              "quoted_unit": "1000000_video_tokens"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "draft_estimate_conversion_factor": "0.7",
          "draft_quantity_is_estimate_not_actual": true,
          "maker_model_id": "seedance-1-5-pro-251215",
          "output_audio": false,
          "quoted_unit": "1000000_video_tokens"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000024",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "draft_estimate_conversion_factor": "0.7",
              "draft_quantity_is_estimate_not_actual": true,
              "maker_model_id": "seedance-1-5-pro-251215",
              "output_audio": false,
              "quoted_unit": "1000000_video_tokens"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "draft_estimate_conversion_factor": "0.6",
          "draft_quantity_is_estimate_not_actual": true,
          "maker_model_id": "seedance-1-5-pro-251215",
          "output_audio": true,
          "quoted_unit": "1000000_video_tokens"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000024",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "draft_estimate_conversion_factor": "0.6",
              "draft_quantity_is_estimate_not_actual": true,
              "maker_model_id": "seedance-1-5-pro-251215",
              "output_audio": true,
              "quoted_unit": "1000000_video_tokens"
            },
            "key": "base",
            "label": "base",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "draft_estimate_conversion_factor": "0.7",
          "draft_quantity_is_estimate_not_actual": true,
          "maker_model_id": "seedance-1-5-pro-251215",
          "output_audio": false,
          "quoted_unit": "1000000_video_tokens"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000012",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "draft_estimate_conversion_factor": "0.7",
              "draft_quantity_is_estimate_not_actual": true,
              "maker_model_id": "seedance-1-5-pro-251215",
              "output_audio": false,
              "quoted_unit": "1000000_video_tokens"
            },
            "key": "base",
            "label": "base",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video token",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000048",
            "key": "video_tokens",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0024000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "audio=false",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000024",
            "key": "video_tokens_without_audio",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          }
        ]
      }
    ],
    "public_id": "bytedance/seedance-1-5-pro",
    "short": "يولّد ByteDance Seedance 1.5 Pro الفيديو مع حوار متزامن ومؤثرات صوتية وموسيقى. وجّه المتحدثين والمشاعر والكاميرا والأجواء الصوتية لتطوير مشاهد درامية قصيرة وإعلانات بصوت ومشاهد شخصيات."
  },
  "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": "يولّد ByteDance Seedance 1.5 Pro الفيديو مع حوار متزامن ومؤثرات صوتية وموسيقى. وجّه المتحدثين والمشاعر والكاميرا والأجواء الصوتية لتطوير مشاهد درامية قصيرة وإعلانات بصوت ومشاهد شخصيات.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "475704eea3510a63ea7752b732c30a8aa6c7fd68c2ac47bc09fb9d23827364e0",
    "raw_model_js_projection_sha256": "69257311462f10910f970e22e4ab3187bfe3b7e397722d9ab5d7af9f053b81d5",
    "raw_model_json_sha256": "475704eea3510a63ea7752b732c30a8aa6c7fd68c2ac47bc09fb9d23827364e0",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "eef921eb682dbd8ebf85ebecd550644c961ffece076d4fc6b6061b96e7907e59"
}
