{
  "aboutHtml": "<p>Seedance 2.0 יוצר וידאו מסצנה כתובה או משילוב של תמונות וקובצי ייחוס של וידאו ושמע. המזהה המדויק doubao-seedance-2-0-260128 מזהה את פרופיל 2.0 הרגיל. תהליכי העבודה המתועדים כוללים יצירת וידאו חדש, עריכה והארכה של קטעי וידאו קיימים. השתמשו בקובצי הייחוס להעברת מראה, תנועה, שפת מצלמה וקול, ואז ציינו באילו חלקי הסצנה הם אמורים לשלוט.</p><p>אפשר לספק טקסט לבדו. השילובים הרב־מודאליים המתועדים מאפשרים גם תמונות או וידאו עם טקסט אופציונלי, תמונות עם שמע, וידאו עם שמע ותמונות, וידאו ושמע יחד. לכן בשילובים המנויים האלה השמע מלווה מדיה חזותית; הוא אינו מתואר כבקשה עצמאית משמע לווידאו. כתבו בבירור את התוצאה המיועדת גם כשהטקסט אופציונלי, כדי שתפקיד כל קובץ ייחוס יהיה מפורש ולא יוסק מנכסים לא קשורים.</p><p>מערך content מבחין בין פריטי text, image_url, video_url ו-audio_url. קובצי ייחוס רב־מודאליים משתמשים בתפקידים כמו reference_image, reference_video ו-reference_audio. תמונה יכולה להגדיר את האדם, האובייקט, המיקום או המראה. וידאו יכול להדגים ביצוע, תנועה או מבט מצלמה, ושמע יכול לבסס רצועה או תזמון. ציינו את ההקצאה בהנחיות: שמרו את נושא הצילום מהתמונה, עקבו אחר מבט המצלמה בווידאו והשתמשו בשמע כרקע. אל תבקשו מכל קובץ ייחוס להגדיר את כל התכונות בבת אחת.</p><p>דוגמת הפרסום המתועדת משלבת שתי תמונות מוצר עם וידאו וקובץ שמע לייחוס. היא מתארת מבט פתיחה, רצף פעולה, פרט מוצר מקרוב וקומפוזיציה סוגרת, תוך שמירה על עקביות קול הרקע. אותו מבנה יכול לארגן תצוגה קצרה: בססו את האובייקט, הדגימו פעולה אחת וסיימו במאפיין המזוהה שלו. לעריכה, זהו את קטעי המקור ואת הרכיב שצריך להשתנות; להארכה, הסבירו איזו פעולה ממשיכה מעבר לסצנה הקיימת תוך שמירה על נושא הצילום ועל כיוון התנועה.</p><p>פרופיל 2.0 מתעד משך בשניות שלמות מארבע עד חמש עשרה, או -1 למשך שנבחר אוטומטית בטווח הזה. ברירת המחדל היא חמש שניות. אפשרויות הרזולוציה הן 480p ו-720p, כש-720p היא ברירת המחדל; 1080p אינה זמינה עבור 2.0. יחסי הממדים הקבועים כוללים 16:9, 4:3, 1:1, 3:4, 9:16 ו-21:9. יחס adaptive יכול לבחור מסגור מהפרומפט או מקובץ הייחוס: עבודה עם פריים ראשון עוקבת אחר תמונת הפתיחה, ועבודה רב־מודאלית משתמשת בסצנה המיועדת או במדיה הרלוונטית הראשונה, כשווידאו קודם לתמונות. בדקו בתוצאת המשימה את היחס והמשך בפועל.</p><p>קול שנוצר נשלט בנפרד ממדיית הייחוס. generate_audio=true מבקש קולות, אפקטים ומוזיקת רקע מסונכרנים לפי הטקסט והתוכן החזותי; false מבקש וידאו ללא קול. ברירת המחדל המתועדת היא true, ומומלץ לשים דיאלוג במירכאות עבור דיבור. ציינו מי מדבר וכיצד הקול קשור לפעולה הגלויה, ואז בדקו את הניסוח, שיוך הקולות והתזמון בפועל. אספקת קובץ שמע לייחוס והפעלת קול שנוצר הן בחירות נפרדות בבקשה.</p><p>מדריך 2.0 שולל את הבקרות הישנות frames ו-camera_fixed ואינו תומך בעיבוד flex לא מקוון. השתמשו בשדה duration ותארו את תנועת המצלמה בסצנה עצמה. seed וסימן מים נשארים בקרות מתועדות; המדריך אומר שאותה בקשה ואותו seed יכולים להפיק תוצאות דומות, בלי להבטיח זהות מדויקת. הימנעו מהתייחסות ל-seed כהוכחה לשחזור, או לבקשה חוזרת כאל קליפ שכבר נבדק.</p><p>השימוש בטוקני וידאו מחושב כך: (משך וידאו הקלט + משך וידאו הפלט) × רוחב הפלט × גובה הפלט × קצב הפריימים של הפלט / 1024. לבקשות הכוללות וידאו קלט ולבקשות ללא וידאו קלט יש קטגוריות חיוב נפרדות. שאילתת המשימה מדווחת usage.completion_tokens ו-usage.total_tokens; שמרו את הכמויות המדווחות האלה עם הקליפ שהושלם.</p><p>תהליך העבודה אסינכרוני: השליחה מחזירה מזהה משימה, והמשימה שהושלמה מספקת content.video_url יחד עם משך, רזולוציה, יחס, קצב פריימים ושימוש בטוקנים שדווחו. שמרו את המזהה ושמרו את הווידאו שהושלם עם קובצי הייחוס והפרומפט המקוריים. ברירת המחדל של שדה הפקיעה היא 172800 שניות, והוא מקבל 3600–259200 שניות מיצירת המשימה; משימה החורגת מהפרק הזה עוברת לסטטוס פג תוקף. בדקו את הפלט כולו, לרבות נקודת החיבור של העריכה או ההמשך, מבחינת מראה הדמות, פרטי האובייקט, היחסים במרחב, רציפות המצלמה ותזמון הקול מול התמונה.</p>",
  "aboutText": "Seedance 2.0 יוצר וידאו מסצנה כתובה או משילוב של תמונות וקובצי ייחוס של וידאו ושמע. המזהה המדויק doubao-seedance-2-0-260128 מזהה את פרופיל 2.0 הרגיל. תהליכי העבודה המתועדים כוללים יצירת וידאו חדש, עריכה והארכה של קטעי וידאו קיימים. השתמשו בקובצי הייחוס להעברת מראה, תנועה, שפת מצלמה וקול, ואז ציינו באילו חלקי הסצנה הם אמורים לשלוט.\n\nאפשר לספק טקסט לבדו. השילובים הרב־מודאליים המתועדים מאפשרים גם תמונות או וידאו עם טקסט אופציונלי, תמונות עם שמע, וידאו עם שמע ותמונות, וידאו ושמע יחד. לכן בשילובים המנויים האלה השמע מלווה מדיה חזותית; הוא אינו מתואר כבקשה עצמאית משמע לווידאו. כתבו בבירור את התוצאה המיועדת גם כשהטקסט אופציונלי, כדי שתפקיד כל קובץ ייחוס יהיה מפורש ולא יוסק מנכסים לא קשורים.\n\nמערך content מבחין בין פריטי text, image_url, video_url ו-audio_url. קובצי ייחוס רב־מודאליים משתמשים בתפקידים כמו reference_image, reference_video ו-reference_audio. תמונה יכולה להגדיר את האדם, האובייקט, המיקום או המראה. וידאו יכול להדגים ביצוע, תנועה או מבט מצלמה, ושמע יכול לבסס רצועה או תזמון. ציינו את ההקצאה בהנחיות: שמרו את נושא הצילום מהתמונה, עקבו אחר מבט המצלמה בווידאו והשתמשו בשמע כרקע. אל תבקשו מכל קובץ ייחוס להגדיר את כל התכונות בבת אחת.\n\nדוגמת הפרסום המתועדת משלבת שתי תמונות מוצר עם וידאו וקובץ שמע לייחוס. היא מתארת מבט פתיחה, רצף פעולה, פרט מוצר מקרוב וקומפוזיציה סוגרת, תוך שמירה על עקביות קול הרקע. אותו מבנה יכול לארגן תצוגה קצרה: בססו את האובייקט, הדגימו פעולה אחת וסיימו במאפיין המזוהה שלו. לעריכה, זהו את קטעי המקור ואת הרכיב שצריך להשתנות; להארכה, הסבירו איזו פעולה ממשיכה מעבר לסצנה הקיימת תוך שמירה על נושא הצילום ועל כיוון התנועה.\n\nפרופיל 2.0 מתעד משך בשניות שלמות מארבע עד חמש עשרה, או -1 למשך שנבחר אוטומטית בטווח הזה. ברירת המחדל היא חמש שניות. אפשרויות הרזולוציה הן 480p ו-720p, כש-720p היא ברירת המחדל; 1080p אינה זמינה עבור 2.0. יחסי הממדים הקבועים כוללים 16:9, 4:3, 1:1, 3:4, 9:16 ו-21:9. יחס adaptive יכול לבחור מסגור מהפרומפט או מקובץ הייחוס: עבודה עם פריים ראשון עוקבת אחר תמונת הפתיחה, ועבודה רב־מודאלית משתמשת בסצנה המיועדת או במדיה הרלוונטית הראשונה, כשווידאו קודם לתמונות. בדקו בתוצאת המשימה את היחס והמשך בפועל.\n\nקול שנוצר נשלט בנפרד ממדיית הייחוס. generate_audio=true מבקש קולות, אפקטים ומוזיקת רקע מסונכרנים לפי הטקסט והתוכן החזותי; false מבקש וידאו ללא קול. ברירת המחדל המתועדת היא true, ומומלץ לשים דיאלוג במירכאות עבור דיבור. ציינו מי מדבר וכיצד הקול קשור לפעולה הגלויה, ואז בדקו את הניסוח, שיוך הקולות והתזמון בפועל. אספקת קובץ שמע לייחוס והפעלת קול שנוצר הן בחירות נפרדות בבקשה.\n\nמדריך 2.0 שולל את הבקרות הישנות frames ו-camera_fixed ואינו תומך בעיבוד flex לא מקוון. השתמשו בשדה duration ותארו את תנועת המצלמה בסצנה עצמה. seed וסימן מים נשארים בקרות מתועדות; המדריך אומר שאותה בקשה ואותו seed יכולים להפיק תוצאות דומות, בלי להבטיח זהות מדויקת. הימנעו מהתייחסות ל-seed כהוכחה לשחזור, או לבקשה חוזרת כאל קליפ שכבר נבדק.\n\nהשימוש בטוקני וידאו מחושב כך: (משך וידאו הקלט + משך וידאו הפלט) × רוחב הפלט × גובה הפלט × קצב הפריימים של הפלט / 1024. לבקשות הכוללות וידאו קלט ולבקשות ללא וידאו קלט יש קטגוריות חיוב נפרדות. שאילתת המשימה מדווחת usage.completion_tokens ו-usage.total_tokens; שמרו את הכמויות המדווחות האלה עם הקליפ שהושלם.\n\nתהליך העבודה אסינכרוני: השליחה מחזירה מזהה משימה, והמשימה שהושלמה מספקת content.video_url יחד עם משך, רזולוציה, יחס, קצב פריימים ושימוש בטוקנים שדווחו. שמרו את המזהה ושמרו את הווידאו שהושלם עם קובצי הייחוס והפרומפט המקוריים. ברירת המחדל של שדה הפקיעה היא 172800 שניות, והוא מקבל 3600–259200 שניות מיצירת המשימה; משימה החורגת מהפרק הזה עוברת לסטטוס פג תוקף. בדקו את הפלט כולו, לרבות נקודת החיבור של העריכה או ההמשך, מבחינת מראה הדמות, פרטי האובייקט, היחסים במרחב, רציפות המצלמה ותזמון הקול מול התמונה.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "77ad00550a60863f569d9918e9e56a9996a8995033f700e7db7f9b3e53375145",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "he",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ByteDance: Seedance 2.0</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>doubao-seedance-2-0-260128</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|doubao-seedance-2-0-260128\">וידאו</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 יוצר ועורך וידאו באמצעות טקסט, תמונות וקובצי ייחוס של וידאו ושמע. הוא יכול להמשיך קטעי וידאו קיימים וליצור קול מסונכרן, עם משך של 4–15 שניות, פלט 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 יוצר וידאו מסצנה כתובה או משילוב של תמונות וקובצי ייחוס של וידאו ושמע. המזהה המדויק doubao-seedance-2-0-260128 מזהה את פרופיל 2.0 הרגיל. תהליכי העבודה המתועדים כוללים יצירת וידאו חדש, עריכה והארכה של קטעי וידאו קיימים. השתמשו בקובצי הייחוס להעברת מראה, תנועה, שפת מצלמה וקול, ואז ציינו באילו חלקי הסצנה הם אמורים לשלוט.</p><p>אפשר לספק טקסט לבדו. השילובים הרב־מודאליים המתועדים מאפשרים גם תמונות או וידאו עם טקסט אופציונלי, תמונות עם שמע, וידאו עם שמע ותמונות, וידאו ושמע יחד. לכן בשילובים המנויים האלה השמע מלווה מדיה חזותית; הוא אינו מתואר כבקשה עצמאית משמע לווידאו. כתבו בבירור את התוצאה המיועדת גם כשהטקסט אופציונלי, כדי שתפקיד כל קובץ ייחוס יהיה מפורש ולא יוסק מנכסים לא קשורים.</p><p>מערך content מבחין בין פריטי text, image_url, video_url ו-audio_url. קובצי ייחוס רב־מודאליים משתמשים בתפקידים כמו reference_image, reference_video ו-reference_audio. תמונה יכולה להגדיר את האדם, האובייקט, המיקום או המראה. וידאו יכול להדגים ביצוע, תנועה או מבט מצלמה, ושמע יכול לבסס רצועה או תזמון. ציינו את ההקצאה בהנחיות: שמרו את נושא הצילום מהתמונה, עקבו אחר מבט המצלמה בווידאו והשתמשו בשמע כרקע. אל תבקשו מכל קובץ ייחוס להגדיר את כל התכונות בבת אחת.</p><p>דוגמת הפרסום המתועדת משלבת שתי תמונות מוצר עם וידאו וקובץ שמע לייחוס. היא מתארת מבט פתיחה, רצף פעולה, פרט מוצר מקרוב וקומפוזיציה סוגרת, תוך שמירה על עקביות קול הרקע. אותו מבנה יכול לארגן תצוגה קצרה: בססו את האובייקט, הדגימו פעולה אחת וסיימו במאפיין המזוהה שלו. לעריכה, זהו את קטעי המקור ואת הרכיב שצריך להשתנות; להארכה, הסבירו איזו פעולה ממשיכה מעבר לסצנה הקיימת תוך שמירה על נושא הצילום ועל כיוון התנועה.</p><p>פרופיל 2.0 מתעד משך בשניות שלמות מארבע עד חמש עשרה, או -1 למשך שנבחר אוטומטית בטווח הזה. ברירת המחדל היא חמש שניות. אפשרויות הרזולוציה הן 480p ו-720p, כש-720p היא ברירת המחדל; 1080p אינה זמינה עבור 2.0. יחסי הממדים הקבועים כוללים 16:9, 4:3, 1:1, 3:4, 9:16 ו-21:9. יחס adaptive יכול לבחור מסגור מהפרומפט או מקובץ הייחוס: עבודה עם פריים ראשון עוקבת אחר תמונת הפתיחה, ועבודה רב־מודאלית משתמשת בסצנה המיועדת או במדיה הרלוונטית הראשונה, כשווידאו קודם לתמונות. בדקו בתוצאת המשימה את היחס והמשך בפועל.</p><p>קול שנוצר נשלט בנפרד ממדיית הייחוס. generate_audio=true מבקש קולות, אפקטים ומוזיקת רקע מסונכרנים לפי הטקסט והתוכן החזותי; false מבקש וידאו ללא קול. ברירת המחדל המתועדת היא true, ומומלץ לשים דיאלוג במירכאות עבור דיבור. ציינו מי מדבר וכיצד הקול קשור לפעולה הגלויה, ואז בדקו את הניסוח, שיוך הקולות והתזמון בפועל. אספקת קובץ שמע לייחוס והפעלת קול שנוצר הן בחירות נפרדות בבקשה.</p><p>מדריך 2.0 שולל את הבקרות הישנות frames ו-camera_fixed ואינו תומך בעיבוד flex לא מקוון. השתמשו בשדה duration ותארו את תנועת המצלמה בסצנה עצמה. seed וסימן מים נשארים בקרות מתועדות; המדריך אומר שאותה בקשה ואותו seed יכולים להפיק תוצאות דומות, בלי להבטיח זהות מדויקת. הימנעו מהתייחסות ל-seed כהוכחה לשחזור, או לבקשה חוזרת כאל קליפ שכבר נבדק.</p><p>השימוש בטוקני וידאו מחושב כך: (משך וידאו הקלט + משך וידאו הפלט) × רוחב הפלט × גובה הפלט × קצב הפריימים של הפלט / 1024. לבקשות הכוללות וידאו קלט ולבקשות ללא וידאו קלט יש קטגוריות חיוב נפרדות. שאילתת המשימה מדווחת usage.completion_tokens ו-usage.total_tokens; שמרו את הכמויות המדווחות האלה עם הקליפ שהושלם.</p><p>תהליך העבודה אסינכרוני: השליחה מחזירה מזהה משימה, והמשימה שהושלמה מספקת content.video_url יחד עם משך, רזולוציה, יחס, קצב פריימים ושימוש בטוקנים שדווחו. שמרו את המזהה ושמרו את הווידאו שהושלם עם קובצי הייחוס והפרומפט המקוריים. ברירת המחדל של שדה הפקיעה היא 172800 שניות, והוא מקבל 3600–259200 שניות מיצירת המשימה; משימה החורגת מהפרק הזה עוברת לסטטוס פג תוקף. בדקו את הפלט כולו, לרבות נקודת החיבור של העריכה או ההמשך, מבחינת מראה הדמות, פרטי האובייקט, היחסים במרחב, רציפות המצלמה ותזמון הקול מול התמונה.</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>video</code>, <code>audio</code></dd></div><div><dt>סוגי פלט</dt><dd><code>video</code></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>doubao-seedance-2-0-260128</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\">content</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>תנאים: אובייקטי טקסט ומדיה בפורמט המקורי; המערך החיצוני חייב להיות לא ריק. הבנאי הכללי הזה של Ailoot אינו מאמת את הטיפוסים של הצמתים המקוננים.</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>תנאים: צליל מסונכרן המוטמע בווידאו.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>true</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–15 או -1; משך הפלט בפועל מוחזר בתוצאה.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>⁦5⁩</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><div>תנאים: מצוין במפורש ש־1080p אינו נתמך ב־2.0/fast.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>720p</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\">ratio</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>16:9, 4:3, 1:1, 3:4, 9:16, 21:9, adaptive</div><div>תנאים: התאמה אוטומטית מתועדת במפורש עבור 2.0/fast/1.5; הדוגמה של 2.5 משתמשת רק ב־16:9.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>adaptive</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\">watermark</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></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>false</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>מינימום: ⁦‎-1⁩</div><div>מקסימום: ⁦4,294,967,295⁩</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>⁦‎-1⁩</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\">execution_expires_after</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>מינימום: ⁦3,600⁩</div><div>מקסימום: ⁦259,200⁩</div><div>יחידה: שניות</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>⁦172,800⁩</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\">service_tier</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>default</div><div>תנאים: 2.0/fast אינם מאפשרים flex לא מקוון; היקף התמיכה ב־2.5 לא הוכח.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>default</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\">safety_identifier</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\">tools</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><div>תנאים: רק 2.0/fast; הערך המתועד הוא type=web_search.</div></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></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></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>content, model</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>generate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier, tools</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, video, 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>true</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>validation_scope</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>Ailoot בודקת את הטיפוסים של שדות החובה ושמערך model/content אינו ריק. יתר שדות הבקשה נשמרים עבור המודל שנבחר.</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>material_combinations</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text, image, video, image, audio, image, video, video, audio, image, video, audio</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional_text_with_media</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>true</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>reference_media_count_and_size_limits</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>null</td></tr></tbody></table></div><p>כינויים לשיטה: <code>/v1/videos/generations</code></p><p>מחזור חיים: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">יש ליצור פעם אחת ולשמור את id/polling_url הציבוריים שהוחזרו.</p><p class=\"note-s\">יש לבדוק במחזוריות את המשימה המקורית; יש להוריד את content.video_url הממשי שבבעלותכם לאחר succeeded.</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>מצב Flex</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></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><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><div><span>פלט · אומדן להשוואה בלבד</span> <b>$0.0096</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><div><span>פלט · אומדן להשוואה בלבד</span> <b>$0.015768</b> <span class=\"price-unit\">לכל 1K טוקני וידאו</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>עלות יצירה משוערת</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>אומדן ליצירה אחת</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>—</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · עלות יצירה משוערת · אומדן להשוואה בלבד</span> <b>$0.822402</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/he/billing/reserve/\">איך פועלים שריון הסכום והסדרת החיוב →</a></p></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-2779-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2779-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · צרו סרטון</button><button class=\"cg-tab\" id=\"model-code-2779-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2779-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · קראו את המשימה המקורית</button><button class=\"cg-tab\" id=\"model-code-2779-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2779-panel-2\" aria-selected=\"false\" tabindex=\"-1\">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-2779-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2779-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON_REQUEST&#39;\n{&quot;model&quot;:&quot;doubao-seedance-2-0-260128&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动&quot;}]}\nJSON_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\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2779-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2779-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_POLL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\ni=r.get(&quot;id&quot;)\nif not isinstance(i,str) or not i.startswith(&quot;native302_&quot;):raise SystemExit(&quot;Keep original response/headers/id; do not resubmit creation.&quot;)\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r.get(&quot;polling_url&quot;) or &quot;/v1/videos/&quot;+quote(i,safe=&quot;&quot;))\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/videos/&quot;):raise SystemExit(&quot;Use actual Ailoot lookup path.&quot;)\nPath(&quot;poll-url.txt&quot;).write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error &quot;$(cat poll-url.txt)&quot; -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2779-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2779-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nif r.get(&quot;status&quot;)!=&quot;succeeded&quot;:raise SystemExit(&quot;Poll same original job until an owned result is returned.&quot;)\nu=r.get(&quot;content&quot;,{}).get(&quot;video_url&quot;)\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(&quot;No completed video URL.&quot;)\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(&quot;Invalid returned URL.&quot;)\n    p=urlsplit(u)\n    if p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/media/assets/&quot;) or not p.path.endswith(&quot;/content&quot;) or not p.query:raise SystemExit(&quot;Wait for actual Ailoot-owned signed result.&quot;)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; -o &quot;video-${index}.bin&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\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\">JSON בפורמט המקורי עם id/polling_url ציבוריים. לאחר הפרסום, content.video_url מכיל כתובות URL חתומות בבעלות Ailoot; לפני הפרסום, כתובות ה־URL של הפלטים שנבחרו מרוקנות.</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/videos/generations/{request_id}/content</code></li></ul><div class=\"card-result-process\" data-all-results><h5>שמירת כל התוצאות שהושלמו</h5><p class=\"note-s\">שמרו כל וידאו שהושלם או קובץ שהוחזר; אחזרו כל נכס מכל URL שהוחזר בפועל.</p><p class=\"note-s\">יש לשמור כל כתובת URL ממשית ב־content.video_url; האינדקס חייב לזהות פלט ממשי שהוחזר.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">יש לשמור את התגובה המקורית, הכותרות והמזהה ולבדוק במחזוריות את הפעולה הזו; אין לשלוח שוב בקשת יצירה שמצבה אינו ידוע.</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></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string when supplied</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">content.video_url</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string|string[]</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>object when supplied</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>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>JSON/model, טיפוסים של שדות חובה או אינדקס תוכן לא תקפים.</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>⁦401⁩ · <code>authentication_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>מפתח API לא תקף של Ailoot.</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>⁦404⁩ · <code>not_found_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></td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦502⁩ · <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>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></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=doubao-seedance-2-0-260128&amp;route=Ultra&amp;caller=doubao-seedance-2-0-260128&amp;fmt=videos\"><code>doubao-seedance-2-0-260128</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=doubao-seedance-2-0-260128&amp;route=Ultra&amp;caller=doubao-seedance-2-0-260128&amp;fmt=videos\"><code>doubao-seedance-2-0-260128</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "doubao-seedance-2-0-260128",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "doubao-seedance-2-0-260128",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|doubao-seedance-2-0-260128",
      "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": {
            "errors": [
              {
                "condition": "JSON/model, טיפוסים של שדות חובה או אינדקס תוכן לא תקפים.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "מפתח API לא תקף של Ailoot.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "המשימה או הפלט חסרים או אינם בבעלות אותו משתמש, מפתח API וקבוצה.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "השליחה או הסטטוס המקוריים אינם שלמים; יש לשמור את המזהה המקורי ולא לשלוח שוב.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "המדיה, הנתיב או השלמת החיוב המקוריים נבדקים; יש להמשיך את הפעולה המקורית.",
                "http_status": 503,
                "type": "result_pending_check"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "succeeded"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed",
                "expired"
              ],
              "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "יש לשמור את התגובה המקורית, הכותרות והמזהה ולבדוק במחזוריות את הפעולה הזו; אין לשלוח שוב בקשת יצירה שמצבה אינו ידוע.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video",
              "multimodal_reference",
              "video_edit_via_content",
              "video_extend_via_content"
            ],
            "outputs": {
              "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
              "all_results": "יש לשמור כל כתובת URL ממשית ב־content.video_url; האינדקס חייב לזהות פלט ממשי שהוחזר.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string when supplied"
                },
                {
                  "description": null,
                  "name": "content.video_url",
                  "type": "string|string[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "JSON בפורמט המקורי עם id/polling_url ציבוריים. לאחר הפרסום, content.video_url מכיל כתובות URL חתומות בבעלות Ailoot; לפני הפרסום, כתובות ה־URL של הפלטים שנבחרו מרוקנות."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "doubao-seedance-2-0-260128"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "אובייקטי טקסט ומדיה בפורמט המקורי; המערך החיצוני חייב להיות לא ריק. הבנאי הכללי הזה של Ailoot אינו מאמת את הטיפוסים של הצמתים המקוננים.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "content",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "צליל מסונכרן המוטמע בווידאו.",
                "default": true,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "generate_audio",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "מספר שלם 4–15 או -1; משך הפלט בפועל מוחזר בתוצאה.",
                "default": 5,
                "default_known": true,
                "documented_values": [
                  -1,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum": null,
                "enum_known": false,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "מצוין במפורש ש־1080p אינו נתמך ב־2.0/fast.",
                "default": "720p",
                "default_known": true,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "התאמה אוטומטית מתועדת במפורש עבור 2.0/fast/1.5; הדוגמה של 2.5 משתמשת רק ב־16:9.",
                "default": "adaptive",
                "default_known": true,
                "enum": [
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16",
                  "21:9",
                  "adaptive"
                ],
                "enum_known": true,
                "name": "ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "watermark",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": -1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 4294967295,
                "minimum": -1,
                "name": "seed",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": 172800,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 259200,
                "minimum": 3600,
                "name": "execution_expires_after",
                "required": false,
                "type": "integer",
                "unit": "שניות"
              },
              {
                "availability": "source_interface",
                "conditions": "2.0/fast אינם מאפשרים flex לא מקוון; היקף התמיכה ב־2.5 לא הוכח.",
                "default": "default",
                "default_known": true,
                "enum": [
                  "default"
                ],
                "enum_known": true,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 64,
                "name": "safety_identifier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "רק 2.0/fast; הערך המתועד הוא type=web_search.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "properties": {
                  "type": {
                    "enum": [
                      "web_search"
                    ],
                    "type": "string"
                  }
                },
                "required": false,
                "required_properties": [
                  "type"
                ],
                "type": "object"
              }
            ],
            "profile_binding": "Exact model ID and documented Ailoot video interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "content": {
                  "items": {
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "duration": {
                  "type": "integer"
                },
                "execution_expires_after": {
                  "maximum": 259200,
                  "minimum": 3600,
                  "type": "integer"
                },
                "generate_audio": {
                  "type": "boolean"
                },
                "model": {
                  "const": "doubao-seedance-2-0-260128",
                  "type": "string"
                },
                "ratio": {
                  "enum": [
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16",
                    "21:9",
                    "adaptive"
                  ],
                  "type": "string"
                },
                "resolution": {
                  "enum": [
                    "480p",
                    "720p"
                  ],
                  "type": "string"
                },
                "safety_identifier": {
                  "maxLength": 64,
                  "type": "string"
                },
                "seed": {
                  "maximum": 4294967295,
                  "minimum": -1,
                  "type": "integer"
                },
                "service_tier": {
                  "enum": [
                    "default"
                  ],
                  "type": "string"
                },
                "tools": {
                  "type": "object"
                },
                "watermark": {
                  "type": "boolean"
                }
              },
              "required": [
                "content",
                "model"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "Shared content.items.required demands image_url+role even for published text nodes; intended combinations/examples and actual outer-array validation remain distinct.",
              "return_last_frame and callback_url exist upstream but current output ownership selects content.video_url only. No owned last-frame/callback contract is asserted."
            ],
            "unsupported": [
              "Separate cancel/delete for this generic method",
              "Separate edit/extension endpoint for this method"
            ]
          },
          "hints": [
            "יש ליצור פעם אחת ולשמור את id/polling_url הציבוריים שהוחזרו.",
            "יש לבדוק במחזוריות את המשימה המקורית; יש להוריד את content.video_url הממשי שבבעלותכם לאחר succeeded."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "material_types": [
              "text",
              "image",
              "video",
              "audio"
            ],
            "optional": [
              "generate_audio",
              "duration",
              "resolution",
              "ratio",
              "watermark",
              "seed",
              "execution_expires_after",
              "service_tier",
              "safety_identifier",
              "tools"
            ],
            "optional_text_with_media": true,
            "reference_media_count_and_size_limits": null,
            "required": [
              "content",
              "model"
            ],
            "validation_scope": "Ailoot בודקת את הטיפוסים של שדות החובה ושמערך model/content אינו ריק. יתר שדות הבקשה נשמרים עבור המודל שנבחר."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "succeeded"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed",
              "expired"
            ],
            "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Preserve original response/headers/id and poll that operation; never resubmit unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text",
              "image",
              "video",
              "audio"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video",
            "multimodal_reference",
            "video_edit_via_content",
            "video_extend_via_content"
          ],
          "output": {
            "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
            "all_results": "Retain every actual URL in content.video_url; index must identify a real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": null,
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": null,
                "name": "status",
                "type": "string when supplied"
              },
              {
                "description": null,
                "name": "content.video_url",
                "type": "string|string[]"
              },
              {
                "description": null,
                "name": "usage",
                "type": "object when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "Native JSON with public id/polling_url. After publication content.video_url contains Ailoot-owned signed URL(s); before publication selected output URLs are blanked."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "הקלט כולל וידאו לייחוס.",
            "units": [
              {
                "amount": "0.0096000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000096",
                "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_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "הקלט אינו כולל וידאו לייחוס.",
            "units": [
              {
                "amount": "0.015768000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000015768",
                "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_output_token"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "0.822402",
                "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.822402",
                "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}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"doubao-seedance-2-0-260128\",\"content\":[{\"type\":\"text\",\"text\":\"女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动\"}]}\nJSON_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\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i.startswith(\"native302_\"):raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"status\")!=\"succeeded\":raise SystemExit(\"Poll same original job until an owned result is returned.\")\nu=r.get(\"content\",{}).get(\"video_url\")\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(\"No completed video URL.\")\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n    p=urlsplit(u)\n    if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for actual Ailoot-owned signed result.\")\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain returned public id/polling_url.",
          "Poll the original job; download actual owned content.video_url after succeeded."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "video",
          "audio"
        ],
        "label": "וידאו",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "Input contains video.",
            "units": [
              {
                "amount": "0.0096000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000096",
                "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_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "Input contains no video.",
            "units": [
              {
                "amount": "0.015768000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000015768",
                "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_output_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.822402",
                "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.822402",
                "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": "doubao-seedance-2-0-260128",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_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.0096000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_with_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000096",
            "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_output_token"
          },
          {
            "amount": "0.015768000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_without_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.000015768",
            "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_output_token"
          },
          {
            "amount": "0.822402",
            "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.822402",
            "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": "doubao-seedance-2-0-260128",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "1f2fd20a50f26ea228f30504033a5decb8f6340f5eed6ba01ec5216a45d92af1",
    "input_html_sha256": "c4c33a2f0bbb02dad472555100e04dd7f99243ec05c2a25d8888f94af34cdf86",
    "private_audit_sha256": "94179cdbd12aff527f5e35f4c85650026fb392b7bf742db182499e4d78314220",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/doubao-seedance-2-0-260128/",
    "description": "Seedance 2.0 יוצר ועורך וידאו באמצעות טקסט, תמונות וקובצי ייחוס של וידאו ושמע. הוא יכול להמשיך קטעי וידאו קיימים וליצור קול מסונכרן, עם משך של 4–15 שניות, פלט 480p או 720p ותפקידי ייחוס מפורשים.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/doubao-seedance-2-0-260128/index.md",
    "title": "ByteDance: Seedance 2.0 — Ailoot",
    "url": "https://ailoot.ai/models/he/doubao-seedance-2-0-260128/"
  },
  "rawModel": {
    "about": "Seedance 2.0 יוצר וידאו מסצנה כתובה או משילוב של תמונות וקובצי ייחוס של וידאו ושמע. המזהה המדויק doubao-seedance-2-0-260128 מזהה את פרופיל 2.0 הרגיל. תהליכי העבודה המתועדים כוללים יצירת וידאו חדש, עריכה והארכה של קטעי וידאו קיימים. השתמשו בקובצי הייחוס להעברת מראה, תנועה, שפת מצלמה וקול, ואז ציינו באילו חלקי הסצנה הם אמורים לשלוט.\n\nאפשר לספק טקסט לבדו. השילובים הרב־מודאליים המתועדים מאפשרים גם תמונות או וידאו עם טקסט אופציונלי, תמונות עם שמע, וידאו עם שמע ותמונות, וידאו ושמע יחד. לכן בשילובים המנויים האלה השמע מלווה מדיה חזותית; הוא אינו מתואר כבקשה עצמאית משמע לווידאו. כתבו בבירור את התוצאה המיועדת גם כשהטקסט אופציונלי, כדי שתפקיד כל קובץ ייחוס יהיה מפורש ולא יוסק מנכסים לא קשורים.\n\nמערך content מבחין בין פריטי text, image_url, video_url ו-audio_url. קובצי ייחוס רב־מודאליים משתמשים בתפקידים כמו reference_image, reference_video ו-reference_audio. תמונה יכולה להגדיר את האדם, האובייקט, המיקום או המראה. וידאו יכול להדגים ביצוע, תנועה או מבט מצלמה, ושמע יכול לבסס רצועה או תזמון. ציינו את ההקצאה בהנחיות: שמרו את נושא הצילום מהתמונה, עקבו אחר מבט המצלמה בווידאו והשתמשו בשמע כרקע. אל תבקשו מכל קובץ ייחוס להגדיר את כל התכונות בבת אחת.\n\nדוגמת הפרסום המתועדת משלבת שתי תמונות מוצר עם וידאו וקובץ שמע לייחוס. היא מתארת מבט פתיחה, רצף פעולה, פרט מוצר מקרוב וקומפוזיציה סוגרת, תוך שמירה על עקביות קול הרקע. אותו מבנה יכול לארגן תצוגה קצרה: בססו את האובייקט, הדגימו פעולה אחת וסיימו במאפיין המזוהה שלו. לעריכה, זהו את קטעי המקור ואת הרכיב שצריך להשתנות; להארכה, הסבירו איזו פעולה ממשיכה מעבר לסצנה הקיימת תוך שמירה על נושא הצילום ועל כיוון התנועה.\n\nפרופיל 2.0 מתעד משך בשניות שלמות מארבע עד חמש עשרה, או -1 למשך שנבחר אוטומטית בטווח הזה. ברירת המחדל היא חמש שניות. אפשרויות הרזולוציה הן 480p ו-720p, כש-720p היא ברירת המחדל; 1080p אינה זמינה עבור 2.0. יחסי הממדים הקבועים כוללים 16:9, 4:3, 1:1, 3:4, 9:16 ו-21:9. יחס adaptive יכול לבחור מסגור מהפרומפט או מקובץ הייחוס: עבודה עם פריים ראשון עוקבת אחר תמונת הפתיחה, ועבודה רב־מודאלית משתמשת בסצנה המיועדת או במדיה הרלוונטית הראשונה, כשווידאו קודם לתמונות. בדקו בתוצאת המשימה את היחס והמשך בפועל.\n\nקול שנוצר נשלט בנפרד ממדיית הייחוס. generate_audio=true מבקש קולות, אפקטים ומוזיקת רקע מסונכרנים לפי הטקסט והתוכן החזותי; false מבקש וידאו ללא קול. ברירת המחדל המתועדת היא true, ומומלץ לשים דיאלוג במירכאות עבור דיבור. ציינו מי מדבר וכיצד הקול קשור לפעולה הגלויה, ואז בדקו את הניסוח, שיוך הקולות והתזמון בפועל. אספקת קובץ שמע לייחוס והפעלת קול שנוצר הן בחירות נפרדות בבקשה.\n\nמדריך 2.0 שולל את הבקרות הישנות frames ו-camera_fixed ואינו תומך בעיבוד flex לא מקוון. השתמשו בשדה duration ותארו את תנועת המצלמה בסצנה עצמה. seed וסימן מים נשארים בקרות מתועדות; המדריך אומר שאותה בקשה ואותו seed יכולים להפיק תוצאות דומות, בלי להבטיח זהות מדויקת. הימנעו מהתייחסות ל-seed כהוכחה לשחזור, או לבקשה חוזרת כאל קליפ שכבר נבדק.\n\nהשימוש בטוקני וידאו מחושב כך: (משך וידאו הקלט + משך וידאו הפלט) × רוחב הפלט × גובה הפלט × קצב הפריימים של הפלט / 1024. לבקשות הכוללות וידאו קלט ולבקשות ללא וידאו קלט יש קטגוריות חיוב נפרדות. שאילתת המשימה מדווחת usage.completion_tokens ו-usage.total_tokens; שמרו את הכמויות המדווחות האלה עם הקליפ שהושלם.\n\nתהליך העבודה אסינכרוני: השליחה מחזירה מזהה משימה, והמשימה שהושלמה מספקת content.video_url יחד עם משך, רזולוציה, יחס, קצב פריימים ושימוש בטוקנים שדווחו. שמרו את המזהה ושמרו את הווידאו שהושלם עם קובצי הייחוס והפרומפט המקוריים. ברירת המחדל של שדה הפקיעה היא 172800 שניות, והוא מקבל 3600–259200 שניות מיצירת המשימה; משימה החורגת מהפרק הזה עוברת לסטטוס פג תוקף. בדקו את הפלט כולו, לרבות נקודת החיבור של העריכה או ההמשך, מבחינת מראה הדמות, פרטי האובייקט, היחסים במרחב, רציפות המצלמה ותזמון הקול מול התמונה.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.822402",
            "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.822402",
            "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,
    "display_name": "ByteDance: Seedance 2.0",
    "formats": [
      "videos"
    ],
    "id": "doubao-seedance-2-0-260128",
    "input": [
      "text",
      "image",
      "video",
      "audio"
    ],
    "kind": "video",
    "locale": "en",
    "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": {
            "errors": [
              {
                "condition": "JSON/model, טיפוסים של שדות חובה או אינדקס תוכן לא תקפים.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "מפתח API לא תקף של Ailoot.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "המשימה או הפלט חסרים או אינם בבעלות אותו משתמש, מפתח API וקבוצה.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "השליחה או הסטטוס המקוריים אינם שלמים; יש לשמור את המזהה המקורי ולא לשלוח שוב.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "המדיה, הנתיב או השלמת החיוב המקוריים נבדקים; יש להמשיך את הפעולה המקורית.",
                "http_status": 503,
                "type": "result_pending_check"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "succeeded"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed",
                "expired"
              ],
              "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "יש לשמור את התגובה המקורית, הכותרות והמזהה ולבדוק במחזוריות את הפעולה הזו; אין לשלוח שוב בקשת יצירה שמצבה אינו ידוע.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video",
              "multimodal_reference",
              "video_edit_via_content",
              "video_extend_via_content"
            ],
            "outputs": {
              "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
              "all_results": "יש לשמור כל כתובת URL ממשית ב־content.video_url; האינדקס חייב לזהות פלט ממשי שהוחזר.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string when supplied"
                },
                {
                  "description": null,
                  "name": "content.video_url",
                  "type": "string|string[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "JSON בפורמט המקורי עם id/polling_url ציבוריים. לאחר הפרסום, content.video_url מכיל כתובות URL חתומות בבעלות Ailoot; לפני הפרסום, כתובות ה־URL של הפלטים שנבחרו מרוקנות."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "doubao-seedance-2-0-260128"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "אובייקטי טקסט ומדיה בפורמט המקורי; המערך החיצוני חייב להיות לא ריק. הבנאי הכללי הזה של Ailoot אינו מאמת את הטיפוסים של הצמתים המקוננים.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "content",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "צליל מסונכרן המוטמע בווידאו.",
                "default": true,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "generate_audio",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "מספר שלם 4–15 או -1; משך הפלט בפועל מוחזר בתוצאה.",
                "default": 5,
                "default_known": true,
                "documented_values": [
                  -1,
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12,
                  13,
                  14,
                  15
                ],
                "enum": null,
                "enum_known": false,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "מצוין במפורש ש־1080p אינו נתמך ב־2.0/fast.",
                "default": "720p",
                "default_known": true,
                "enum": [
                  "480p",
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "התאמה אוטומטית מתועדת במפורש עבור 2.0/fast/1.5; הדוגמה של 2.5 משתמשת רק ב־16:9.",
                "default": "adaptive",
                "default_known": true,
                "enum": [
                  "16:9",
                  "4:3",
                  "1:1",
                  "3:4",
                  "9:16",
                  "21:9",
                  "adaptive"
                ],
                "enum_known": true,
                "name": "ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "watermark",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": -1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 4294967295,
                "minimum": -1,
                "name": "seed",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": 172800,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 259200,
                "minimum": 3600,
                "name": "execution_expires_after",
                "required": false,
                "type": "integer",
                "unit": "שניות"
              },
              {
                "availability": "source_interface",
                "conditions": "2.0/fast אינם מאפשרים flex לא מקוון; היקף התמיכה ב־2.5 לא הוכח.",
                "default": "default",
                "default_known": true,
                "enum": [
                  "default"
                ],
                "enum_known": true,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 64,
                "name": "safety_identifier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "רק 2.0/fast; הערך המתועד הוא type=web_search.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "tools",
                "properties": {
                  "type": {
                    "enum": [
                      "web_search"
                    ],
                    "type": "string"
                  }
                },
                "required": false,
                "required_properties": [
                  "type"
                ],
                "type": "object"
              }
            ],
            "profile_binding": "Exact model ID and documented Ailoot video interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "content": {
                  "items": {
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "duration": {
                  "type": "integer"
                },
                "execution_expires_after": {
                  "maximum": 259200,
                  "minimum": 3600,
                  "type": "integer"
                },
                "generate_audio": {
                  "type": "boolean"
                },
                "model": {
                  "const": "doubao-seedance-2-0-260128",
                  "type": "string"
                },
                "ratio": {
                  "enum": [
                    "16:9",
                    "4:3",
                    "1:1",
                    "3:4",
                    "9:16",
                    "21:9",
                    "adaptive"
                  ],
                  "type": "string"
                },
                "resolution": {
                  "enum": [
                    "480p",
                    "720p"
                  ],
                  "type": "string"
                },
                "safety_identifier": {
                  "maxLength": 64,
                  "type": "string"
                },
                "seed": {
                  "maximum": 4294967295,
                  "minimum": -1,
                  "type": "integer"
                },
                "service_tier": {
                  "enum": [
                    "default"
                  ],
                  "type": "string"
                },
                "tools": {
                  "type": "object"
                },
                "watermark": {
                  "type": "boolean"
                }
              },
              "required": [
                "content",
                "model"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "Shared content.items.required demands image_url+role even for published text nodes; intended combinations/examples and actual outer-array validation remain distinct.",
              "return_last_frame and callback_url exist upstream but current output ownership selects content.video_url only. No owned last-frame/callback contract is asserted."
            ],
            "unsupported": [
              "Separate cancel/delete for this generic method",
              "Separate edit/extension endpoint for this method"
            ]
          },
          "hints": [
            "יש ליצור פעם אחת ולשמור את id/polling_url הציבוריים שהוחזרו.",
            "יש לבדוק במחזוריות את המשימה המקורית; יש להוריד את content.video_url הממשי שבבעלותכם לאחר succeeded."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "material_types": [
              "text",
              "image",
              "video",
              "audio"
            ],
            "optional": [
              "generate_audio",
              "duration",
              "resolution",
              "ratio",
              "watermark",
              "seed",
              "execution_expires_after",
              "service_tier",
              "safety_identifier",
              "tools"
            ],
            "optional_text_with_media": true,
            "reference_media_count_and_size_limits": null,
            "required": [
              "content",
              "model"
            ],
            "validation_scope": "Ailoot בודקת את הטיפוסים של שדות החובה ושמערך model/content אינו ריק. יתר שדות הבקשה נשמרים עבור המודל שנבחר."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "succeeded"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed",
              "expired"
            ],
            "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Preserve original response/headers/id and poll that operation; never resubmit unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text",
              "image",
              "video",
              "audio"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video",
            "multimodal_reference",
            "video_edit_via_content",
            "video_extend_via_content"
          ],
          "output": {
            "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
            "all_results": "Retain every actual URL in content.video_url; index must identify a real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": null,
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": null,
                "name": "status",
                "type": "string when supplied"
              },
              {
                "description": null,
                "name": "content.video_url",
                "type": "string|string[]"
              },
              {
                "description": null,
                "name": "usage",
                "type": "object when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "Native JSON with public id/polling_url. After publication content.video_url contains Ailoot-owned signed URL(s); before publication selected output URLs are blanked."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "הקלט כולל וידאו לייחוס.",
            "units": [
              {
                "amount": "0.0096000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000096",
                "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_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "הקלט אינו כולל וידאו לייחוס.",
            "units": [
              {
                "amount": "0.015768000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000015768",
                "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_output_token"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "0.822402",
                "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.822402",
                "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}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"doubao-seedance-2-0-260128\",\"content\":[{\"type\":\"text\",\"text\":\"女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动\"}]}\nJSON_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\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i.startswith(\"native302_\"):raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"status\")!=\"succeeded\":raise SystemExit(\"Poll same original job until an owned result is returned.\")\nu=r.get(\"content\",{}).get(\"video_url\")\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(\"No completed video URL.\")\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n    p=urlsplit(u)\n    if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for actual Ailoot-owned signed result.\")\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain returned public id/polling_url.",
          "Poll the original job; download actual owned content.video_url after succeeded."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "video",
          "audio"
        ],
        "label": "וידאו",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "Input contains video.",
            "units": [
              {
                "amount": "0.0096000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.0000096",
                "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_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "Input contains no video.",
            "units": [
              {
                "amount": "0.015768000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000015768",
                "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_output_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.822402",
                "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.822402",
                "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": "doubao-seedance-2-0-260128",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_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.0096000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_with_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.0000096",
            "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_output_token"
          },
          {
            "amount": "0.015768000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_without_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.000015768",
            "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_output_token"
          },
          {
            "amount": "0.822402",
            "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.822402",
            "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": "doubao-seedance-2-0-260128",
        "request_model_id": "doubao-seedance-2-0-260128",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 2.0",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.822402,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.822402,
      "varies": false
    },
    "short": "Seedance 2.0 יוצר ועורך וידאו באמצעות טקסט, תמונות וקובצי ייחוס של וידאו ושמע. הוא יכול להמשיך קטעי וידאו קיימים וליצור קול מסונכרן, עם משך של 4–15 שניות, פלט 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 יוצר ועורך וידאו באמצעות טקסט, תמונות וקובצי ייחוס של וידאו ושמע. הוא יכול להמשיך קטעי וידאו קיימים וליצור קול מסונכרן, עם משך של 4–15 שניות, פלט 480p או 720p ותפקידי ייחוס מפורשים.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "477b7e5feee340db6bc46c2f2912d0cd569d8b4066ef2ad34cca993ebea6e8c8",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "a76847750160d8201ae8dbdc2b7a09e84dc09ea86285aec45e299147e828bc7c"
}
