{
  "aboutHtml": "<p>Seedance 2.0 Mini هو نموذج مسمّى بصورة منفصلة في عائلة ByteDance Seedance 2.0 السمعية البصرية. توثّق الشركة المصنّعة تحويل النص إلى فيديو، والصورة إلى فيديو بإطار أول أو بإطارين أول وأخير، والتوليد بمراجع متعددة الوسائط، وتحرير الفيديو وتمديده. ويمكن توليد الصوت مع الصورة. اختر وضع الإنشاء وفق المادة الموجودة لديك: متطلبات مكتوبة أو صورة افتتاحية ثابتة أو إطاران حدوديان أو مقطع يحتاج إلى تحرير أو استكمال.</p><p>لـMini مواصفات إخراج خاصة. تسرد الشركة المصنّعة فيديو بدقة 480p و720p وعمق لون 8-bit ومعدل 24 إطارًا في الثانية وإخراج MP4. ونسب العرض المدعومة هي 21:9 و16:9 و4:3 و1:1 و3:4 و9:16؛ والمدة الموثّقة للتوليد 4–15 ثانية. ويتيح إعداد المدة لدى الجهة المنتجة أيضًا اختيارًا تلقائيًا ضمن هذا النطاق. خيارات 1080p و4K في نموذج Seedance 2.0 الكامل منفصلة؛ وليست إعدادات Mini. يسرد جدول قدرات العائلة إعادة آخر إطار مولّد، بينما وضع Draft غير مدعوم.</p><p>ينشئ المرجع الشامل مشهدًا جديدًا باستخدام معلومات مختارة من المادة المقدّمة. يمكن للصورة تحديد مظهر موضوع أو تكوينه أو معالجته البصرية. ويمكن للفيديو تحديد الفعل أو حركة الكاميرا أو تأثير؛ وللمرجع الصوتي تحديد طابع الصوت أو اللحن أو المحتوى المنطوق. أخبر النموذج بما يأخذه من كل مرجع بدل مطالبته بنسخ كل الخصائص. مثلًا، استخدم صورة منتج للشكل واللون، ومقطع حركة كاميرا قصيرًا للاقتراب، ومرجعًا صوتيًا للأجواء.</p><p>يتيح سير عمل العائلة حتى تسع صور مرجعية وثلاثة مقاطع فيديو وثلاثة مقاطع صوت. مدة كل مرجع فيديو 2–15 ثانية، بإجمالي لا يتجاوز 15 ثانية؛ وتستخدم المراجع الصوتية حدود المدة نفسها لكل مقطع وللإجمالي. الصوت وحده والنص مع الصوت دون مرجع بصري تركيبتان غير مدعومتين للمراجع. والإنشاء بالنص وحده وضع مدعوم منفصل. ولتسلسل، قدّم المواد بالترتيب المقصود وأشر إليها باتساق باسم Image 1 أوVideo 1 أوAudio 1، باستخدام ترتيب كل نوع وسائط على حدة. لا تستبدل معرّف مادة بالمرجع المرقّم في التوجيه المكتوب.</p><p>تحدد صورة الإطار الأول افتتاح لقطة تقودها صورة. ويحدد وضع الإطارين الأول والأخير الحدين معًا. إذا كانت الصورتان الحدوديتان الدقيقتان مهمتين، فاختر ذلك الوضع المخصص بدل وصف المراجع بأنها افتتاح وختام داخل توجيه مرجع شامل. فالأخير تأثير موجّه بالنص ولا يعادل اختيارًا صارمًا لإطارات حدودية. أعدّ الصور لتكوين الإخراج وحدّد الفعل الذي يصل حالتي البداية والنهاية.</p><p>يغيّر تحرير الفيديو مقطعًا موجودًا بدل استخدامه للإلهام فقط. حدّد الفيديو المطلوب تحريره والشيء أو المنطقة المطلوب تغييرها ووقت ظهورها وموضعها والتفاصيل المطلوب الحفاظ عليها. ومن المتطلبات المفيدة: «في Video 1، استبدل الكوب بالوعاء الموضح في Image 1؛ حافظ على حركة اليد والتأطير والإضاءة وترتيب الطاولة.» وللإزالة، سمّ الشيء غير المرغوب والعناصر المحيطة التي يجب أن تبقى. تنصح الشركة المصنّعة بالإشارة مباشرة إلى الفيديو المستهدف للتحرير أو التمديد؛ فوصفه مرجعًا قد يوصل بدلًا من ذلك طلبًا لمشهد مولّد جديد.</p><p>يضيف تمديد الفيديو أحداثًا قبل مقطع موجود أو بعده. صف اتجاه الاستكمال وما يحدث لاحقًا أو سابقًا. ويمكن لسير العمل الموثّق أيضًا وصل مقطعين أو ثلاثة بانتقالات مولّدة؛ وتظل الفيديوهات الثلاثة المدخلة معًا ضمن ميزانية المراجع البالغة 15 ثانية. يميّز الدليل التعليمي استكمالًا يتضمن أساسًا اللقطات الحدودية للمقطع الأصلي عن طلب يحتفظ صراحة بالمحتوى الأصلي. حدّد تركيب النتيجة المطلوب: الاستكمال وحده، أو مشهد يضم المقطع المقدّم والفعل الجديد.</p><p>لتوجيه واضح، افصل وصف المشهد الثابت عن تسلسل الأحداث. عرّف كل موضوع بسمتين أو ثلاث بصرية مميزة وتسمية متسقة. ثم صف الأفعال والمكان والإضاءة وحركة الكاميرا والأسلوب البصري والقيود. وفي الحوار، اربط كل عبارة بمتحدثها والفعل المعني. استخدم تسميات لقطات مرتبة بدل اعتبار الطوابع الزمنية الدقيقة إعدادات موثوقة: تلاحظ الشركة المصنّعة أن التوقيت الدقيق قد يكون غير مستقر. وقد تكون متطلبات منتج مرحلي: «تحدد Image 1 المنتج A. Shot 1: اقترب ببطء من المنتج A على المنضدة. Shot 2: تديره يد نحو الضوء. Shot 3: استقر على الملصق الأمامي. أجواء غرفة هادئة؛ حافظ على الحروف المطبوعة.»</p><p>أعدّ المراجع وفق قواعد إدخال العائلة الموثّقة. تشمل صيغ الصور المدعومة JPEG وPNG وWebP وBMP وTIFF وGIF وHEIC وHEIF؛ وتكون كل صورة أصغر من 30 MB. يحدد الدليل عرض الصورة وارتفاعها أكبر من 300 وأقل من 6,000 بكسل حصرًا، ونسبة عرض أكبر من 0.4 وأقل من 2.5 حصرًا. تستخدم مراجع الفيديو MP4 أوMOV مع فيديو H.264 أوH.265 وصوت AAC أوMP3، ولا تتجاوز 200 MB لكل منها، وبمعدل 24–60 إطارًا في الثانية. عرضها وارتفاعها 300–6,000 بكسل، ونسبة عرضها 0.4–2.5، وإجمالي بكسلاتها 407,696–8,295,044. تستخدم المراجع الصوتية WAV أوMP3 ولا تتجاوز 15 MB لكل منها. هذه مواصفات إعداد الإدخال لدى الشركة المصنّعة، منفصلة عن أدوات الرفع في تطبيق معين.</p><p>يتطلب سير عمل الصور الشخصية لدى الشركة المصنّعة إعدادًا محددًا للصور أو الفيديوهات التي تتضمن وجوه بشر حقيقيين: فالرفع المباشر للمراجع ليس المسار القياسي المدعوم. ويوثّق مخرجات نماذج موثوقة وشخصيات رقمية معدّة مسبقًا ومسارًا مصرحًا لمواد أشخاص حقيقيين بوصفها حلولًا منفصلة. وتحتاج مطابقة الصوت والنطق والصوت عند حدود المقطع إلى فحص أيضًا. يوصي دليل التوجيه بوصف خصائص الصوت المقصودة وإبقاء أسلوب الحوار قريبًا من المرجع الصوتي. راجع المادة النهائية للتحقق من اتساق الموضوع والكلمات المنطوقة الدقيقة وتوقيت الأفعال وانتقالات الإطارات وصوت النهاية؛ وحسّن العنصر المحدد الذي يختلف عن المتطلبات.</p>",
  "aboutText": "Seedance 2.0 Mini هو نموذج مسمّى بصورة منفصلة في عائلة ByteDance Seedance 2.0 السمعية البصرية. توثّق الشركة المصنّعة تحويل النص إلى فيديو، والصورة إلى فيديو بإطار أول أو بإطارين أول وأخير، والتوليد بمراجع متعددة الوسائط، وتحرير الفيديو وتمديده. ويمكن توليد الصوت مع الصورة. اختر وضع الإنشاء وفق المادة الموجودة لديك: متطلبات مكتوبة أو صورة افتتاحية ثابتة أو إطاران حدوديان أو مقطع يحتاج إلى تحرير أو استكمال.\n\nلـMini مواصفات إخراج خاصة. تسرد الشركة المصنّعة فيديو بدقة 480p و720p وعمق لون 8-bit ومعدل 24 إطارًا في الثانية وإخراج MP4. ونسب العرض المدعومة هي 21:9 و16:9 و4:3 و1:1 و3:4 و9:16؛ والمدة الموثّقة للتوليد 4–15 ثانية. ويتيح إعداد المدة لدى الجهة المنتجة أيضًا اختيارًا تلقائيًا ضمن هذا النطاق. خيارات 1080p و4K في نموذج Seedance 2.0 الكامل منفصلة؛ وليست إعدادات Mini. يسرد جدول قدرات العائلة إعادة آخر إطار مولّد، بينما وضع Draft غير مدعوم.\n\nينشئ المرجع الشامل مشهدًا جديدًا باستخدام معلومات مختارة من المادة المقدّمة. يمكن للصورة تحديد مظهر موضوع أو تكوينه أو معالجته البصرية. ويمكن للفيديو تحديد الفعل أو حركة الكاميرا أو تأثير؛ وللمرجع الصوتي تحديد طابع الصوت أو اللحن أو المحتوى المنطوق. أخبر النموذج بما يأخذه من كل مرجع بدل مطالبته بنسخ كل الخصائص. مثلًا، استخدم صورة منتج للشكل واللون، ومقطع حركة كاميرا قصيرًا للاقتراب، ومرجعًا صوتيًا للأجواء.\n\nيتيح سير عمل العائلة حتى تسع صور مرجعية وثلاثة مقاطع فيديو وثلاثة مقاطع صوت. مدة كل مرجع فيديو 2–15 ثانية، بإجمالي لا يتجاوز 15 ثانية؛ وتستخدم المراجع الصوتية حدود المدة نفسها لكل مقطع وللإجمالي. الصوت وحده والنص مع الصوت دون مرجع بصري تركيبتان غير مدعومتين للمراجع. والإنشاء بالنص وحده وضع مدعوم منفصل. ولتسلسل، قدّم المواد بالترتيب المقصود وأشر إليها باتساق باسم Image 1 أوVideo 1 أوAudio 1، باستخدام ترتيب كل نوع وسائط على حدة. لا تستبدل معرّف مادة بالمرجع المرقّم في التوجيه المكتوب.\n\nتحدد صورة الإطار الأول افتتاح لقطة تقودها صورة. ويحدد وضع الإطارين الأول والأخير الحدين معًا. إذا كانت الصورتان الحدوديتان الدقيقتان مهمتين، فاختر ذلك الوضع المخصص بدل وصف المراجع بأنها افتتاح وختام داخل توجيه مرجع شامل. فالأخير تأثير موجّه بالنص ولا يعادل اختيارًا صارمًا لإطارات حدودية. أعدّ الصور لتكوين الإخراج وحدّد الفعل الذي يصل حالتي البداية والنهاية.\n\nيغيّر تحرير الفيديو مقطعًا موجودًا بدل استخدامه للإلهام فقط. حدّد الفيديو المطلوب تحريره والشيء أو المنطقة المطلوب تغييرها ووقت ظهورها وموضعها والتفاصيل المطلوب الحفاظ عليها. ومن المتطلبات المفيدة: «في Video 1، استبدل الكوب بالوعاء الموضح في Image 1؛ حافظ على حركة اليد والتأطير والإضاءة وترتيب الطاولة.» وللإزالة، سمّ الشيء غير المرغوب والعناصر المحيطة التي يجب أن تبقى. تنصح الشركة المصنّعة بالإشارة مباشرة إلى الفيديو المستهدف للتحرير أو التمديد؛ فوصفه مرجعًا قد يوصل بدلًا من ذلك طلبًا لمشهد مولّد جديد.\n\nيضيف تمديد الفيديو أحداثًا قبل مقطع موجود أو بعده. صف اتجاه الاستكمال وما يحدث لاحقًا أو سابقًا. ويمكن لسير العمل الموثّق أيضًا وصل مقطعين أو ثلاثة بانتقالات مولّدة؛ وتظل الفيديوهات الثلاثة المدخلة معًا ضمن ميزانية المراجع البالغة 15 ثانية. يميّز الدليل التعليمي استكمالًا يتضمن أساسًا اللقطات الحدودية للمقطع الأصلي عن طلب يحتفظ صراحة بالمحتوى الأصلي. حدّد تركيب النتيجة المطلوب: الاستكمال وحده، أو مشهد يضم المقطع المقدّم والفعل الجديد.\n\nلتوجيه واضح، افصل وصف المشهد الثابت عن تسلسل الأحداث. عرّف كل موضوع بسمتين أو ثلاث بصرية مميزة وتسمية متسقة. ثم صف الأفعال والمكان والإضاءة وحركة الكاميرا والأسلوب البصري والقيود. وفي الحوار، اربط كل عبارة بمتحدثها والفعل المعني. استخدم تسميات لقطات مرتبة بدل اعتبار الطوابع الزمنية الدقيقة إعدادات موثوقة: تلاحظ الشركة المصنّعة أن التوقيت الدقيق قد يكون غير مستقر. وقد تكون متطلبات منتج مرحلي: «تحدد Image 1 المنتج A. Shot 1: اقترب ببطء من المنتج A على المنضدة. Shot 2: تديره يد نحو الضوء. Shot 3: استقر على الملصق الأمامي. أجواء غرفة هادئة؛ حافظ على الحروف المطبوعة.»\n\nأعدّ المراجع وفق قواعد إدخال العائلة الموثّقة. تشمل صيغ الصور المدعومة JPEG وPNG وWebP وBMP وTIFF وGIF وHEIC وHEIF؛ وتكون كل صورة أصغر من 30 MB. يحدد الدليل عرض الصورة وارتفاعها أكبر من 300 وأقل من 6,000 بكسل حصرًا، ونسبة عرض أكبر من 0.4 وأقل من 2.5 حصرًا. تستخدم مراجع الفيديو MP4 أوMOV مع فيديو H.264 أوH.265 وصوت AAC أوMP3، ولا تتجاوز 200 MB لكل منها، وبمعدل 24–60 إطارًا في الثانية. عرضها وارتفاعها 300–6,000 بكسل، ونسبة عرضها 0.4–2.5، وإجمالي بكسلاتها 407,696–8,295,044. تستخدم المراجع الصوتية WAV أوMP3 ولا تتجاوز 15 MB لكل منها. هذه مواصفات إعداد الإدخال لدى الشركة المصنّعة، منفصلة عن أدوات الرفع في تطبيق معين.\n\nيتطلب سير عمل الصور الشخصية لدى الشركة المصنّعة إعدادًا محددًا للصور أو الفيديوهات التي تتضمن وجوه بشر حقيقيين: فالرفع المباشر للمراجع ليس المسار القياسي المدعوم. ويوثّق مخرجات نماذج موثوقة وشخصيات رقمية معدّة مسبقًا ومسارًا مصرحًا لمواد أشخاص حقيقيين بوصفها حلولًا منفصلة. وتحتاج مطابقة الصوت والنطق والصوت عند حدود المقطع إلى فحص أيضًا. يوصي دليل التوجيه بوصف خصائص الصوت المقصودة وإبقاء أسلوب الحوار قريبًا من المرجع الصوتي. راجع المادة النهائية للتحقق من اتساق الموضوع والكلمات المنطوقة الدقيقة وتوقيت الأفعال وانتقالات الإطارات وصوت النهاية؛ وحسّن العنصر المحدد الذي يختلف عن المتطلبات.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "78edcbfae314f64a5a75576068de050ea03ed1e3ec8d82a5932e164220ce3d2c",
    "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 2.0 Mini</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>bytedance/seedance-2.0-mini</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-2.0-mini\">فيديو</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\">ينشئ Seedance 2.0 Mini فيديوهات قصيرة بصوت مولّد اختياريًا من النص والصور ومراجع الفيديو والصوت. يدعم إنشاء المشاهد وتعديلات الفيديو المحددة والاستكمال، مع مواصفات إخراج موثّقة بدقة 480p أو720p.</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 2.0 Mini هو نموذج مسمّى بصورة منفصلة في عائلة ByteDance Seedance 2.0 السمعية البصرية. توثّق الشركة المصنّعة تحويل النص إلى فيديو، والصورة إلى فيديو بإطار أول أو بإطارين أول وأخير، والتوليد بمراجع متعددة الوسائط، وتحرير الفيديو وتمديده. ويمكن توليد الصوت مع الصورة. اختر وضع الإنشاء وفق المادة الموجودة لديك: متطلبات مكتوبة أو صورة افتتاحية ثابتة أو إطاران حدوديان أو مقطع يحتاج إلى تحرير أو استكمال.</p><p>لـMini مواصفات إخراج خاصة. تسرد الشركة المصنّعة فيديو بدقة 480p و720p وعمق لون 8-bit ومعدل 24 إطارًا في الثانية وإخراج MP4. ونسب العرض المدعومة هي 21:9 و16:9 و4:3 و1:1 و3:4 و9:16؛ والمدة الموثّقة للتوليد 4–15 ثانية. ويتيح إعداد المدة لدى الجهة المنتجة أيضًا اختيارًا تلقائيًا ضمن هذا النطاق. خيارات 1080p و4K في نموذج Seedance 2.0 الكامل منفصلة؛ وليست إعدادات Mini. يسرد جدول قدرات العائلة إعادة آخر إطار مولّد، بينما وضع Draft غير مدعوم.</p><p>ينشئ المرجع الشامل مشهدًا جديدًا باستخدام معلومات مختارة من المادة المقدّمة. يمكن للصورة تحديد مظهر موضوع أو تكوينه أو معالجته البصرية. ويمكن للفيديو تحديد الفعل أو حركة الكاميرا أو تأثير؛ وللمرجع الصوتي تحديد طابع الصوت أو اللحن أو المحتوى المنطوق. أخبر النموذج بما يأخذه من كل مرجع بدل مطالبته بنسخ كل الخصائص. مثلًا، استخدم صورة منتج للشكل واللون، ومقطع حركة كاميرا قصيرًا للاقتراب، ومرجعًا صوتيًا للأجواء.</p><p>يتيح سير عمل العائلة حتى تسع صور مرجعية وثلاثة مقاطع فيديو وثلاثة مقاطع صوت. مدة كل مرجع فيديو 2–15 ثانية، بإجمالي لا يتجاوز 15 ثانية؛ وتستخدم المراجع الصوتية حدود المدة نفسها لكل مقطع وللإجمالي. الصوت وحده والنص مع الصوت دون مرجع بصري تركيبتان غير مدعومتين للمراجع. والإنشاء بالنص وحده وضع مدعوم منفصل. ولتسلسل، قدّم المواد بالترتيب المقصود وأشر إليها باتساق باسم Image 1 أوVideo 1 أوAudio 1، باستخدام ترتيب كل نوع وسائط على حدة. لا تستبدل معرّف مادة بالمرجع المرقّم في التوجيه المكتوب.</p><p>تحدد صورة الإطار الأول افتتاح لقطة تقودها صورة. ويحدد وضع الإطارين الأول والأخير الحدين معًا. إذا كانت الصورتان الحدوديتان الدقيقتان مهمتين، فاختر ذلك الوضع المخصص بدل وصف المراجع بأنها افتتاح وختام داخل توجيه مرجع شامل. فالأخير تأثير موجّه بالنص ولا يعادل اختيارًا صارمًا لإطارات حدودية. أعدّ الصور لتكوين الإخراج وحدّد الفعل الذي يصل حالتي البداية والنهاية.</p><p>يغيّر تحرير الفيديو مقطعًا موجودًا بدل استخدامه للإلهام فقط. حدّد الفيديو المطلوب تحريره والشيء أو المنطقة المطلوب تغييرها ووقت ظهورها وموضعها والتفاصيل المطلوب الحفاظ عليها. ومن المتطلبات المفيدة: «في Video 1، استبدل الكوب بالوعاء الموضح في Image 1؛ حافظ على حركة اليد والتأطير والإضاءة وترتيب الطاولة.» وللإزالة، سمّ الشيء غير المرغوب والعناصر المحيطة التي يجب أن تبقى. تنصح الشركة المصنّعة بالإشارة مباشرة إلى الفيديو المستهدف للتحرير أو التمديد؛ فوصفه مرجعًا قد يوصل بدلًا من ذلك طلبًا لمشهد مولّد جديد.</p><p>يضيف تمديد الفيديو أحداثًا قبل مقطع موجود أو بعده. صف اتجاه الاستكمال وما يحدث لاحقًا أو سابقًا. ويمكن لسير العمل الموثّق أيضًا وصل مقطعين أو ثلاثة بانتقالات مولّدة؛ وتظل الفيديوهات الثلاثة المدخلة معًا ضمن ميزانية المراجع البالغة 15 ثانية. يميّز الدليل التعليمي استكمالًا يتضمن أساسًا اللقطات الحدودية للمقطع الأصلي عن طلب يحتفظ صراحة بالمحتوى الأصلي. حدّد تركيب النتيجة المطلوب: الاستكمال وحده، أو مشهد يضم المقطع المقدّم والفعل الجديد.</p><p>لتوجيه واضح، افصل وصف المشهد الثابت عن تسلسل الأحداث. عرّف كل موضوع بسمتين أو ثلاث بصرية مميزة وتسمية متسقة. ثم صف الأفعال والمكان والإضاءة وحركة الكاميرا والأسلوب البصري والقيود. وفي الحوار، اربط كل عبارة بمتحدثها والفعل المعني. استخدم تسميات لقطات مرتبة بدل اعتبار الطوابع الزمنية الدقيقة إعدادات موثوقة: تلاحظ الشركة المصنّعة أن التوقيت الدقيق قد يكون غير مستقر. وقد تكون متطلبات منتج مرحلي: «تحدد Image 1 المنتج A. Shot 1: اقترب ببطء من المنتج A على المنضدة. Shot 2: تديره يد نحو الضوء. Shot 3: استقر على الملصق الأمامي. أجواء غرفة هادئة؛ حافظ على الحروف المطبوعة.»</p><p>أعدّ المراجع وفق قواعد إدخال العائلة الموثّقة. تشمل صيغ الصور المدعومة JPEG وPNG وWebP وBMP وTIFF وGIF وHEIC وHEIF؛ وتكون كل صورة أصغر من 30 MB. يحدد الدليل عرض الصورة وارتفاعها أكبر من 300 وأقل من 6,000 بكسل حصرًا، ونسبة عرض أكبر من 0.4 وأقل من 2.5 حصرًا. تستخدم مراجع الفيديو MP4 أوMOV مع فيديو H.264 أوH.265 وصوت AAC أوMP3، ولا تتجاوز 200 MB لكل منها، وبمعدل 24–60 إطارًا في الثانية. عرضها وارتفاعها 300–6,000 بكسل، ونسبة عرضها 0.4–2.5، وإجمالي بكسلاتها 407,696–8,295,044. تستخدم المراجع الصوتية WAV أوMP3 ولا تتجاوز 15 MB لكل منها. هذه مواصفات إعداد الإدخال لدى الشركة المصنّعة، منفصلة عن أدوات الرفع في تطبيق معين.</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>, <code>audio</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-2.0-mini</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⁩, ⁦13⁩, ⁦14⁩, ⁦15⁩</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</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, 4:3, 16:9, 21:9, 9:21</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>الشروط: يؤدي حذف generate_audio إلى اختيار السعر الذي يتضمن الصوت؛ وتختار القيمة 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=first_frame أو last_frame. لا يتكرر كل دور أكثر من مرة. استخدم عناوين URL عامة عبر HTTPS.</div><div>المفاتيح الدقيقة: type, image_url, frame_type</div><div>الشروط: تنطبق هذه المفاتيح على كل كائن إطار. احذف 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><div>محتوى الإدخال: مصفوفة كائنات لمراجع الصور أو الصوت. اضبط type على image_url أو audio_url، وقدّم كائن URL المطابق الذي يحتوي على url. تظل مراجع الفيديو غير قابلة للتسعير.</div><div>الشروط: احذف frame_images لاستخدام نمط المراجع. استخدم عناوين URL عامة عبر 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\">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, 640x480, 854x480, 1120x480, 720x720, 720x960, 720x1280, 720x1680, 960x720, 1280x720, 1680x720</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>قدّم موجّهاً نصياً ومدة مدعومة بعدد صحيح من الثواني. استخدم مقاساً دقيقاً مدرجاً، أو دقة ونسبة أبعاد تحددان أبعاداً مدرجة.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: النوع: string · bytedance/seedance-2.0-mini</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 وimage_url الذي يحتوي على url، وعلى frame_type. استخدم عنوان URL عاماً لصورة عبر HTTPS؛ ويمكن أن يظهر كل من first_frame وlast_frame مرة واحدة. استخدم مقاس مخرجات مدرجاً أو أبعاداً متوافقة. لا تضف مراجع فيديو.</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-2.0-mini</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: النوع: string · الحد الأقصى لبايتات UTF-8: ⁦10,000⁩ · يجب أن يتضمن الإدخال محارف غير المسافات البيضاء: نعم</p><p class=\"note-s\"><b>Reference to video</b> · موجّه نصي ومراجع صور أو صوت. · مطلوب: model, prompt, duration, input_references</p><p class=\"note-s\"><code>الحقل input_references مصفوفة. يحتوي كل كائن على type=image_url أو type=audio_url وعلى كائن URL مطابق يحتوي على url. استخدم روابط HTTPS عامة. احذف frame_images لاختيار نمط المراجع. لا يمكن تسعير مراجع الفيديو.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: النوع: string · bytedance/seedance-2.0-mini</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, audio</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.007</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>المدخل: with_video_input</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>reference · سعر توكن الفيديو · تقدير للمقارنة فقط</span> <b>$0.0042</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.007</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.1512</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.007</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.007</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>المدخل: with_video_input</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>reference · سعر توكن الفيديو</span> <b>$0.0042</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-1137-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1137-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-1137-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1137-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;model&quot;:&quot;bytedance/seedance-2.0-mini&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;duration&quot;:4,&quot;resolution&quot;:&quot;480p&quot;,&quot;size&quot;:&quot;480x480&quot;,&quot;generate_audio&quot;:false}&#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-1138-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1138-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-1138-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1138-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-1139-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1139-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-1139-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1139-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-2.0-mini&amp;route=Ultra&amp;caller=bytedance%2Fseedance-2.0-mini&amp;fmt=videos\"><code>bytedance/seedance-2.0-mini</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\">استخدم مسارات الطرائق المعروضة أعلاه.</p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=bytedance%2Fseedance-2.0-mini&amp;route=Ultra&amp;caller=bytedance%2Fseedance-2.0-mini&amp;fmt=videos\"><code>bytedance/seedance-2.0-mini</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance/seedance-2.0-mini",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "bytedance/seedance-2.0-mini",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|bytedance%2Fseedance-2.0-mini",
      "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-2.0-mini"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "قدّم موجّهاً نصياً ومدة مدعومة بعدد صحيح من الثواني. استخدم مقاساً دقيقاً مدرجاً، أو دقة ونسبة أبعاد تحددان أبعاداً مدرجة.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "موجّه نصي."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-mini"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "الحقل frame_images مصفوفة كائنات تحتوي على type=image_url وimage_url الذي يحتوي على url، وعلى frame_type. استخدم عنوان URL عاماً لصورة عبر HTTPS؛ ويمكن أن يظهر كل من first_frame وlast_frame مرة واحدة. استخدم مقاس مخرجات مدرجاً أو أبعاداً متوافقة. لا تضف مراجع فيديو.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "موجّه نصي وصورة إطار."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-mini"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "الحقل input_references مصفوفة. يحتوي كل كائن على type=image_url أو type=audio_url وعلى كائن URL مطابق يحتوي على url. استخدم روابط HTTPS عامة. احذف frame_images لاختيار نمط المراجع. لا يمكن تسعير مراجع الفيديو.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "موجّه نصي ومراجع صور أو صوت."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "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-2.0-mini"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-2.0-mini"
                },
                "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,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "4:3",
                  "16:9",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "يؤدي حذف generate_audio إلى اختيار السعر الذي يتضمن الصوت؛ وتختار القيمة 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": "تنطبق هذه المفاتيح على كل كائن إطار. احذف frame_images في الطلبات النصية فقط.",
                "content": "مصفوفة من كائنات الإطارات. يحتوي كل منها على type=image_url وimage_url الذي يحتوي على url، وعلى frame_type=first_frame أو last_frame. لا يتكرر كل دور أكثر من مرة. استخدم عناوين URL عامة عبر HTTPS.",
                "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",
                "conditions": "احذف frame_images لاستخدام نمط المراجع. استخدم عناوين URL عامة عبر HTTPS.",
                "content": "مصفوفة كائنات لمراجع الصور أو الصوت. اضبط type على image_url أو audio_url، وقدّم كائن URL المطابق الذي يحتوي على url. تظل مراجع الفيديو غير قابلة للتسعير.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "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"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_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": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "640x480",
                  "854x480",
                  "1120x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "960x720",
                  "1280x720",
                  "1680x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720"
                  ],
                  "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",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "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,
                    13,
                    14,
                    15
                  ],
                  "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": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "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"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_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": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-2.0-mini"
                },
                "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"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720"
                  ],
                  "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",
              "audio"
            ],
            "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",
            "reference_to_video"
          ],
          "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.007000",
                "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.000007",
                "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": {
              "conditions": "المدخل: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "سعر توكن الفيديو",
            "units": [
              {
                "amount": "0.0042000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000042",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "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.007000",
                "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.000007",
                "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.1512",
                "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.1512",
                "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('{\"model\":\"bytedance/seedance-2.0-mini\",\"prompt\":\"A serene mountain landscape at sunset\",\"duration\":4,\"resolution\":\"480p\",\"size\":\"480x480\",\"generate_audio\":false}', 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",
          "audio"
        ],
        "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.007000",
                "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.000007",
                "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": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0042000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000042",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "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.007000",
                "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.000007",
                "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.1512",
                "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.1512",
                "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-2.0-mini",
        "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.007000",
            "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.000007",
            "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.0042000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000042",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.007000",
            "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.000007",
            "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.1512",
            "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.1512",
            "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-2.0-mini",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "827e23cc1100fea1c4e6b5e9dd5c53a670d1e0d3b68f6b252325d41192232c86",
    "input_html_sha256": "6e284c4b8dfb4aaacc6c68b4be5c127425d77953e58f8ac02ddd33f5cde20f32",
    "private_audit_sha256": "e0b34aab1b7c19441643859db3413946ac0187d264cdac1bd3aa961efe71ee33",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/bytedance-seedance-2-0-mini/",
    "description": "ينشئ Seedance 2.0 Mini فيديوهات قصيرة بصوت مولّد اختياريًا من النص والصور ومراجع الفيديو والصوت. يدعم إنشاء المشاهد وتعديلات الفيديو المحددة والاستكمال، مع مواصفات إخراج موثّقة بدقة 480p أو720p.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/bytedance-seedance-2-0-mini/index.md",
    "title": "ByteDance: Seedance 2.0 Mini — Ailoot",
    "url": "https://ailoot.ai/models/ar/bytedance-seedance-2-0-mini/"
  },
  "rawModel": {
    "about": "Seedance 2.0 Mini هو نموذج مسمّى بصورة منفصلة في عائلة ByteDance Seedance 2.0 السمعية البصرية. توثّق الشركة المصنّعة تحويل النص إلى فيديو، والصورة إلى فيديو بإطار أول أو بإطارين أول وأخير، والتوليد بمراجع متعددة الوسائط، وتحرير الفيديو وتمديده. ويمكن توليد الصوت مع الصورة. اختر وضع الإنشاء وفق المادة الموجودة لديك: متطلبات مكتوبة أو صورة افتتاحية ثابتة أو إطاران حدوديان أو مقطع يحتاج إلى تحرير أو استكمال.\n\nلـMini مواصفات إخراج خاصة. تسرد الشركة المصنّعة فيديو بدقة 480p و720p وعمق لون 8-bit ومعدل 24 إطارًا في الثانية وإخراج MP4. ونسب العرض المدعومة هي 21:9 و16:9 و4:3 و1:1 و3:4 و9:16؛ والمدة الموثّقة للتوليد 4–15 ثانية. ويتيح إعداد المدة لدى الجهة المنتجة أيضًا اختيارًا تلقائيًا ضمن هذا النطاق. خيارات 1080p و4K في نموذج Seedance 2.0 الكامل منفصلة؛ وليست إعدادات Mini. يسرد جدول قدرات العائلة إعادة آخر إطار مولّد، بينما وضع Draft غير مدعوم.\n\nينشئ المرجع الشامل مشهدًا جديدًا باستخدام معلومات مختارة من المادة المقدّمة. يمكن للصورة تحديد مظهر موضوع أو تكوينه أو معالجته البصرية. ويمكن للفيديو تحديد الفعل أو حركة الكاميرا أو تأثير؛ وللمرجع الصوتي تحديد طابع الصوت أو اللحن أو المحتوى المنطوق. أخبر النموذج بما يأخذه من كل مرجع بدل مطالبته بنسخ كل الخصائص. مثلًا، استخدم صورة منتج للشكل واللون، ومقطع حركة كاميرا قصيرًا للاقتراب، ومرجعًا صوتيًا للأجواء.\n\nيتيح سير عمل العائلة حتى تسع صور مرجعية وثلاثة مقاطع فيديو وثلاثة مقاطع صوت. مدة كل مرجع فيديو 2–15 ثانية، بإجمالي لا يتجاوز 15 ثانية؛ وتستخدم المراجع الصوتية حدود المدة نفسها لكل مقطع وللإجمالي. الصوت وحده والنص مع الصوت دون مرجع بصري تركيبتان غير مدعومتين للمراجع. والإنشاء بالنص وحده وضع مدعوم منفصل. ولتسلسل، قدّم المواد بالترتيب المقصود وأشر إليها باتساق باسم Image 1 أوVideo 1 أوAudio 1، باستخدام ترتيب كل نوع وسائط على حدة. لا تستبدل معرّف مادة بالمرجع المرقّم في التوجيه المكتوب.\n\nتحدد صورة الإطار الأول افتتاح لقطة تقودها صورة. ويحدد وضع الإطارين الأول والأخير الحدين معًا. إذا كانت الصورتان الحدوديتان الدقيقتان مهمتين، فاختر ذلك الوضع المخصص بدل وصف المراجع بأنها افتتاح وختام داخل توجيه مرجع شامل. فالأخير تأثير موجّه بالنص ولا يعادل اختيارًا صارمًا لإطارات حدودية. أعدّ الصور لتكوين الإخراج وحدّد الفعل الذي يصل حالتي البداية والنهاية.\n\nيغيّر تحرير الفيديو مقطعًا موجودًا بدل استخدامه للإلهام فقط. حدّد الفيديو المطلوب تحريره والشيء أو المنطقة المطلوب تغييرها ووقت ظهورها وموضعها والتفاصيل المطلوب الحفاظ عليها. ومن المتطلبات المفيدة: «في Video 1، استبدل الكوب بالوعاء الموضح في Image 1؛ حافظ على حركة اليد والتأطير والإضاءة وترتيب الطاولة.» وللإزالة، سمّ الشيء غير المرغوب والعناصر المحيطة التي يجب أن تبقى. تنصح الشركة المصنّعة بالإشارة مباشرة إلى الفيديو المستهدف للتحرير أو التمديد؛ فوصفه مرجعًا قد يوصل بدلًا من ذلك طلبًا لمشهد مولّد جديد.\n\nيضيف تمديد الفيديو أحداثًا قبل مقطع موجود أو بعده. صف اتجاه الاستكمال وما يحدث لاحقًا أو سابقًا. ويمكن لسير العمل الموثّق أيضًا وصل مقطعين أو ثلاثة بانتقالات مولّدة؛ وتظل الفيديوهات الثلاثة المدخلة معًا ضمن ميزانية المراجع البالغة 15 ثانية. يميّز الدليل التعليمي استكمالًا يتضمن أساسًا اللقطات الحدودية للمقطع الأصلي عن طلب يحتفظ صراحة بالمحتوى الأصلي. حدّد تركيب النتيجة المطلوب: الاستكمال وحده، أو مشهد يضم المقطع المقدّم والفعل الجديد.\n\nلتوجيه واضح، افصل وصف المشهد الثابت عن تسلسل الأحداث. عرّف كل موضوع بسمتين أو ثلاث بصرية مميزة وتسمية متسقة. ثم صف الأفعال والمكان والإضاءة وحركة الكاميرا والأسلوب البصري والقيود. وفي الحوار، اربط كل عبارة بمتحدثها والفعل المعني. استخدم تسميات لقطات مرتبة بدل اعتبار الطوابع الزمنية الدقيقة إعدادات موثوقة: تلاحظ الشركة المصنّعة أن التوقيت الدقيق قد يكون غير مستقر. وقد تكون متطلبات منتج مرحلي: «تحدد Image 1 المنتج A. Shot 1: اقترب ببطء من المنتج A على المنضدة. Shot 2: تديره يد نحو الضوء. Shot 3: استقر على الملصق الأمامي. أجواء غرفة هادئة؛ حافظ على الحروف المطبوعة.»\n\nأعدّ المراجع وفق قواعد إدخال العائلة الموثّقة. تشمل صيغ الصور المدعومة JPEG وPNG وWebP وBMP وTIFF وGIF وHEIC وHEIF؛ وتكون كل صورة أصغر من 30 MB. يحدد الدليل عرض الصورة وارتفاعها أكبر من 300 وأقل من 6,000 بكسل حصرًا، ونسبة عرض أكبر من 0.4 وأقل من 2.5 حصرًا. تستخدم مراجع الفيديو MP4 أوMOV مع فيديو H.264 أوH.265 وصوت AAC أوMP3، ولا تتجاوز 200 MB لكل منها، وبمعدل 24–60 إطارًا في الثانية. عرضها وارتفاعها 300–6,000 بكسل، ونسبة عرضها 0.4–2.5، وإجمالي بكسلاتها 407,696–8,295,044. تستخدم المراجع الصوتية WAV أوMP3 ولا تتجاوز 15 MB لكل منها. هذه مواصفات إعداد الإدخال لدى الشركة المصنّعة، منفصلة عن أدوات الرفع في تطبيق معين.\n\nيتطلب سير عمل الصور الشخصية لدى الشركة المصنّعة إعدادًا محددًا للصور أو الفيديوهات التي تتضمن وجوه بشر حقيقيين: فالرفع المباشر للمراجع ليس المسار القياسي المدعوم. ويوثّق مخرجات نماذج موثوقة وشخصيات رقمية معدّة مسبقًا ومسارًا مصرحًا لمواد أشخاص حقيقيين بوصفها حلولًا منفصلة. وتحتاج مطابقة الصوت والنطق والصوت عند حدود المقطع إلى فحص أيضًا. يوصي دليل التوجيه بوصف خصائص الصوت المقصودة وإبقاء أسلوب الحوار قريبًا من المرجع الصوتي. راجع المادة النهائية للتحقق من اتساق الموضوع والكلمات المنطوقة الدقيقة وتوقيت الأفعال وانتقالات الإطارات وصوت النهاية؛ وحسّن العنصر المحدد الذي يختلف عن المتطلبات.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "available": null,
    "canonical_model": "bytedance/seedance-2.0-mini",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.1512",
            "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.1512",
            "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": "0b52dda4bb8d8eb2776e0f56",
        "label": "مراجع أسعار إعدادات الفيديو",
        "profiles": [
          {
            "basis": "تعرفة توكنات الفيديو هي المرجع الأساسي للسعر. أما التقديرات البارزة لكل ثانية فهي مراجع منفصلة، وليست رسومًا إضافية.",
            "dimensions": {
              "conditions": "لم يُذكر شرط إضافي في مفتاح التسعير هذا."
            },
            "label": "سعر توكن الفيديو",
            "units": [
              {
                "amount": "0.007",
                "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.007",
                "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": "المدخل: with_video_input"
            },
            "label": "سعر توكن الفيديو",
            "units": [
              {
                "amount": "0.0042",
                "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": "reference",
                "unit": "video_token"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "bytedance/seedance-2.0-mini",
    "input": [
      "text",
      "image",
      "audio"
    ],
    "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-2.0-mini"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "قدّم موجّهاً نصياً ومدة مدعومة بعدد صحيح من الثواني. استخدم مقاساً دقيقاً مدرجاً، أو دقة ونسبة أبعاد تحددان أبعاداً مدرجة.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "موجّه نصي."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-mini"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "الحقل frame_images مصفوفة كائنات تحتوي على type=image_url وimage_url الذي يحتوي على url، وعلى frame_type. استخدم عنوان URL عاماً لصورة عبر HTTPS؛ ويمكن أن يظهر كل من first_frame وlast_frame مرة واحدة. استخدم مقاس مخرجات مدرجاً أو أبعاداً متوافقة. لا تضف مراجع فيديو.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "موجّه نصي وصورة إطار."
              },
              {
                "mode": "Reference to video",
                "model": {
                  "enum": [
                    "bytedance/seedance-2.0-mini"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "الحقل input_references مصفوفة. يحتوي كل كائن على type=image_url أو type=audio_url وعلى كائن URL مطابق يحتوي على url. استخدم روابط HTTPS عامة. احذف frame_images لاختيار نمط المراجع. لا يمكن تسعير مراجع الفيديو.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "input_references"
                ],
                "required_material": "موجّه نصي ومراجع صور أو صوت."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images",
              "reference_to_video"
            ],
            "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-2.0-mini"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-2.0-mini"
                },
                "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,
                  13,
                  14,
                  15
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12,
                    13,
                    14,
                    15
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "4:3",
                  "16:9",
                  "21:9",
                  "9:21"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "يؤدي حذف generate_audio إلى اختيار السعر الذي يتضمن الصوت؛ وتختار القيمة 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": "تنطبق هذه المفاتيح على كل كائن إطار. احذف frame_images في الطلبات النصية فقط.",
                "content": "مصفوفة من كائنات الإطارات. يحتوي كل منها على type=image_url وimage_url الذي يحتوي على url، وعلى frame_type=first_frame أو last_frame. لا يتكرر كل دور أكثر من مرة. استخدم عناوين URL عامة عبر HTTPS.",
                "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",
                "conditions": "احذف frame_images لاستخدام نمط المراجع. استخدم عناوين URL عامة عبر HTTPS.",
                "content": "مصفوفة كائنات لمراجع الصور أو الصوت. اضبط type على image_url أو audio_url، وقدّم كائن URL المطابق الذي يحتوي على url. تظل مراجع الفيديو غير قابلة للتسعير.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "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"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_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": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "640x480",
                  "854x480",
                  "1120x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "960x720",
                  "1280x720",
                  "1680x720"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720"
                  ],
                  "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",
                    "4:3",
                    "16:9",
                    "21:9",
                    "9:21"
                  ]
                },
                "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,
                    13,
                    14,
                    15
                  ],
                  "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": {
                    "oneOf": [
                      {
                        "additionalProperties": false,
                        "properties": {
                          "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"
                        ],
                        "type": "object"
                      },
                      {
                        "additionalProperties": false,
                        "properties": {
                          "audio_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": "audio_url"
                          }
                        },
                        "required": [
                          "type",
                          "audio_url"
                        ],
                        "type": "object"
                      }
                    ]
                  },
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-2.0-mini"
                },
                "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"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "640x480",
                    "854x480",
                    "1120x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "960x720",
                    "1280x720",
                    "1680x720"
                  ],
                  "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",
              "audio"
            ],
            "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",
            "reference_to_video"
          ],
          "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.007000",
                "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.000007",
                "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": {
              "conditions": "المدخل: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "سعر توكن الفيديو",
            "units": [
              {
                "amount": "0.0042000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000042",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "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.007000",
                "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.000007",
                "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.1512",
                "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.1512",
                "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('{\"model\":\"bytedance/seedance-2.0-mini\",\"prompt\":\"A serene mountain landscape at sunset\",\"duration\":4,\"resolution\":\"480p\",\"size\":\"480x480\",\"generate_audio\":false}', 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",
          "audio"
        ],
        "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.007000",
                "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.000007",
                "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": "input: with_video_input",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0042000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_with_video_input",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000042",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "reference",
                "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.007000",
                "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.000007",
                "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.1512",
                "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.1512",
                "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-2.0-mini",
        "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.007000",
            "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.000007",
            "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.0042000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_with_video_input",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000042",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "reference",
            "unit": "video_token"
          },
          {
            "amount": "0.007000",
            "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.000007",
            "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.1512",
            "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.1512",
            "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-2.0-mini",
        "request_model_id": "bytedance/seedance-2.0-mini",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 2.0 Mini",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.1512,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.1512,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": false,
          "maker_model_id": "dreamina-seedance-2-0-mini-260615",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": false,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "480p/720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000070",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": false,
              "maker_model_id": "dreamina-seedance-2-0-mini-260615",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": false,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "480p/720p"
            },
            "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",
          "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
          "image_audio_ref_independent_charge": "not listed separately in this tariff",
          "input_includes_video": true,
          "maker_model_id": "dreamina-seedance-2-0-mini-260615",
          "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
          "minimum_tokens_when_video_input": true,
          "offline_not_supported": true,
          "quoted_unit": "1000000_video_tokens",
          "resolution": "480p/720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000042",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "estimated_quantity_formula": "(input_video_duration+output_video_duration)*output_width*output_height*output_fps/1024",
              "image_audio_ref_independent_charge": "not listed separately in this tariff",
              "input_includes_video": true,
              "maker_model_id": "dreamina-seedance-2-0-mini-260615",
              "minimum_token_schedule": "depends on resolution/aspect/output duration; separate official estimate table, actual usage governs",
              "minimum_tokens_when_video_input": true,
              "offline_not_supported": true,
              "quoted_unit": "1000000_video_tokens",
              "resolution": "480p/720p"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "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.0070000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video token",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000070",
            "key": "video_tokens",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000070",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0070000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "audio=false",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000070",
            "key": "video_tokens_without_audio",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000070",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0042000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video_reference_present Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000042",
            "key": "video_tokens_with_video_input",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000042",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          }
        ]
      }
    ],
    "public_id": "bytedance/seedance-2.0-mini",
    "short": "ينشئ Seedance 2.0 Mini فيديوهات قصيرة بصوت مولّد اختياريًا من النص والصور ومراجع الفيديو والصوت. يدعم إنشاء المشاهد وتعديلات الفيديو المحددة والاستكمال، مع مواصفات إخراج موثّقة بدقة 480p أو720p."
  },
  "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": "ينشئ Seedance 2.0 Mini فيديوهات قصيرة بصوت مولّد اختياريًا من النص والصور ومراجع الفيديو والصوت. يدعم إنشاء المشاهد وتعديلات الفيديو المحددة والاستكمال، مع مواصفات إخراج موثّقة بدقة 480p أو720p.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "4509c0f9f655297c02f2def9219b6f48f87419d9cad4696fa395a7bf908f8df6",
    "raw_model_js_projection_sha256": "21540e5f93f3c3e4920547092d53366031ca60e786e72f1b6832e6bf7630a870",
    "raw_model_json_sha256": "4509c0f9f655297c02f2def9219b6f48f87419d9cad4696fa395a7bf908f8df6",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "0bffd832e524251bc38e82107ca66ec9c2e29e73b8eff46f4683b9bcbd1192c7"
}
