{
  "aboutHtml": "<p>Seedance 1.5 Pro הוא המודל של ByteDance Seed ליצירה מקורית משותפת של שמע ווידאו. הוא ממדל יחד פעולה חזותית, דיבור וקצב, ומאפשר לסצנה לכלול ביצוע דמות, דיאלוג מסונכרן ונוף צליל מתוכנן. ההבדל המרכזי מבריף וידאו חזותי בלבד הוא שהצליל נעשה חלק מתיאור הסצנה: מי מדבר, כיצד השורה מוגשת ומה הקהל שומע סביב הפעולה.</p><h4>יצירת שמע ותמונה משותפת</h4><p>טווח הצלילים המתועד כולל צלילי סביבה, אפקטי פעולה, צלילים מסונתזים, כלי נגינה, מוזיקת רקע ושירה. המודל נועד לחבר צליל למה שקורה על המסך: חפץ המכה בשולחן, דלת הנפתחת או דמות המדברת. השתמשו בכך לרגע דרמטי קצר, לפרסומת מוצר מדובבת או לסצנה שאווירתה תלויה בביצוע ובצליל כאחד.</p><p>התחילו את ההנחיה בנושא ובתנועה, ואז הוסיפו סביבה, מצלמה, סגנון חזותי וצליל. סצנה תמציתית יכולה להיות: ״שף מרים מכסה מסיר קטן, מחייך ואומר, &#39;זה מוכן.&#39; ענן אדים רך נפלט, ואחריו צלצול שקט של המכסה המונח על הדלפק.״ כך מקבלים השורה המדוברת והאפקטים סיבה נראית לעין.</p><h4>דיאלוג וקריינות</h4><p>המודל תומך במונולוגים ובשיחות הכוללות כמה דוברים, עם תנועות שפתיים התואמות לדמויות. המדריך שלו מתעד מנדרינית, ניבים סיניים ובהם קנטונזית, שאאנשי וסצ&#39;ואן, וכן אנגלית, יפנית, קוריאנית, ספרדית ואינדונזית מדוברות. שפות ההנחיה המתועדות הן סינית ואנגלית; שפת ההנחיה והשפה המתבקשת לשורה המדוברת הן בחירות נפרדות.</p><p>זהו כל דובר לפי מאפיין נראה עקבי וכתבו את השורות במירכאות. כללו הוראות הגשה כגון קול רגוע, תשובה מהססת או קצב מהיר יותר, והבהירו את חילופי התורים. בשני דוברים, תארו מי מדבר ראשון ואת תגובתו של מי המצלמה מציגה. חילופי דברים קצרים המתאימים לקטע שנבחר נותנים למודל יעד ביצוע ברור יותר מקטע ארוך ללא דוברים מוגדרים.</p><p>אפשר להנחות קריינות באמצעות גוון קול, רגש, אינטונציה וקצב דיבור. היא שימושית כשהקול צריך להסביר מוצר בזמן שהמצלמה נשארת עליו, או כאשר קריין קובע את האווירה בלי דובר על המסך. המדריך מתאר שימור גוון מזוהה תוך שינוי ההגשה; בדקו את הנוסח, ההגייה והביצוע בפועל יחד עם התמונה.</p><h4>אפקטי צליל ומוזיקת רקע</h4><p>תארו אפקטים כאירועים הקשורים לפעולה: צעדים בעת כניסת דמות, גשם המתחזק מחוץ לחלון או תנועת בד בעת לבישת מעיל. מוזיקת רקע נוצרת בהתאמה להנחיה כברירת מחדל. ציינו את האווירה, הסגנון והמקצב שלה כאשר הם חשובים, וציינו מתי עליה להתחיל או לדעוך ביחס לסצנה.</p><p>בהדגמה שקטה, בקשו מוזיקה מאופקת והדגישו צלילי טיפול במוצר. בסצנת אנימציה, תארו את רגע הפעולה שצריך לחפוף למקצב המוזיקלי. הפסקול שנוצר הוא מונו. בקרת השמע המתועדת מאפשרת גם סרטון אילם כאשר הפרויקט זקוק לפסקול שהוכן בנפרד.</p><h4>מעברי שוטים והנחיית מצלמה</h4><p>המודל תומך בחילופי שוטים בעלי טיפול חזותי עקבי, בשוטים נגדיים לשיחה ובהוראות לתזמון מעברים. רצף דיאלוג שימושי יכול להציג שני דוברים בשוט בינוני, לחתוך לדובר המשיב ולחזור לתגובת הדובר הראשון. ציינו את זהותו של כל אדם בעת שינוי שוט.</p><p>המדריך מכסה זוויות גבוהות, נמוכות ובגובה העיניים; נקודות מבט מעל הכתף וסובייקטיביות; ומסגור רחב, בינוני וקרוב. תארו תנועת מצלמה באמצעות קומפוזיציית ההתחלה, הכיוון, היקף התנועה וקומפוזיציית הסיום. לדוגמה, התקרבות דולי איטית יכולה להסתיים על הבעת הדובר כשהשורה מסתיימת. חברו את התנועה לסיפור במקום למנות כמה טכניקות מצלמה ללא מטרה.</p><h4>מצבים, פלט ותצוגה מקדימה</h4><p>מצבי הקלט המתועדים הם טקסט־לווידאו, תמונה־לווידאו מפריים ראשון ותמונה־לווידאו מפריים ראשון ואחרון. תמונה ראשונה מוכנה קובעת את קומפוזיציית ההתחלה; תמונה אחרונה יכולה להגדיר את נקודת הסיום המיועדת. מפרטי הפלט מציינים MP4 ב־24 fps, ‏480p, ‏720p או 1080p, והגדרות משך של 4–12 שניות. המודל יכול גם לבחור אורך בשניות שלמות בתוך הטווח הנתמך. היחסים המתועדים הם 21:9, ‏16:9, ‏4:3, ‏1:1, ‏3:4 ו־9:16, עם תמיכה במסגור מסתגל.</p><p>היצרן מתעד תהליך Draft דו־שלבי: תצוגה מקדימה ב־480p לבחינת מבנה הסצנה, בחירת השוטים, התנועה וכוונת ההנחיה, ולאחריה יצירה סופית המשתמשת שוב בקלטים היצירתיים. זו דרך לשפוט ביצוע מתוכנן לפני בחירת הרזולוציה הסופית. התצוגה עצמה מוגבלת ל־480p ואינה תומכת בהחזרת הפריים האחרון. מזהה משימת ה־Draft של היצרן נשאר תקף שבעה ימים לאחר היצירה; צרו ממנו את הסרטון הסופי בחלון הזה.</p><p>בעבודה מונחית תמונה, הכינו את תמונת המקור למסגור המיועד: שינוי יחס הפלט יכול לחתוך אותה. שימוש חוזר ב־seed מפיק פריימים דומים ולא בהכרח זהים, והוראת מצלמה קבועה אינה הבטחה לנעילה מושלמת. מעל הכול, שפטו קטע דיאלוג כביצוע שמע־תמונה אחד: הדובר הנכון, השורה הנשמעת, תגובת הפנים והדגשת המצלמה צריכים כולם לתמוך באותו אירוע.</p>",
  "aboutText": "Seedance 1.5 Pro הוא המודל של ByteDance Seed ליצירה מקורית משותפת של שמע ווידאו. הוא ממדל יחד פעולה חזותית, דיבור וקצב, ומאפשר לסצנה לכלול ביצוע דמות, דיאלוג מסונכרן ונוף צליל מתוכנן. ההבדל המרכזי מבריף וידאו חזותי בלבד הוא שהצליל נעשה חלק מתיאור הסצנה: מי מדבר, כיצד השורה מוגשת ומה הקהל שומע סביב הפעולה.\n\n### יצירת שמע ותמונה משותפת\n\nטווח הצלילים המתועד כולל צלילי סביבה, אפקטי פעולה, צלילים מסונתזים, כלי נגינה, מוזיקת רקע ושירה. המודל נועד לחבר צליל למה שקורה על המסך: חפץ המכה בשולחן, דלת הנפתחת או דמות המדברת. השתמשו בכך לרגע דרמטי קצר, לפרסומת מוצר מדובבת או לסצנה שאווירתה תלויה בביצוע ובצליל כאחד.\n\nהתחילו את ההנחיה בנושא ובתנועה, ואז הוסיפו סביבה, מצלמה, סגנון חזותי וצליל. סצנה תמציתית יכולה להיות: ״שף מרים מכסה מסיר קטן, מחייך ואומר, 'זה מוכן.' ענן אדים רך נפלט, ואחריו צלצול שקט של המכסה המונח על הדלפק.״ כך מקבלים השורה המדוברת והאפקטים סיבה נראית לעין.\n\n### דיאלוג וקריינות\n\nהמודל תומך במונולוגים ובשיחות הכוללות כמה דוברים, עם תנועות שפתיים התואמות לדמויות. המדריך שלו מתעד מנדרינית, ניבים סיניים ובהם קנטונזית, שאאנשי וסצ'ואן, וכן אנגלית, יפנית, קוריאנית, ספרדית ואינדונזית מדוברות. שפות ההנחיה המתועדות הן סינית ואנגלית; שפת ההנחיה והשפה המתבקשת לשורה המדוברת הן בחירות נפרדות.\n\nזהו כל דובר לפי מאפיין נראה עקבי וכתבו את השורות במירכאות. כללו הוראות הגשה כגון קול רגוע, תשובה מהססת או קצב מהיר יותר, והבהירו את חילופי התורים. בשני דוברים, תארו מי מדבר ראשון ואת תגובתו של מי המצלמה מציגה. חילופי דברים קצרים המתאימים לקטע שנבחר נותנים למודל יעד ביצוע ברור יותר מקטע ארוך ללא דוברים מוגדרים.\n\nאפשר להנחות קריינות באמצעות גוון קול, רגש, אינטונציה וקצב דיבור. היא שימושית כשהקול צריך להסביר מוצר בזמן שהמצלמה נשארת עליו, או כאשר קריין קובע את האווירה בלי דובר על המסך. המדריך מתאר שימור גוון מזוהה תוך שינוי ההגשה; בדקו את הנוסח, ההגייה והביצוע בפועל יחד עם התמונה.\n\n### אפקטי צליל ומוזיקת רקע\n\nתארו אפקטים כאירועים הקשורים לפעולה: צעדים בעת כניסת דמות, גשם המתחזק מחוץ לחלון או תנועת בד בעת לבישת מעיל. מוזיקת רקע נוצרת בהתאמה להנחיה כברירת מחדל. ציינו את האווירה, הסגנון והמקצב שלה כאשר הם חשובים, וציינו מתי עליה להתחיל או לדעוך ביחס לסצנה.\n\nבהדגמה שקטה, בקשו מוזיקה מאופקת והדגישו צלילי טיפול במוצר. בסצנת אנימציה, תארו את רגע הפעולה שצריך לחפוף למקצב המוזיקלי. הפסקול שנוצר הוא מונו. בקרת השמע המתועדת מאפשרת גם סרטון אילם כאשר הפרויקט זקוק לפסקול שהוכן בנפרד.\n\n### מעברי שוטים והנחיית מצלמה\n\nהמודל תומך בחילופי שוטים בעלי טיפול חזותי עקבי, בשוטים נגדיים לשיחה ובהוראות לתזמון מעברים. רצף דיאלוג שימושי יכול להציג שני דוברים בשוט בינוני, לחתוך לדובר המשיב ולחזור לתגובת הדובר הראשון. ציינו את זהותו של כל אדם בעת שינוי שוט.\n\nהמדריך מכסה זוויות גבוהות, נמוכות ובגובה העיניים; נקודות מבט מעל הכתף וסובייקטיביות; ומסגור רחב, בינוני וקרוב. תארו תנועת מצלמה באמצעות קומפוזיציית ההתחלה, הכיוון, היקף התנועה וקומפוזיציית הסיום. לדוגמה, התקרבות דולי איטית יכולה להסתיים על הבעת הדובר כשהשורה מסתיימת. חברו את התנועה לסיפור במקום למנות כמה טכניקות מצלמה ללא מטרה.\n\n### מצבים, פלט ותצוגה מקדימה\n\nמצבי הקלט המתועדים הם טקסט־לווידאו, תמונה־לווידאו מפריים ראשון ותמונה־לווידאו מפריים ראשון ואחרון. תמונה ראשונה מוכנה קובעת את קומפוזיציית ההתחלה; תמונה אחרונה יכולה להגדיר את נקודת הסיום המיועדת. מפרטי הפלט מציינים MP4 ב־24 fps, ‏480p, ‏720p או 1080p, והגדרות משך של 4–12 שניות. המודל יכול גם לבחור אורך בשניות שלמות בתוך הטווח הנתמך. היחסים המתועדים הם 21:9, ‏16:9, ‏4:3, ‏1:1, ‏3:4 ו־9:16, עם תמיכה במסגור מסתגל.\n\nהיצרן מתעד תהליך Draft דו־שלבי: תצוגה מקדימה ב־480p לבחינת מבנה הסצנה, בחירת השוטים, התנועה וכוונת ההנחיה, ולאחריה יצירה סופית המשתמשת שוב בקלטים היצירתיים. זו דרך לשפוט ביצוע מתוכנן לפני בחירת הרזולוציה הסופית. התצוגה עצמה מוגבלת ל־480p ואינה תומכת בהחזרת הפריים האחרון. מזהה משימת ה־Draft של היצרן נשאר תקף שבעה ימים לאחר היצירה; צרו ממנו את הסרטון הסופי בחלון הזה.\n\nבעבודה מונחית תמונה, הכינו את תמונת המקור למסגור המיועד: שינוי יחס הפלט יכול לחתוך אותה. שימוש חוזר ב־seed מפיק פריימים דומים ולא בהכרח זהים, והוראת מצלמה קבועה אינה הבטחה לנעילה מושלמת. מעל הכול, שפטו קטע דיאלוג כביצוע שמע־תמונה אחד: הדובר הנכון, השורה הנשמעת, תגובת הפנים והדגשת המצלמה צריכים כולם לתמוך באותו אירוע.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "c2f25d7c98d4a0a17776f21eb08d7e2477345c08e3a6449fd812d30fda7baf12",
    "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 1.5 Pro</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>bytedance/seedance-1-5-pro</code><button type=\"button\" id=\"copy-id\">העתקת ID</button></div><nav class=\"card-jump-nav\" aria-label=\"חלקי כרטיס המודל\"><button type=\"button\" data-card-jump=\"overview\">התחלה</button><button type=\"button\" data-card-jump=\"methods\">קלט ושיטות</button><button type=\"button\" data-card-jump=\"pricing\">תעריפים</button><button type=\"button\" data-card-jump=\"examples\">דוגמאות</button><button type=\"button\" data-card-jump=\"results\">תוצאות</button><button type=\"button\" data-card-jump=\"aliases\">כינויים</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"שיטות API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|bytedance%2Fseedance-1-5-pro\">וידאו</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">התחלה</h3><p class=\"mdesc-full\">ByteDance Seedance 1.5 Pro יוצר וידאו יחד עם דיאלוג, אפקטי צליל ומוזיקה מסונכרנים. ביימו את הדוברים, הרגשות, המצלמה והאווירה הקולית כדי לפתח דרמות קצרות, פרסומות מדובבות וסצנות דמויות.</p><dl class=\"card-io\" data-card-io><div><dt>סוגי קלט נתמכים</dt><dd>טקסט · תמונות</dd></div><div><dt>תוצאות</dt><dd>וידאו</dd></div></dl><details class=\"card-about\"><summary>על המודל</summary><p class=\"note-s\" data-model-method-boundary>התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.</p><div class=\"mabout\" id=\"m-about\"><p>Seedance 1.5 Pro הוא המודל של ByteDance Seed ליצירה מקורית משותפת של שמע ווידאו. הוא ממדל יחד פעולה חזותית, דיבור וקצב, ומאפשר לסצנה לכלול ביצוע דמות, דיאלוג מסונכרן ונוף צליל מתוכנן. ההבדל המרכזי מבריף וידאו חזותי בלבד הוא שהצליל נעשה חלק מתיאור הסצנה: מי מדבר, כיצד השורה מוגשת ומה הקהל שומע סביב הפעולה.</p><h4>יצירת שמע ותמונה משותפת</h4><p>טווח הצלילים המתועד כולל צלילי סביבה, אפקטי פעולה, צלילים מסונתזים, כלי נגינה, מוזיקת רקע ושירה. המודל נועד לחבר צליל למה שקורה על המסך: חפץ המכה בשולחן, דלת הנפתחת או דמות המדברת. השתמשו בכך לרגע דרמטי קצר, לפרסומת מוצר מדובבת או לסצנה שאווירתה תלויה בביצוע ובצליל כאחד.</p><p>התחילו את ההנחיה בנושא ובתנועה, ואז הוסיפו סביבה, מצלמה, סגנון חזותי וצליל. סצנה תמציתית יכולה להיות: ״שף מרים מכסה מסיר קטן, מחייך ואומר, &#39;זה מוכן.&#39; ענן אדים רך נפלט, ואחריו צלצול שקט של המכסה המונח על הדלפק.״ כך מקבלים השורה המדוברת והאפקטים סיבה נראית לעין.</p><h4>דיאלוג וקריינות</h4><p>המודל תומך במונולוגים ובשיחות הכוללות כמה דוברים, עם תנועות שפתיים התואמות לדמויות. המדריך שלו מתעד מנדרינית, ניבים סיניים ובהם קנטונזית, שאאנשי וסצ&#39;ואן, וכן אנגלית, יפנית, קוריאנית, ספרדית ואינדונזית מדוברות. שפות ההנחיה המתועדות הן סינית ואנגלית; שפת ההנחיה והשפה המתבקשת לשורה המדוברת הן בחירות נפרדות.</p><p>זהו כל דובר לפי מאפיין נראה עקבי וכתבו את השורות במירכאות. כללו הוראות הגשה כגון קול רגוע, תשובה מהססת או קצב מהיר יותר, והבהירו את חילופי התורים. בשני דוברים, תארו מי מדבר ראשון ואת תגובתו של מי המצלמה מציגה. חילופי דברים קצרים המתאימים לקטע שנבחר נותנים למודל יעד ביצוע ברור יותר מקטע ארוך ללא דוברים מוגדרים.</p><p>אפשר להנחות קריינות באמצעות גוון קול, רגש, אינטונציה וקצב דיבור. היא שימושית כשהקול צריך להסביר מוצר בזמן שהמצלמה נשארת עליו, או כאשר קריין קובע את האווירה בלי דובר על המסך. המדריך מתאר שימור גוון מזוהה תוך שינוי ההגשה; בדקו את הנוסח, ההגייה והביצוע בפועל יחד עם התמונה.</p><h4>אפקטי צליל ומוזיקת רקע</h4><p>תארו אפקטים כאירועים הקשורים לפעולה: צעדים בעת כניסת דמות, גשם המתחזק מחוץ לחלון או תנועת בד בעת לבישת מעיל. מוזיקת רקע נוצרת בהתאמה להנחיה כברירת מחדל. ציינו את האווירה, הסגנון והמקצב שלה כאשר הם חשובים, וציינו מתי עליה להתחיל או לדעוך ביחס לסצנה.</p><p>בהדגמה שקטה, בקשו מוזיקה מאופקת והדגישו צלילי טיפול במוצר. בסצנת אנימציה, תארו את רגע הפעולה שצריך לחפוף למקצב המוזיקלי. הפסקול שנוצר הוא מונו. בקרת השמע המתועדת מאפשרת גם סרטון אילם כאשר הפרויקט זקוק לפסקול שהוכן בנפרד.</p><h4>מעברי שוטים והנחיית מצלמה</h4><p>המודל תומך בחילופי שוטים בעלי טיפול חזותי עקבי, בשוטים נגדיים לשיחה ובהוראות לתזמון מעברים. רצף דיאלוג שימושי יכול להציג שני דוברים בשוט בינוני, לחתוך לדובר המשיב ולחזור לתגובת הדובר הראשון. ציינו את זהותו של כל אדם בעת שינוי שוט.</p><p>המדריך מכסה זוויות גבוהות, נמוכות ובגובה העיניים; נקודות מבט מעל הכתף וסובייקטיביות; ומסגור רחב, בינוני וקרוב. תארו תנועת מצלמה באמצעות קומפוזיציית ההתחלה, הכיוון, היקף התנועה וקומפוזיציית הסיום. לדוגמה, התקרבות דולי איטית יכולה להסתיים על הבעת הדובר כשהשורה מסתיימת. חברו את התנועה לסיפור במקום למנות כמה טכניקות מצלמה ללא מטרה.</p><h4>מצבים, פלט ותצוגה מקדימה</h4><p>מצבי הקלט המתועדים הם טקסט־לווידאו, תמונה־לווידאו מפריים ראשון ותמונה־לווידאו מפריים ראשון ואחרון. תמונה ראשונה מוכנה קובעת את קומפוזיציית ההתחלה; תמונה אחרונה יכולה להגדיר את נקודת הסיום המיועדת. מפרטי הפלט מציינים MP4 ב־24 fps, ‏480p, ‏720p או 1080p, והגדרות משך של 4–12 שניות. המודל יכול גם לבחור אורך בשניות שלמות בתוך הטווח הנתמך. היחסים המתועדים הם 21:9, ‏16:9, ‏4:3, ‏1:1, ‏3:4 ו־9:16, עם תמיכה במסגור מסתגל.</p><p>היצרן מתעד תהליך Draft דו־שלבי: תצוגה מקדימה ב־480p לבחינת מבנה הסצנה, בחירת השוטים, התנועה וכוונת ההנחיה, ולאחריה יצירה סופית המשתמשת שוב בקלטים היצירתיים. זו דרך לשפוט ביצוע מתוכנן לפני בחירת הרזולוציה הסופית. התצוגה עצמה מוגבלת ל־480p ואינה תומכת בהחזרת הפריים האחרון. מזהה משימת ה־Draft של היצרן נשאר תקף שבעה ימים לאחר היצירה; צרו ממנו את הסרטון הסופי בחלון הזה.</p><p>בעבודה מונחית תמונה, הכינו את תמונת המקור למסגור המיועד: שינוי יחס הפלט יכול לחתוך אותה. שימוש חוזר ב־seed מפיק פריימים דומים ולא בהכרח זהים, והוראת מצלמה קבועה אינה הבטחה לנעילה מושלמת. מעל הכול, שפטו קטע דיאלוג כביצוע שמע־תמונה אחד: הדובר הנכון, השורה הנשמעת, תגובת הפנים והדגשת המצלמה צריכים כולם לתמוך באותו אירוע.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">זמין ב-Ailoot · קלט ושיטות</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · וידאו</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>סוגי קלט</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>סוגי פלט</dt><dd><code>video</code></dd></div><div><dt>פורמט פלט</dt><dd>הבתים המקוריים של MP4; ללא נרמול או המרת קידוד</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>שדה</th><th>סוג</th><th>דרישה</th><th>ערכים ומגבלות</th><th>ברירת מחדל</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>bytedance/seedance-1-5-pro</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>integer</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>⁦4⁩, ⁦5⁩, ⁦6⁩, ⁦7⁩, ⁦8⁩, ⁦9⁩, ⁦10⁩, ⁦11⁩, ⁦12⁩</div><div>מינימום: ⁦1⁩</div><div>מקסימום: ⁦600⁩</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">resolution</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>480p, 720p, 1080p</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">aspect_ratio</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>1:1, 3:4, 9:16, 9:21, 4:3, 16:9, 21:9</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>boolean</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>false, true</div><div>תנאים: השמטת האפשרות הזו בוחרת במחיר הכולל אודיו. הגדירו אותה ל־false כדי לבחור במחיר ללא אודיו. יש לבדוק את has_audio בתוצאה כדי לדעת אם הוחזרה רצועת אודיו.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">frame_images</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>array</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>מספר פריטים מזערי: ⁦1⁩</div><div>מספר פריטים מרבי: ⁦2⁩</div><div>תוכן הקלט: מערך אובייקטים של פריימים. כל אובייקט כולל type=image_url, שדה image_url המכיל url, ו־frame_type. יש להשתמש בכתובת URL של תמונה ב־HTTPS ולהגדיר frame_type לערך first_frame או last_frame. כל תפקיד של פריים מופיע פעם אחת לכל היותר.</div><div>מפתחות מדויקים: type, image_url, frame_type</div><div>תנאים: המפתחות האלה מתארים כל אובייקט פריים; image_url מכיל רק url. יש להשמיט frame_images בבקשה המבוססת על טקסט בלבד.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">input_references</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>array</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">size</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>480x480, 480x640, 480x854, 480x1120, 640x480, 720x720, 720x960, 720x1280, 720x1680, 854x480, 960x720, 1080x1080, 1080x1440, 1080x1920, 1080x2520, 1120x480, 1280x720, 1440x1080, 1680x720, 1920x1080, 2520x1080</div><div>תבנית: ^[1-9][0-9]*x[1-9][0-9]*$</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">seed</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>integer</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>מינימום: ⁦‎-9,223,372,036,854,775,808⁩</div><div>מקסימום: ⁦9,223,372,036,854,775,807⁩</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">callback_url</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>תבנית: ^https://</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">session_id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">trace</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>object</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">user</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>שילובים של חומרי קלט</summary><p class=\"note-s\"><b>מטקסט לווידאו</b> · הנחיה כתובה. · נדרש: model, prompt, duration</p><p class=\"note-s\"><code>יש לספק prompt כטקסט ו־duration בשניות שלמות. יש לבחור רזולוציה נתמכת ויחס גובה־רוחב נתמך, או גודל מדויק מהרשימה.</code></p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: סוג: string · bytedance/seedance-1-5-pro</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: סוג: string · מספר בייטים מרבי ב-UTF-8: ⁦10,000⁩ · נדרשים תווים שאינם רווחים: כן</p><p class=\"note-s\"><b>מתמונה לווידאו</b> · הנחיה כתובה ותמונה של הפריים הראשון. · נדרש: model, prompt, duration, frame_images</p><p class=\"note-s\"><code>frame_images הוא מערך. כל אובייקט פריים כולל type, image_url ו־frame_type; השדה image_url מכיל url. יש להגדיר type לערך image_url. יש להשתמש ב־first_frame, עם last_frame אופציונלי. כל תפקיד של פריים מופיע פעם אחת לכל היותר. יש לספק כתובת URL ציבורית של תמונה ב־HTTPS לכל פריים. יש לבחור רזולוציה נתמכת ויחס גובה־רוחב נתמך, או גודל מדויק מהרשימה.</code></p><p class=\"note-s\">המפתחות המדויקים: type, image_url, frame_type</p><p class=\"note-s\"><code class=\"card-field-name\">model</code>: סוג: string · bytedance/seedance-1-5-pro</p><p class=\"note-s\"><code class=\"card-field-name\">prompt</code>: סוג: string · מספר בייטים מרבי ב-UTF-8: ⁦10,000⁩ · נדרשים תווים שאינם רווחים: כן</p></details><details class=\"note-s\" data-method-contract><summary>פרמטרים ומחזור חיים של השיטה</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>פרמטר</th><th>מפרט</th></tr></thead><tbody><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>content_type</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>application/json</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>required</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>model, prompt, duration</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>material_types</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text, image</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>additional_properties</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>false</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional_controls</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>resolution, aspect_ratio, generate_audio, frame_images, input_references, size, seed, callback_url, session_id, trace, user</td></tr></tbody></table></div><p>מחזור חיים: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{public_id}/content</code></p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">תעריפים</h3><div class=\"card-result-process\" data-billing-basis><h5>אופן חישוב החיוב הסופי</h5><p class=\"note-s\">התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.</p><dl data-price-conditions><dt>מצב מהיר</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב מהיר</span></dd><dt>מצב 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><th>חיוב</th></tr></thead><tbody><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>תעריפי בסיס לטוקנים</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>תעריף בסיס</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>—</td><td data-cell-label=\"תנאי חיוב\"><span class=\"card-cell-label\">תנאי חיוב</span>—</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>קלט · טוקני קלט · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>פלט · טוקני פלט · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · קריאה מהמטמון · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון, 1 שעה · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>מחיר טוקן וידאו</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>לכל 1K טוקני וידאו</td><td data-cell-label=\"תנאי חיוב\"><span class=\"card-cell-label\">תנאי חיוב</span>לא הוגדר תנאי נוסף במפתח תמחור זה.</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר טוקן וידאו · אומדן להשוואה בלבד</span> <b>$0.0048</b> <span class=\"price-unit\">לכל 1K טוקני וידאו</span></div><p class=\"note-s\">התעריף לטוקן וידאו הוא מחיר הייחוס העיקרי. האומדנים הראשיים לשנייה הם נתוני ייחוס נפרדים, ואינם חיוב נוסף.</p></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>מחיר טוקן וידאו</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>לכל 1K טוקני וידאו</td><td data-cell-label=\"תנאי חיוב\"><span class=\"card-cell-label\">תנאי חיוב</span>אודיו: without_audio</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר טוקן וידאו · אומדן להשוואה בלבד</span> <b>$0.0024</b> <span class=\"price-unit\">לכל 1K טוקני וידאו</span></div><p class=\"note-s\">התעריף לטוקן וידאו הוא מחיר הייחוס העיקרי. האומדנים הראשיים לשנייה הם נתוני ייחוס נפרדים, ואינם חיוב נוסף.</p></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>עלות יצירה משוערת</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>אומדן ליצירה אחת</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>—</td><td data-cell-label=\"תנאי חיוב\"><span class=\"card-cell-label\">תנאי חיוב</span>—</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · עלות יצירה משוערת · אומדן להשוואה בלבד</span> <b>$0.05184</b> <span class=\"price-unit\">אומדן לפני היצירה</span></div><p class=\"note-s\">אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.</p></td></tr></tbody></table></div></div><p class=\"note-s\">לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. <a href=\"/docs/he/billing/reserve/\">איך פועלים שריון הסכום והסדרת החיוב →</a></p><div data-declared-reference-pricing><h4>פרטי תעריף הייחוס</h4><p class=\"note-s\">טבלאות הייחוס ברמת המודל אינן משנות את בחירת השיטה, הצעות המחיר או החיובים. החיובים בפועל משתמשים בתעריפי שיטת Ailoot שנבחרה.</p><details class=\"card-price-reference\" data-declared-reference-group data-client-selectable=\"false\"><summary>הפניות למחירי תצורות וידאו</summary><h4>מחירים לפי תצורה</h4><p class=\"note-s\">התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>תצורה</th><th>תנאי חיוב</th><th>חיוב</th></tr></thead><tbody><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>מחיר טוקן וידאו</th><td data-cell-label=\"תנאי חיוב\"><span class=\"card-cell-label\">תנאי חיוב</span>לא הוגדר תנאי נוסף במפתח תמחור זה.</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר טוקן וידאו</span> <b>$0.0048</b> <span class=\"price-unit\">לכל 1K טוקני וידאו</span></div><p class=\"note-s\">התעריף לטוקן וידאו הוא מחיר הייחוס העיקרי. האומדנים הראשיים לשנייה הם נתוני ייחוס נפרדים, ואינם חיוב נוסף.</p></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>מחיר טוקן וידאו</th><td data-cell-label=\"תנאי חיוב\"><span class=\"card-cell-label\">תנאי חיוב</span>אודיו: without_audio</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר טוקן וידאו</span> <b>$0.0024</b> <span class=\"price-unit\">לכל 1K טוקני וידאו</span></div><p class=\"note-s\">התעריף לטוקן וידאו הוא מחיר הייחוס העיקרי. האומדנים הראשיים לשנייה הם נתוני ייחוס נפרדים, ואינם חיוב נוסף.</p></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">דוגמאות לבקשות</h3><h4>Ailoot Ultra · וידאו</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-1128-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1128-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · צרו סרטון</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1128-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1128-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nfrom pathlib import Path\nPath(&#39;request.json&#39;).write_text(&#39;{&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;duration&quot;:8,&quot;model&quot;:&quot;bytedance/seedance-1-5-pro&quot;,&quot;prompt&quot;:&quot;A serene mountain landscape at sunset&quot;,&quot;resolution&quot;:&quot;720p&quot;}&#39;, encoding=&#39;utf-8&#39;)\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">קבלה ושמירה של תוצאות</h3><h4>Ailoot Ultra · וידאו</h4><p class=\"note-s\">כתובות חתומות לתוכן שבבעלותכם</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{public_id}</code></li><li><code>GET /v1/videos/{public_id}/content</code></li></ul><h5>בדיקת מצב המשימה</h5><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-1129-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1129-panel-0\" aria-selected=\"true\" tabindex=\"0\">GET · אחזור מצב הפעולה המקורית</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1129-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1129-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_STATUS_URL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path(&#39;result.json&#39;).read_text())\nif not isinstance(r.get(&#39;id&#39;),str) or not r[&#39;id&#39;]:raise SystemExit(&#39;Keep the original response and headers for reconciliation; no returned ID&#39;)\nPath(&#39;status-url.txt&#39;).write_text(&#39;https://api.ailoot.ai/v1/videos/&#39;+quote(r[&#39;id&#39;],safe=&#39;&#39;))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error &quot;$(cat status-url.txt)&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&#39;Keep the complete JSON and response headers; do not resubmit an unknown creation.&#39;)\nPY_RESULT\n</code></pre></div></div></div><details class=\"card-about\"><summary>קריאות תוכן נוספות</summary><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-1130-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1130-panel-0\" aria-selected=\"true\" tabindex=\"0\">שמירת כל הפלטים שהושלמו ובבעלותכם</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1130-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1130-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path(&#39;status.json&#39;).read_text())\nif r.get(&#39;status&#39;)!=&#39;completed&#39;:raise SystemExit(&#39;Keep the original ID and read its status; never recreate an unknown job&#39;)\nif not isinstance(r.get(&#39;data&#39;),list) or not r[&#39;data&#39;]:raise SystemExit(&#39;Keep the complete original status; no completed outputs supplied&#39;)\nurls=[]\nfor i,u in enumerate(r.get(&#39;data&#39;,[])):\n    if not isinstance(u,str):raise SystemExit(&#39;Keep the original response; unexpected asset shape&#39;)\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin(&#39;https://api.ailoot.ai&#39;,path);z=urlsplit(u)\n    if z.scheme!=&#39;https&#39; or z.netloc!=&#39;api.ailoot.ai&#39; or z.username or z.password:raise SystemExit(&#39;Use the actual returned Ailoot owned content URL&#39;)\n    target=Path(&#39;owned-&#39;+label+&#39;.bin&#39;)\n    subprocess.run([&#39;curl&#39;,&#39;--fail-with-body&#39;,&#39;--silent&#39;,&#39;--show-error&#39;,u,&#39;-H&#39;,&#39;Authorization: Bearer &#39;+os.environ[&#39;AILOOT_API_KEY&#39;],&#39;-D&#39;,str(target)+&#39;.headers&#39;,&#39;-o&#39;,str(target)],check=True)\nprint(&#39;All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.&#39;)\nPY_ASSETS\n</code></pre></div></div></div></details><div class=\"card-result-process\" data-all-results><h5>שמירת כל התוצאות שהושלמו</h5><p class=\"note-s\">שמרו כל וידאו שהושלם או קובץ שהוחזר; אחזרו כל נכס מכל URL שהוחזר בפועל.</p><p class=\"note-s\">יש לשמור כל פלט ממשי שבבעלותכם ואת המטא־נתונים המדודים שהוחזרו איתו.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">503 result_pending_check + originalid + X-Should-Retry:false; אין לשלוח שוב את הבקשה המקורית</p></div><details class=\"card-about\" data-output-fields><summary>שדות התגובה</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>שדה</th><th>סוג</th><th>משמעות</th></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">index</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>integer</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>מיקום הווידאו הזה ברשימת הפלטים, בספירה המתחילה מאפס.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">content_url</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>כתובת URL חתומה להורדת הווידאו שהושלם ב־HTTPS.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">sha256</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string | null</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>תקציר SHA-256 של בתי הווידאו המקורי; null אם אינו זמין.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">size_bytes</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>integer | null</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>גודל קובץ הווידאו המקורי בבתים; null אם אינו זמין.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">duration_ms</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>integer | null</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>משך הווידאו המדוד באלפיות שנייה; null אם אינו זמין.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">width</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>integer | null</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>רוחב הווידאו בפיקסלים; null אם אינו זמין.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">height</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>integer | null</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>גובה הווידאו בפיקסלים; null אם אינו זמין.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">video_codec</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string | null</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>מזהה מקודד הווידאו; null אם לא נרשם.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">has_audio</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>boolean | null</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>האם הווידאו מכיל רצועת אודיו; null אם לא נמדד.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">audio_codec</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string | null</td><td data-cell-label=\"משמעות\"><span class=\"card-cell-label\">משמעות</span>מזהה מקודד האודיו; null כאשר לא נרשם מזהה.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>שגיאות והשלבים הבאים</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>תגובה</th><th>תנאי</th><th>השלב הבא</th></tr></thead><tbody><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦404⁩ · <code>not_found_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>הגישה לווידאו אינה זמינה, או שמזהה הווידאו הזה לא נמצא.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לבדוק את הגישה לווידאו. עבור וידאו קיים, יש להשתמש במזהה הציבורי המקורי שלו ובאותו מפתח API.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦401⁩ · <code>authentication_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>מפתח ה־API אינו תואם לחשבון המאומת.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לבדוק את מפתח ה־API ואת הגישה לחשבון לפני השליחה.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>לא ניתן היה לקרוא את הבקשה, או שאינדקס ההורדה אינו תקף.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לתקן את גוף הבקשה. להורדה, יש לבחור אינדקס פלט שהוחזר על ידי המשימה המקורית.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦422⁩ · <code>price_unavailable</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>לא ניתן לתמחר את תצורת הווידאו שנבחרה.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לבחור תצורת וידאו נתמכת ולהשלים את האפשרויות הנדרשות בה לפני שליחת בקשה מתוקנת.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦422⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>קלט וידאו או משימת המשך מקורית אינם תקפים.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש להשתמש בקלטי HTTPS תקפים. להמשך, יש להשתמש במזהה הציבורי של הווידאו המקורי שלכם שהושלם, עם אותו מפתח API.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦402⁩ · <code>billing_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>היתרה הזמינה או המגבלות אינן מאפשרות לשריין סכום.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לבדוק את היתרה הזמינה ואת המגבלות לפני שליחת בקשה חדשה.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦503⁩ · <code>server_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>אימות הווידאו, האחסון או הגישה לשירות אינם זמינים זמנית.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש להמתין לזמינות השירות. אם כבר יש לכם מזהה וידאו, יש לבדוק את המשימה המקורית הזו במקום ליצור וידאו נוסף.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦503⁩ · <code>result_pending_check</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>יש לבדוק את תוצאת הווידאו המקורית ואת החיוב.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לשמור את מזהה הווידאו שהוחזר ולבדוק את המשימה הזו. אין לשלוח בקשת יצירה חלופית בזמן הבדיקה.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦503⁩ · <code>owned_result_unavailable</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>הורדת הווידאו הקיים אינה זמינה זמנית.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לבדוק את אותה משימת וידאו בהמשך ולהוריד את הפלט הקיים שלה. יצירה חדשה יוצרת פעולה נפרדת.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦409⁩ · <code>video_not_ready</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>תוכן הווידאו לא פורסם.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לבדוק את הסטטוס של המשימה המקורית. יש להוריד לאחר שהיא מדווחת completed; אם היא מדווחת failed, יש לפעול לפי ההודעה שלה על בדיקת החיוב.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">כינויים</h3><h4>כינויים למודל</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=bytedance%2Fseedance-1-5-pro&amp;route=Ultra&amp;caller=bytedance%2Fseedance-1-5-pro&amp;fmt=videos\"><code>bytedance/seedance-1-5-pro</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\">השתמשו בנתיבי השיטות המוצגים למעלה.</p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=bytedance%2Fseedance-1-5-pro&amp;route=Ultra&amp;caller=bytedance%2Fseedance-1-5-pro&amp;fmt=videos\"><code>bytedance/seedance-1-5-pro</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "bytedance/seedance-1-5-pro",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "bytedance/seedance-1-5-pro",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|bytedance%2Fseedance-1-5-pro",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "יש לשמור כל פלט ממשי שבבעלותכם ואת המטא־נתונים המדודים שהוחזרו איתו.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "הגישה לווידאו אינה זמינה, או שמזהה הווידאו הזה לא נמצא.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "יש לבדוק את הגישה לווידאו. עבור וידאו קיים, יש להשתמש במזהה הציבורי המקורי שלו ובאותו מפתח API.",
                "type": "not_found_error"
              },
              {
                "condition": "מפתח ה־API אינו תואם לחשבון המאומת.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "יש לבדוק את מפתח ה־API ואת הגישה לחשבון לפני השליחה.",
                "type": "authentication_error"
              },
              {
                "condition": "לא ניתן היה לקרוא את הבקשה, או שאינדקס ההורדה אינו תקף.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "יש לתקן את גוף הבקשה. להורדה, יש לבחור אינדקס פלט שהוחזר על ידי המשימה המקורית.",
                "type": "invalid_request_error"
              },
              {
                "condition": "לא ניתן לתמחר את תצורת הווידאו שנבחרה.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "יש לבחור תצורת וידאו נתמכת ולהשלים את האפשרויות הנדרשות בה לפני שליחת בקשה מתוקנת.",
                "type": "price_unavailable"
              },
              {
                "condition": "קלט וידאו או משימת המשך מקורית אינם תקפים.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "יש להשתמש בקלטי HTTPS תקפים. להמשך, יש להשתמש במזהה הציבורי של הווידאו המקורי שלכם שהושלם, עם אותו מפתח API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "היתרה הזמינה או המגבלות אינן מאפשרות לשריין סכום.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "יש לבדוק את היתרה הזמינה ואת המגבלות לפני שליחת בקשה חדשה.",
                "type": "billing_error"
              },
              {
                "condition": "אימות הווידאו, האחסון או הגישה לשירות אינם זמינים זמנית.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "יש להמתין לזמינות השירות. אם כבר יש לכם מזהה וידאו, יש לבדוק את המשימה המקורית הזו במקום ליצור וידאו נוסף.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "יש לבדוק את תוצאת הווידאו המקורית ואת החיוב.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "יש לשמור את מזהה הווידאו שהוחזר ולבדוק את המשימה הזו. אין לשלוח בקשת יצירה חלופית בזמן הבדיקה.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "הורדת הווידאו הקיים אינה זמינה זמנית.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "יש לבדוק את אותה משימת וידאו בהמשך ולהוריד את הפלט הקיים שלה. יצירה חדשה יוצרת פעולה נפרדת.",
                "type": "server_error"
              },
              {
                "condition": "תוכן הווידאו לא פורסם.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "יש לבדוק את הסטטוס של המשימה המקורית. יש להוריד לאחר שהיא מדווחת completed; אם היא מדווחת failed, יש לפעול לפי ההודעה שלה על בדיקת החיוב.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; אין לשלוח שוב את הבקשה המקורית"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-1-5-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "יש לספק prompt כטקסט ו־duration בשניות שלמות. יש לבחור רזולוציה נתמכת ויחס גובה־רוחב נתמך, או גודל מדויק מהרשימה.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "הנחיה כתובה."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-1-5-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images הוא מערך. כל אובייקט פריים כולל type, image_url ו־frame_type; השדה image_url מכיל url. יש להגדיר type לערך image_url. יש להשתמש ב־first_frame, עם last_frame אופציונלי. כל תפקיד של פריים מופיע פעם אחת לכל היותר. יש לספק כתובת URL ציבורית של תמונה ב־HTTPS לכל פריים. יש לבחור רזולוציה נתמכת ויחס גובה־רוחב נתמך, או גודל מדויק מהרשימה.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "הנחיה כתובה ותמונה של הפריים הראשון."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "מיקום הווידאו הזה ברשימת הפלטים, בספירה המתחילה מאפס.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "כתובת URL חתומה להורדת הווידאו שהושלם ב־HTTPS.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "תקציר SHA-256 של בתי הווידאו המקורי; null אם אינו זמין.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "גודל קובץ הווידאו המקורי בבתים; null אם אינו זמין.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "משך הווידאו המדוד באלפיות שנייה; null אם אינו זמין.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "רוחב הווידאו בפיקסלים; null אם אינו זמין.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "גובה הווידאו בפיקסלים; null אם אינו זמין.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "מזהה מקודד הווידאו; null אם לא נרשם.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "האם הווידאו מכיל רצועת אודיו; null אם לא נמדד.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "מזהה מקודד האודיו; null כאשר לא נרשם מזהה.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "כתובות חתומות לתוכן שבבעלותכם",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance/seedance-1-5-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-1-5-pro"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "9:21",
                  "4:3",
                  "16:9",
                  "21:9"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "9:21",
                    "4:3",
                    "16:9",
                    "21:9"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "השמטת האפשרות הזו בוחרת במחיר הכולל אודיו. הגדירו אותה ל־false כדי לבחור במחיר ללא אודיו. יש לבדוק את has_audio בתוצאה כדי לדעת אם הוחזרה רצועת אודיו.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "המפתחות האלה מתארים כל אובייקט פריים; image_url מכיל רק url. יש להשמיט frame_images בבקשה המבוססת על טקסט בלבד.",
                "content": "מערך אובייקטים של פריימים. כל אובייקט כולל type=image_url, שדה image_url המכיל url, ו־frame_type. יש להשתמש בכתובת URL של תמונה ב־HTTPS ולהגדיר frame_type לערך first_frame או last_frame. כל תפקיד של פריים מופיע פעם אחת לכל היותר.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "480x1120",
                  "640x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "854x480",
                  "960x720",
                  "1080x1080",
                  "1080x1440",
                  "1080x1920",
                  "1080x2520",
                  "1120x480",
                  "1280x720",
                  "1440x1080",
                  "1680x720",
                  "1920x1080",
                  "2520x1080"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "480x1120",
                    "640x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "854x480",
                    "960x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1080x2520",
                    "1120x480",
                    "1280x720",
                    "1440x1080",
                    "1680x720",
                    "1920x1080",
                    "2520x1080"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "9:21",
                    "4:3",
                    "16:9",
                    "21:9"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-1-5-pro"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "480x1120",
                    "640x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "854x480",
                    "960x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1080x2520",
                    "1120x480",
                    "1280x720",
                    "1440x1080",
                    "1680x720",
                    "1920x1080",
                    "2520x1080"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "התעריף לטוקן וידאו הוא מחיר הייחוס העיקרי. האומדנים הראשיים לשנייה הם נתוני ייחוס נפרדים, ואינם חיוב נוסף.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "מחיר טוקן וידאו",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "0.05184",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.05184",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"bytedance/seedance-1-5-pro\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.05184",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.05184",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "bytedance/seedance-1-5-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.05184",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.05184",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "bytedance/seedance-1-5-pro",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "a2bcd7a8c582e8280a01db324f34a57a528efe776bc7e73b60e8de728ea64359",
    "input_html_sha256": "736313094d91ae1c681b6e5c4baef5df537c3921b7807e142c826c6479a1d044",
    "private_audit_sha256": "47717ffbcb9833c50a12346241cee4f3e1f59c5ea1c29bb4a5cc0d9fe5cd5ffa",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/bytedance-seedance-1-5-pro/",
    "description": "ByteDance Seedance 1.5 Pro יוצר וידאו יחד עם דיאלוג, אפקטי צליל ומוזיקה מסונכרנים. ביימו את הדוברים, הרגשות, המצלמה והאווירה הקולית כדי לפתח דרמות קצרות, פרסומות מדובבות וסצנות דמויות.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/bytedance-seedance-1-5-pro/index.md",
    "title": "ByteDance: Seedance 1.5 Pro — Ailoot",
    "url": "https://ailoot.ai/models/he/bytedance-seedance-1-5-pro/"
  },
  "rawModel": {
    "about": "Seedance 1.5 Pro הוא המודל של ByteDance Seed ליצירה מקורית משותפת של שמע ווידאו. הוא ממדל יחד פעולה חזותית, דיבור וקצב, ומאפשר לסצנה לכלול ביצוע דמות, דיאלוג מסונכרן ונוף צליל מתוכנן. ההבדל המרכזי מבריף וידאו חזותי בלבד הוא שהצליל נעשה חלק מתיאור הסצנה: מי מדבר, כיצד השורה מוגשת ומה הקהל שומע סביב הפעולה.\n\n### יצירת שמע ותמונה משותפת\n\nטווח הצלילים המתועד כולל צלילי סביבה, אפקטי פעולה, צלילים מסונתזים, כלי נגינה, מוזיקת רקע ושירה. המודל נועד לחבר צליל למה שקורה על המסך: חפץ המכה בשולחן, דלת הנפתחת או דמות המדברת. השתמשו בכך לרגע דרמטי קצר, לפרסומת מוצר מדובבת או לסצנה שאווירתה תלויה בביצוע ובצליל כאחד.\n\nהתחילו את ההנחיה בנושא ובתנועה, ואז הוסיפו סביבה, מצלמה, סגנון חזותי וצליל. סצנה תמציתית יכולה להיות: ״שף מרים מכסה מסיר קטן, מחייך ואומר, 'זה מוכן.' ענן אדים רך נפלט, ואחריו צלצול שקט של המכסה המונח על הדלפק.״ כך מקבלים השורה המדוברת והאפקטים סיבה נראית לעין.\n\n### דיאלוג וקריינות\n\nהמודל תומך במונולוגים ובשיחות הכוללות כמה דוברים, עם תנועות שפתיים התואמות לדמויות. המדריך שלו מתעד מנדרינית, ניבים סיניים ובהם קנטונזית, שאאנשי וסצ'ואן, וכן אנגלית, יפנית, קוריאנית, ספרדית ואינדונזית מדוברות. שפות ההנחיה המתועדות הן סינית ואנגלית; שפת ההנחיה והשפה המתבקשת לשורה המדוברת הן בחירות נפרדות.\n\nזהו כל דובר לפי מאפיין נראה עקבי וכתבו את השורות במירכאות. כללו הוראות הגשה כגון קול רגוע, תשובה מהססת או קצב מהיר יותר, והבהירו את חילופי התורים. בשני דוברים, תארו מי מדבר ראשון ואת תגובתו של מי המצלמה מציגה. חילופי דברים קצרים המתאימים לקטע שנבחר נותנים למודל יעד ביצוע ברור יותר מקטע ארוך ללא דוברים מוגדרים.\n\nאפשר להנחות קריינות באמצעות גוון קול, רגש, אינטונציה וקצב דיבור. היא שימושית כשהקול צריך להסביר מוצר בזמן שהמצלמה נשארת עליו, או כאשר קריין קובע את האווירה בלי דובר על המסך. המדריך מתאר שימור גוון מזוהה תוך שינוי ההגשה; בדקו את הנוסח, ההגייה והביצוע בפועל יחד עם התמונה.\n\n### אפקטי צליל ומוזיקת רקע\n\nתארו אפקטים כאירועים הקשורים לפעולה: צעדים בעת כניסת דמות, גשם המתחזק מחוץ לחלון או תנועת בד בעת לבישת מעיל. מוזיקת רקע נוצרת בהתאמה להנחיה כברירת מחדל. ציינו את האווירה, הסגנון והמקצב שלה כאשר הם חשובים, וציינו מתי עליה להתחיל או לדעוך ביחס לסצנה.\n\nבהדגמה שקטה, בקשו מוזיקה מאופקת והדגישו צלילי טיפול במוצר. בסצנת אנימציה, תארו את רגע הפעולה שצריך לחפוף למקצב המוזיקלי. הפסקול שנוצר הוא מונו. בקרת השמע המתועדת מאפשרת גם סרטון אילם כאשר הפרויקט זקוק לפסקול שהוכן בנפרד.\n\n### מעברי שוטים והנחיית מצלמה\n\nהמודל תומך בחילופי שוטים בעלי טיפול חזותי עקבי, בשוטים נגדיים לשיחה ובהוראות לתזמון מעברים. רצף דיאלוג שימושי יכול להציג שני דוברים בשוט בינוני, לחתוך לדובר המשיב ולחזור לתגובת הדובר הראשון. ציינו את זהותו של כל אדם בעת שינוי שוט.\n\nהמדריך מכסה זוויות גבוהות, נמוכות ובגובה העיניים; נקודות מבט מעל הכתף וסובייקטיביות; ומסגור רחב, בינוני וקרוב. תארו תנועת מצלמה באמצעות קומפוזיציית ההתחלה, הכיוון, היקף התנועה וקומפוזיציית הסיום. לדוגמה, התקרבות דולי איטית יכולה להסתיים על הבעת הדובר כשהשורה מסתיימת. חברו את התנועה לסיפור במקום למנות כמה טכניקות מצלמה ללא מטרה.\n\n### מצבים, פלט ותצוגה מקדימה\n\nמצבי הקלט המתועדים הם טקסט־לווידאו, תמונה־לווידאו מפריים ראשון ותמונה־לווידאו מפריים ראשון ואחרון. תמונה ראשונה מוכנה קובעת את קומפוזיציית ההתחלה; תמונה אחרונה יכולה להגדיר את נקודת הסיום המיועדת. מפרטי הפלט מציינים MP4 ב־24 fps, ‏480p, ‏720p או 1080p, והגדרות משך של 4–12 שניות. המודל יכול גם לבחור אורך בשניות שלמות בתוך הטווח הנתמך. היחסים המתועדים הם 21:9, ‏16:9, ‏4:3, ‏1:1, ‏3:4 ו־9:16, עם תמיכה במסגור מסתגל.\n\nהיצרן מתעד תהליך Draft דו־שלבי: תצוגה מקדימה ב־480p לבחינת מבנה הסצנה, בחירת השוטים, התנועה וכוונת ההנחיה, ולאחריה יצירה סופית המשתמשת שוב בקלטים היצירתיים. זו דרך לשפוט ביצוע מתוכנן לפני בחירת הרזולוציה הסופית. התצוגה עצמה מוגבלת ל־480p ואינה תומכת בהחזרת הפריים האחרון. מזהה משימת ה־Draft של היצרן נשאר תקף שבעה ימים לאחר היצירה; צרו ממנו את הסרטון הסופי בחלון הזה.\n\nבעבודה מונחית תמונה, הכינו את תמונת המקור למסגור המיועד: שינוי יחס הפלט יכול לחתוך אותה. שימוש חוזר ב־seed מפיק פריימים דומים ולא בהכרח זהים, והוראת מצלמה קבועה אינה הבטחה לנעילה מושלמת. מעל הכול, שפטו קטע דיאלוג כביצוע שמע־תמונה אחד: הדובר הנכון, השורה הנשמעת, תגובת הפנים והדגשת המצלמה צריכים כולם לתמוך באותו אירוע.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "available": null,
    "canonical_model": "bytedance/seedance-1-5-pro",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.05184",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.05184",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "התמחור המלא של התצורה מופיע בפרטים."
      }
    ],
    "ctx": null,
    "declared_tariff_references": [
      {
        "client_selectable": false,
        "key": "09b7f40b8299fa0acb9ef099",
        "label": "הפניות למחירי תצורות וידאו",
        "profiles": [
          {
            "basis": "התעריף לטוקן וידאו הוא מחיר הייחוס העיקרי. האומדנים הראשיים לשנייה הם נתוני ייחוס נפרדים, ואינם חיוב נוסף.",
            "dimensions": {
              "conditions": "לא הוגדר תנאי נוסף במפתח תמחור זה."
            },
            "label": "מחיר טוקן וידאו",
            "units": [
              {
                "amount": "0.0048",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "התעריף לטוקן וידאו הוא מחיר הייחוס העיקרי. האומדנים הראשיים לשנייה הם נתוני ייחוס נפרדים, ואינם חיוב נוסף.",
            "dimensions": {
              "conditions": "אודיו: without_audio"
            },
            "label": "מחיר טוקן וידאו",
            "units": [
              {
                "amount": "0.0024",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "key": "video_token",
                "label": "Video-token price",
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "rate_role": "typed_video_token_primary_reference",
                "side": "out",
                "unit": "video_token"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "bytedance/seedance-1-5-pro",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "יש לשמור כל פלט ממשי שבבעלותכם ואת המטא־נתונים המדודים שהוחזרו איתו.",
            "defaults": {
              "aspect_ratio": null,
              "duration": null,
              "generate_audio": "endpoint capability flag when published; omitted unknown stays unknown; never guarantees audio track",
              "resolution": null,
              "seed": null,
              "size": null,
              "wire_omissions_preserved": true
            },
            "errors": [
              {
                "condition": "הגישה לווידאו אינה זמינה, או שמזהה הווידאו הזה לא נמצא.",
                "http_status": 404,
                "public_identifier_field": "error.type",
                "recovery": "יש לבדוק את הגישה לווידאו. עבור וידאו קיים, יש להשתמש במזהה הציבורי המקורי שלו ובאותו מפתח API.",
                "type": "not_found_error"
              },
              {
                "condition": "מפתח ה־API אינו תואם לחשבון המאומת.",
                "http_status": 401,
                "public_identifier_field": "error.type",
                "recovery": "יש לבדוק את מפתח ה־API ואת הגישה לחשבון לפני השליחה.",
                "type": "authentication_error"
              },
              {
                "condition": "לא ניתן היה לקרוא את הבקשה, או שאינדקס ההורדה אינו תקף.",
                "http_status": 400,
                "public_identifier_field": "error.type",
                "recovery": "יש לתקן את גוף הבקשה. להורדה, יש לבחור אינדקס פלט שהוחזר על ידי המשימה המקורית.",
                "type": "invalid_request_error"
              },
              {
                "condition": "לא ניתן לתמחר את תצורת הווידאו שנבחרה.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "יש לבחור תצורת וידאו נתמכת ולהשלים את האפשרויות הנדרשות בה לפני שליחת בקשה מתוקנת.",
                "type": "price_unavailable"
              },
              {
                "condition": "קלט וידאו או משימת המשך מקורית אינם תקפים.",
                "http_status": 422,
                "public_identifier_field": "error.type",
                "recovery": "יש להשתמש בקלטי HTTPS תקפים. להמשך, יש להשתמש במזהה הציבורי של הווידאו המקורי שלכם שהושלם, עם אותו מפתח API.",
                "type": "invalid_request_error"
              },
              {
                "condition": "היתרה הזמינה או המגבלות אינן מאפשרות לשריין סכום.",
                "http_status": 402,
                "public_identifier_field": "error.type",
                "recovery": "יש לבדוק את היתרה הזמינה ואת המגבלות לפני שליחת בקשה חדשה.",
                "type": "billing_error"
              },
              {
                "condition": "אימות הווידאו, האחסון או הגישה לשירות אינם זמינים זמנית.",
                "http_status": 503,
                "public_identifier_field": "error.type",
                "recovery": "יש להמתין לזמינות השירות. אם כבר יש לכם מזהה וידאו, יש לבדוק את המשימה המקורית הזו במקום ליצור וידאו נוסף.",
                "type": "server_error"
              },
              {
                "code": "result_pending_check",
                "condition": "יש לבדוק את תוצאת הווידאו המקורית ואת החיוב.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "יש לשמור את מזהה הווידאו שהוחזר ולבדוק את המשימה הזו. אין לשלוח בקשת יצירה חלופית בזמן הבדיקה.",
                "type": "server_error"
              },
              {
                "code": "owned_result_unavailable",
                "condition": "הורדת הווידאו הקיים אינה זמינה זמנית.",
                "http_status": 503,
                "public_identifier_field": "error.code",
                "recovery": "יש לבדוק את אותה משימת וידאו בהמשך ולהוריד את הפלט הקיים שלה. יצירה חדשה יוצרת פעולה נפרדת.",
                "type": "server_error"
              },
              {
                "condition": "תוכן הווידאו לא פורסם.",
                "http_status": 409,
                "public_identifier_field": "error.type",
                "recovery": "יש לבדוק את הסטטוס של המשימה המקורית. יש להוריד לאחר שהיא מדווחת completed; אם היא מדווחת failed, יש לפעול לפי ההודעה שלה על בדיקת החיוב.",
                "type": "video_not_ready"
              }
            ],
            "hints": [
              "No null values or duplicate keys at any JSON object level",
              "No duration/resolution/aspect default is inserted",
              "Prompt required for all21 despite broader official image-only schema",
              "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
              "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
              "No n/output-count/client price fields accepted",
              "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}/content",
                  "query": {
                    "index": "actual output index"
                  }
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "mode": "submit_once_poll_original",
              "public_id": "video_<uuid>; owner user/key/group scope",
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{public_id}"
                }
              ],
              "submit_status": 202,
              "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
              "terminal_provider_states": [
                "failed",
                "cancelled",
                "expired"
              ],
              "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; אין לשלוח שוב את הבקשה המקורית"
            },
            "material_combinations": [
              {
                "mode": "text_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-1-5-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "יש לספק prompt כטקסט ו־duration בשניות שלמות. יש לבחור רזולוציה נתמכת ויחס גובה־רוחב נתמך, או גודל מדויק מהרשימה.",
                "required": [
                  "model",
                  "prompt",
                  "duration"
                ],
                "required_material": "הנחיה כתובה."
              },
              {
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "mode": "image_to_video",
                "model": {
                  "enum": [
                    "bytedance/seedance-1-5-pro"
                  ],
                  "enum_known": true,
                  "type": "string"
                },
                "prompt": {
                  "max_utf8_bytes": 10000,
                  "non_whitespace": true,
                  "type": "string"
                },
                "representation": "frame_images הוא מערך. כל אובייקט פריים כולל type, image_url ו־frame_type; השדה image_url מכיל url. יש להגדיר type לערך image_url. יש להשתמש ב־first_frame, עם last_frame אופציונלי. כל תפקיד של פריים מופיע פעם אחת לכל היותר. יש לספק כתובת URL ציבורית של תמונה ב־HTTPS לכל פריים. יש לבחור רזולוציה נתמכת ויחס גובה־רוחב נתמך, או גודל מדויק מהרשימה.",
                "required": [
                  "model",
                  "prompt",
                  "duration",
                  "frame_images"
                ],
                "required_material": "הנחיה כתובה ותמונה של הפריים הראשון."
              }
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video_frame_images"
            ],
            "outputs": {
              "content_range_supported": true,
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "condition": "Always present for each completed output.",
                  "description": "מיקום הווידאו הזה ברשימת הפלטים, בספירה המתחילה מאפס.",
                  "field_path": "outputs[].index",
                  "json_schema": {
                    "type": "integer"
                  },
                  "name": "index",
                  "nullable": false,
                  "type": "integer"
                },
                {
                  "condition": "Present after the owned result is available and a signed URL is created.",
                  "description": "כתובת URL חתומה להורדת הווידאו שהושלם ב־HTTPS.",
                  "field_path": "outputs[].content_url",
                  "json_schema": {
                    "type": "string"
                  },
                  "name": "content_url",
                  "nullable": false,
                  "type": "string"
                },
                {
                  "condition": "A nonempty recorded digest is returned; otherwise null.",
                  "description": "תקציר SHA-256 של בתי הווידאו המקורי; null אם אינו זמין.",
                  "field_path": "outputs[].sha256",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "sha256",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when the recorded file size is positive.",
                  "description": "גודל קובץ הווידאו המקורי בבתים; null אם אינו זמין.",
                  "field_path": "outputs[].size_bytes",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "size_bytes",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned when the measured duration is positive.",
                  "description": "משך הווידאו המדוד באלפיות שנייה; null אם אינו זמין.",
                  "field_path": "outputs[].duration_ms",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "duration_ms",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "רוחב הווידאו בפיקסלים; null אם אינו זמין.",
                  "field_path": "outputs[].width",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "width",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Width, height and the video codec are returned together when recorded.",
                  "description": "גובה הווידאו בפיקסלים; null אם אינו זמין.",
                  "field_path": "outputs[].height",
                  "json_schema": {
                    "type": [
                      "integer",
                      "null"
                    ]
                  },
                  "name": "height",
                  "nullable": true,
                  "type": "integer | null"
                },
                {
                  "condition": "Returned together with positive recorded width and height.",
                  "description": "מזהה מקודד הווידאו; null אם לא נרשם.",
                  "field_path": "outputs[].video_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "video_codec",
                  "nullable": true,
                  "type": "string | null"
                },
                {
                  "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                  "description": "האם הווידאו מכיל רצועת אודיו; null אם לא נמדד.",
                  "field_path": "outputs[].has_audio",
                  "json_schema": {
                    "type": [
                      "boolean",
                      "null"
                    ]
                  },
                  "name": "has_audio",
                  "nullable": true,
                  "type": "boolean | null"
                },
                {
                  "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                  "description": "מזהה מקודד האודיו; null כאשר לא נרשם מזהה.",
                  "field_path": "outputs[].audio_codec",
                  "json_schema": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "name": "audio_codec",
                  "nullable": true,
                  "type": "string | null"
                }
              ],
              "format": "original MP4 bytes; no normalization/transcode",
              "max_aggregate_seconds": 2400,
              "max_bytes_per_output": 67108864,
              "max_seconds_per_output": 600,
              "result": "כתובות חתומות לתוכן שבבעלותכם",
              "unmeasured_fields_nullable": true
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "bytedance/seedance-1-5-pro"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "schema": {
                  "const": "bytedance/seedance-1-5-pro"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minLength": 1,
                "name": "prompt",
                "required": true,
                "schema": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  5,
                  6,
                  7,
                  8,
                  9,
                  10,
                  11,
                  12
                ],
                "enum_known": true,
                "maximum": 600,
                "minimum": 1,
                "name": "duration",
                "required": true,
                "schema": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480p",
                  "720p",
                  "1080p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": false,
                "schema": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "1:1",
                  "3:4",
                  "9:16",
                  "9:21",
                  "4:3",
                  "16:9",
                  "21:9"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": false,
                "schema": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "9:21",
                    "4:3",
                    "16:9",
                    "21:9"
                  ]
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "השמטת האפשרות הזו בוחרת במחיר הכולל אודיו. הגדירו אותה ל־false כדי לבחור במחיר ללא אודיו. יש לבדוק את has_audio בתוצאה כדי לדעת אם הוחזרה רצועת אודיו.",
                "default": null,
                "default_known": false,
                "enum": [
                  false,
                  true
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": false,
                "schema": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "המפתחות האלה מתארים כל אובייקט פריים; image_url מכיל רק url. יש להשמיט frame_images בבקשה המבוססת על טקסט בלבד.",
                "content": "מערך אובייקטים של פריימים. כל אובייקט כולל type=image_url, שדה image_url המכיל url, ו־frame_type. יש להשתמש בכתובת URL של תמונה ב־HTTPS ולהגדיר frame_type לערך first_frame או last_frame. כל תפקיד של פריים מופיע פעם אחת לכל היותר.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "exact_keys": [
                  "type",
                  "image_url",
                  "frame_type"
                ],
                "maxItems": 2,
                "max_items": 2,
                "minItems": 1,
                "min_items": 1,
                "name": "frame_images",
                "required": false,
                "schema": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxItems": 0,
                "name": "input_references",
                "required": false,
                "schema": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "type": "array"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "480x480",
                  "480x640",
                  "480x854",
                  "480x1120",
                  "640x480",
                  "720x720",
                  "720x960",
                  "720x1280",
                  "720x1680",
                  "854x480",
                  "960x720",
                  "1080x1080",
                  "1080x1440",
                  "1080x1920",
                  "1080x2520",
                  "1120x480",
                  "1280x720",
                  "1440x1080",
                  "1680x720",
                  "1920x1080",
                  "2520x1080"
                ],
                "enum_known": true,
                "name": "size",
                "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                "required": false,
                "schema": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "480x1120",
                    "640x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "854x480",
                    "960x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1080x2520",
                    "1120x480",
                    "1280x720",
                    "1440x1080",
                    "1680x720",
                    "1920x1080",
                    "2520x1080"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum": 9223372036854775807,
                "minimum": -9223372036854775808,
                "name": "seed",
                "required": false,
                "schema": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "callback_url",
                "pattern": "^https://",
                "required": false,
                "schema": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "session_id",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "trace",
                "required": false,
                "schema": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "type": "object"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 256,
                "name": "user",
                "required": false,
                "schema": {
                  "maxLength": 256,
                  "type": "string"
                },
                "type": "string"
              }
            ],
            "request_schema": {
              "$schema": "https://json-schema.org/draft/2020-12/schema",
              "additionalProperties": false,
              "properties": {
                "aspect_ratio": {
                  "enum": [
                    "1:1",
                    "3:4",
                    "9:16",
                    "9:21",
                    "4:3",
                    "16:9",
                    "21:9"
                  ]
                },
                "callback_url": {
                  "format": "uri",
                  "pattern": "^https://",
                  "type": "string",
                  "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                },
                "creativity": false,
                "duration": {
                  "enum": [
                    4,
                    5,
                    6,
                    7,
                    8,
                    9,
                    10,
                    11,
                    12
                  ],
                  "maximum": 600,
                  "minimum": 1,
                  "type": "integer"
                },
                "frame_images": {
                  "items": {
                    "additionalProperties": false,
                    "properties": {
                      "frame_type": {
                        "enum": [
                          "first_frame",
                          "last_frame"
                        ]
                      },
                      "image_url": {
                        "additionalProperties": false,
                        "properties": {
                          "url": {
                            "format": "uri",
                            "pattern": "^https://",
                            "type": "string",
                            "x-source-rule": "public HTTPS; no userinfo, fragment, whitespace, private/reserved hosts; own-media links additionally require owner/signature/status/hash/MIME/bytes"
                          }
                        },
                        "required": [
                          "url"
                        ],
                        "type": "object"
                      },
                      "type": {
                        "const": "image_url"
                      }
                    },
                    "required": [
                      "type",
                      "image_url",
                      "frame_type"
                    ],
                    "type": "object"
                  },
                  "maxItems": 2,
                  "minItems": 1,
                  "type": "array",
                  "x-source-unique-role": "frame_type"
                },
                "generate_audio": {
                  "enum": [
                    false,
                    true
                  ],
                  "x-omitted-default": "published audio capability when true/false; unknown if null; output audio must be measured"
                },
                "input_references": {
                  "items": false,
                  "maxItems": 0,
                  "type": "array"
                },
                "model": {
                  "const": "bytedance/seedance-1-5-pro"
                },
                "previous_job_id": false,
                "prompt": {
                  "minLength": 1,
                  "type": "string",
                  "x-source-max-utf8-bytes": 10000,
                  "x-source-non-whitespace": true
                },
                "provider": false,
                "resolution": {
                  "enum": [
                    "480p",
                    "720p",
                    "1080p"
                  ]
                },
                "seed": {
                  "maximum": 9223372036854775807,
                  "minimum": -9223372036854775808,
                  "type": "integer"
                },
                "session_id": {
                  "maxLength": 256,
                  "type": "string"
                },
                "size": {
                  "enum": [
                    "480x480",
                    "480x640",
                    "480x854",
                    "480x1120",
                    "640x480",
                    "720x720",
                    "720x960",
                    "720x1280",
                    "720x1680",
                    "854x480",
                    "960x720",
                    "1080x1080",
                    "1080x1440",
                    "1080x1920",
                    "1080x2520",
                    "1120x480",
                    "1280x720",
                    "1440x1080",
                    "1680x720",
                    "1920x1080",
                    "2520x1080"
                  ],
                  "pattern": "^[1-9][0-9]*x[1-9][0-9]*$",
                  "type": "string"
                },
                "trace": {
                  "additionalProperties": true,
                  "properties": {
                    "generation_name": {
                      "type": "string"
                    },
                    "parent_span_id": {
                      "type": "string"
                    },
                    "span_name": {
                      "type": "string"
                    },
                    "trace_id": {
                      "type": "string"
                    },
                    "trace_name": {
                      "type": "string"
                    }
                  },
                  "type": "object"
                },
                "upscale_factor": false,
                "user": {
                  "maxLength": 256,
                  "type": "string"
                }
              },
              "required": [
                "model",
                "prompt",
                "duration"
              ],
              "title": "Video generation request",
              "type": "object",
              "x-source-global-rules": [
                "No null values or duplicate keys at any JSON object level",
                "No duration/resolution/aspect default is inserted",
                "Prompt required for all21 despite broader official image-only schema",
                "A request must also pass model membership, exact price card, SKU selection and frozen quote construction",
                "Non-string known trace fields reject; other trace keys retain arbitrary JSON",
                "No n/output-count/client price fields accepted",
                "Provider passthrough disabled for all21; feed allowlist names do not supply provider slug/value contract"
              ],
              "x-source-material-combinations": [
                "Exact model/card, positive published duration, model resolution/aspect membership and valid frozen quote are all required; independent enum arrays are not proven provider Cartesian combinations.",
                "Use exact published size or compatible resolution/aspect. Omitted options stay omitted; no guessed geometry.",
                "first_frame/last_frame roles each occur at most once; frame_images wins mode precedence over input_references.",
                "provider options are unavailable for this model despite any published passthrough-name allowlist.",
                "Request geometry is required for the pre-generation estimate and reserve. Returned geometry and track time describe the generated output; final charge follows the actual billed configuration.",
                "Video references with *_with_video_input quantity are rejected; image/audio references only where model reference types admit them."
              ]
            },
            "unsupported": [
              "provider",
              "previous_job_id",
              "upscale_factor",
              "creativity"
            ]
          },
          "input": {
            "additional_properties": false,
            "content_type": "application/json",
            "material_types": [
              "text",
              "image"
            ],
            "optional_controls": [
              "resolution",
              "aspect_ratio",
              "generate_audio",
              "frame_images",
              "input_references",
              "size",
              "seed",
              "callback_url",
              "session_id",
              "trace",
              "user"
            ],
            "required": [
              "model",
              "prompt",
              "duration"
            ]
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}/content",
                "query": {
                  "index": "actual output index"
                }
              }
            ],
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "mode": "submit_once_poll_original",
            "public_id": "video_<uuid>; owner user/key/group scope",
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{public_id}"
              }
            ],
            "submit_status": 202,
            "terminal_failure_public": "200 failed + charge_pending_check=true; inspect original operation",
            "terminal_provider_states": [
              "failed",
              "cancelled",
              "expired"
            ],
            "unknown": "503 result_pending_check + originalid + X-Should-Retry:false; never replay original"
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [],
          "operation_modes": [
            "text_to_video",
            "image_to_video_frame_images"
          ],
          "output": {
            "content_range_supported": true,
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "condition": "Always present for each completed output.",
                "description": "Zero-based position of this video in the outputs list.",
                "field_path": "outputs[].index",
                "json_schema": {
                  "type": "integer"
                },
                "name": "index",
                "nullable": false,
                "type": "integer"
              },
              {
                "condition": "Present after the owned result is available and a signed URL is created.",
                "description": "Signed HTTPS download URL for this completed video.",
                "field_path": "outputs[].content_url",
                "json_schema": {
                  "type": "string"
                },
                "name": "content_url",
                "nullable": false,
                "type": "string"
              },
              {
                "condition": "A nonempty recorded digest is returned; otherwise null.",
                "description": "SHA-256 digest of the original video bytes; null if unavailable.",
                "field_path": "outputs[].sha256",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "sha256",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when the recorded file size is positive.",
                "description": "Size of the original video file in bytes; null if unavailable.",
                "field_path": "outputs[].size_bytes",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "size_bytes",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned when the measured duration is positive.",
                "description": "Measured video duration in milliseconds; null if unavailable.",
                "field_path": "outputs[].duration_ms",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "duration_ms",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video width in pixels; null if unavailable.",
                "field_path": "outputs[].width",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "width",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Width, height and the video codec are returned together when recorded.",
                "description": "Video height in pixels; null if unavailable.",
                "field_path": "outputs[].height",
                "json_schema": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "name": "height",
                "nullable": true,
                "type": "integer | null"
              },
              {
                "condition": "Returned together with positive recorded width and height.",
                "description": "Video codec identifier; null if not recorded.",
                "field_path": "outputs[].video_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "video_codec",
                "nullable": true,
                "type": "string | null"
              },
              {
                "condition": "Returned when width, height and the video codec are recorded; false is a known result.",
                "description": "Whether the video contains an audio track; null if not measured.",
                "field_path": "outputs[].has_audio",
                "json_schema": {
                  "type": [
                    "boolean",
                    "null"
                  ]
                },
                "name": "has_audio",
                "nullable": true,
                "type": "boolean | null"
              },
              {
                "condition": "Returned when video metadata is recorded and the audio codec identifier is nonempty.",
                "description": "Audio codec identifier; null when no identifier is recorded.",
                "field_path": "outputs[].audio_codec",
                "json_schema": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "name": "audio_codec",
                "nullable": true,
                "type": "string | null"
              }
            ],
            "format": "original MP4 bytes; no normalization/transcode",
            "max_aggregate_seconds": 2400,
            "max_bytes_per_output": 67108864,
            "max_seconds_per_output": 600,
            "result": "signed owned content URLs",
            "unmeasured_fields_nullable": true
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "התעריף לטוקן וידאו הוא מחיר הייחוס העיקרי. האומדנים הראשיים לשנייה הם נתוני ייחוס נפרדים, ואינם חיוב נוסף.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "מחיר טוקן וידאו",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "0.05184",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.05184",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_REQUEST'\nfrom pathlib import Path\nPath('request.json').write_text('{\"aspect_ratio\":\"16:9\",\"duration\":8,\"model\":\"bytedance/seedance-1-5-pro\",\"prompt\":\"A serene mountain landscape at sunset\",\"resolution\":\"720p\"}', encoding='utf-8')\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('result.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_STATUS_URL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote\nr=json.loads(Path('result.json').read_text())\nif not isinstance(r.get('id'),str) or not r['id']:raise SystemExit('Keep the original response and headers for reconciliation; no returned ID')\nPath('status-url.txt').write_text('https://api.ailoot.ai/v1/videos/'+quote(r['id'],safe=''))\nPY_STATUS_URL\ncurl --fail-with-body --silent --show-error \"$(cat status-url.txt)\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\npython3 - <<'PY_RESULT'\nimport json\nfrom pathlib import Path\nr=json.loads(Path('status.json').read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint('Keep the complete JSON and response headers; do not resubmit an unknown creation.')\nPY_RESULT\n",
            "label": "GET original status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\nexport AILOOT_API_KEY\npython3 - <<'PY_ASSETS'\nimport json,os,subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin,urlsplit\nr=json.loads(Path('status.json').read_text())\nif r.get('status')!='completed':raise SystemExit('Keep the original ID and read its status; never recreate an unknown job')\nif not isinstance(r.get('data'),list) or not r['data']:raise SystemExit('Keep the complete original status; no completed outputs supplied')\nurls=[]\nfor i,u in enumerate(r.get('data',[])):\n    if not isinstance(u,str):raise SystemExit('Keep the original response; unexpected asset shape')\n    urls.append((str(i),u))\nfor label,path in urls:\n    u=urljoin('https://api.ailoot.ai',path);z=urlsplit(u)\n    if z.scheme!='https' or z.netloc!='api.ailoot.ai' or z.username or z.password:raise SystemExit('Use the actual returned Ailoot owned content URL')\n    target=Path('owned-'+label+'.bin')\n    subprocess.run(['curl','--fail-with-body','--silent','--show-error',u,'-H','Authorization: Bearer '+os.environ['AILOOT_API_KEY'],'-D',str(target)+'.headers','-o',str(target)],check=True)\nprint('All returned owned URLs saved; complete metadata, timing and usage remain in the JSON.')\nPY_ASSETS\n",
            "label": "Save every completed owned output",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "No additional condition is declared in this pricing key.",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0048000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000048",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "The video-token rate is the primary price reference. Per-second headline estimates are separate references, not an extra charge.",
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per 1,000 video tokens"
            },
            "label": "Video-token price",
            "units": [
              {
                "amount": "0.0024000",
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_tokens_without_audio",
                "label": "Video-token price",
                "native_amount_usd_per_unit": "0.0000024",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.05184",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.05184",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "bytedance/seedance-1-5-pro",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{public_id}",
          "GET /v1/videos/{public_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0024000",
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_tokens_without_audio",
            "label": "Video-token price",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.05184",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.05184",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "bytedance/seedance-1-5-pro",
        "request_model_id": "bytedance/seedance-1-5-pro",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 1.5 Pro",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.05184,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.05184,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "draft_estimate_conversion_factor": "0.6",
          "draft_quantity_is_estimate_not_actual": true,
          "maker_model_id": "seedance-1-5-pro-251215",
          "output_audio": true,
          "quoted_unit": "1000000_video_tokens"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000048",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "draft_estimate_conversion_factor": "0.6",
              "draft_quantity_is_estimate_not_actual": true,
              "maker_model_id": "seedance-1-5-pro-251215",
              "output_audio": true,
              "quoted_unit": "1000000_video_tokens"
            },
            "key": "base",
            "label": "base",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "draft_estimate_conversion_factor": "0.7",
          "draft_quantity_is_estimate_not_actual": true,
          "maker_model_id": "seedance-1-5-pro-251215",
          "output_audio": false,
          "quoted_unit": "1000000_video_tokens"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000024",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "draft_estimate_conversion_factor": "0.7",
              "draft_quantity_is_estimate_not_actual": true,
              "maker_model_id": "seedance-1-5-pro-251215",
              "output_audio": false,
              "quoted_unit": "1000000_video_tokens"
            },
            "key": "base",
            "label": "base",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "draft_estimate_conversion_factor": "0.6",
          "draft_quantity_is_estimate_not_actual": true,
          "maker_model_id": "seedance-1-5-pro-251215",
          "output_audio": true,
          "quoted_unit": "1000000_video_tokens"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000024",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "draft_estimate_conversion_factor": "0.6",
              "draft_quantity_is_estimate_not_actual": true,
              "maker_model_id": "seedance-1-5-pro-251215",
              "output_audio": true,
              "quoted_unit": "1000000_video_tokens"
            },
            "key": "base",
            "label": "base",
            "profile_index": 2,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "billable_token_source": "usage.completion_tokens",
          "draft_estimate_conversion_factor": "0.7",
          "draft_quantity_is_estimate_not_actual": true,
          "maker_model_id": "seedance-1-5-pro-251215",
          "output_audio": false,
          "quoted_unit": "1000000_video_tokens"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.0000012",
            "amount_unit": "usd_per_token",
            "conditions": {
              "billable_token_source": "usage.completion_tokens",
              "draft_estimate_conversion_factor": "0.7",
              "draft_quantity_is_estimate_not_actual": true,
              "maker_model_id": "seedance-1-5-pro-251215",
              "output_audio": false,
              "quoted_unit": "1000000_video_tokens"
            },
            "key": "base",
            "label": "base",
            "profile_index": 3,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "video_token"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.0048000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "video token",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000048",
            "key": "video_tokens",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000048",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          },
          {
            "amount": "0.0024000",
            "amount_unit": "usd_per_thousand_tokens",
            "basis": "audio=false",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.0000024",
            "key": "video_tokens_without_audio",
            "label": "video token",
            "native_amount_usd_per_unit": "0.0000024",
            "native_quantity": 1,
            "quantity": 1000,
            "side": "out",
            "unit": "video_token"
          }
        ]
      }
    ],
    "public_id": "bytedance/seedance-1-5-pro",
    "short": "ByteDance Seedance 1.5 Pro יוצר וידאו יחד עם דיאלוג, אפקטי צליל ומוזיקה מסונכרנים. ביימו את הדוברים, הרגשות, המצלמה והאווירה הקולית כדי לפתח דרמות קצרות, פרסומות מדובבות וסצנות דמויות."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "ByteDance Seedance 1.5 Pro יוצר וידאו יחד עם דיאלוג, אפקטי צליל ומוזיקה מסונכרנים. ביימו את הדוברים, הרגשות, המצלמה והאווירה הקולית כדי לפתח דרמות קצרות, פרסומות מדובבות וסצנות דמויות.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_exact_canonical_sha256": "76ad6f207d15b09747e4bb59bb9561404310a2ed05c2058b840daaec41cb2c4c",
    "raw_model_js_projection_sha256": "3ebfc52b97a9ddebe9c713f59d9150707255814293b9a8301f07365057fd3bfe",
    "raw_model_json_sha256": "76ad6f207d15b09747e4bb59bb9561404310a2ed05c2058b840daaec41cb2c4c",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "df1c5d09da211697659015cad37eb07106b608a971f14995f2cda18125f31d74"
}
