{
  "aboutHtml": "<p>Seedance 2.5 יוצר וידאו באמצעות סצנה כתובה וקובצי ייחוס רב־מודאליים. למזהה המדויק doubao-seedance-2-5-260628 יש פעולה ודוגמה מתועדות משלו. הפעולה הזאת מתארת יצירת וידאו, עריכת וידאו והארכת וידאו, עם תמונות, וידאו, שמע וטקסט כמדיית קלט. השתמשו בקובצי הייחוס להעברת מראה נושא הצילום, פעולה, תנועת מצלמה, סגנון וקול, ואז הסבירו איזו תוצאה ליצור מהם.</p><p>שילובי הקלט כוללים טקסט לבדו, תמונות או וידאו עם טקסט אופציונלי, תמונות עם שמע, וידאו עם שמע ותמונות, וידאו ושמע יחד. השילובים המנויים מצרפים שמע למדיה חזותית ואינם מתארים בקשה עם שמע בלבד. ארגנו כל פריט לפי תפקידו: תמונה מבססת נושא צילום או מראה, וידאו מדגים תנועה או סצנה קיימת ושמע מספק ייחוס קולי. ציינו איזה תפקיד חשוב לשוט המבוקש, כדי שקובץ ייחוס לרקע לא ייתפס בטעות כדמות הראשית.</p><p>הדוגמה המסוימת של 2.5 היא רצף פרסומי למוצר. היא מספקת תמונה וכמה קובצי וידאו לייחוס, ואז מתארת מוקד פתיחה, סידורי מוצר ברצף מוגדר, שוטים של פרטים, פעולה בהילוך איטי וקומפוזיציית מותג סוגרת. הבקשה מקצה תפקידי reference_image ו-reference_video ומשתמשת בקובצי ייחוס נפרדים לקומפוזיציה, לתנועה, לעבודת מצלמה ולהשפעה. כך מתקבל מבנה מעשי לרעיון לקמפיין: תכננו את הרגעים החזותיים, זהו את קובץ הייחוס לכל רגע והגדירו את הסידור הסופי.</p><p>רצף כתוב יכול להבחין בין מה שקורה לבין אופן הצילום. תארו תחילה את פעולת המוצר, ואז את גודל השוט, מסלול המצלמה, הקצב והמעבר למבט הבא. אם קובץ ייחוס אחד מגדיר את המוצר ואחר מדגים תנועת מצלמה, ציינו את תחומי האחריות הנפרדים האלה. לסצנה עם כמה אובייקטים, הסבירו את המיקומים שלהם ואת סדר האינטראקציות. בדקו בתוצאה שנוצרה את צורת המוצר, סידורו ותנועתו בפועל, במקום להניח שכל פרט בקובצי הייחוס מופיע ללא שינוי.</p><p>לעריכה, זהו את הווידאו הקיים ואת הרכיב שיש לתקן, כמו הסביבה, פעולה או הסגנון החזותי, וציינו איזו רציפות לשמור. להארכה, תארו איך הסצנה צריכה להמשיך מקטעי הווידאו שסופקו. בדקו את החיבור וגם את הקטע החדש: מראה נושא הצילום, כיוון התנועה, מיקום המצלמה ותזמון הקול משפיעים כולם על השאלה אם התוצאה נתפסת כסצנה אחת. שמרו יחד את הווידאו המקורי ואת הגרסה המתוקנת שהושלמה, כדי שאפשר יהיה לבדוק את השינוי מול הרציפות המיועדת.</p><p>הדוגמה הרב־מודאלית המתועדת של 2.5 מגדירה generate_audio=true ומבקשת רצף של חמש עשרה שניות במסגור 16:9. הערכים האלה מתארים את הדוגמה הזאת, ולא תקרת משך כללית או מגבלה על נכסי הייחוס. תנו לסצנה המבוקשת כוונת קול ברורה, לרבות היחס בין מוזיקה, אפקטים והפעולה הגלויה, ואז העריכו את הפלט האודיו־ויזואלי בפועל. יש לבדוק יחד את קובץ השמע לייחוס ואת פס הקול שנוצר מבחינת הקצב והביצוע המיועדים.</p><p>בחרו משך, מסגור ורזולוציה מההגדרות המוצעות לפרופיל המסוים הזה. שמרו את התצורה שהתבקשה עם הפרומפט והשוו אותה לשדות המשימה שהוחזרו בפועל. השתמשו במשך, ברזולוציה וביחס שהוחזרו בעת הכנת הקליפ שהושלם ליעדו. שמרו את מזהה הפרופיל המדויק בתיעוד הגרסה, כדי שהשוואה מאוחרת תשתמש באותה מהדורה שנבחרה.</p><p>השימוש בטוקני וידאו מחושב כך: (משך וידאו הקלט + משך וידאו הפלט) × רוחב הפלט × גובה הפלט × קצב הפריימים של הפלט / 1024. לבקשות הכוללות וידאו קלט ולבקשות ללא וידאו קלט יש קטגוריות חיוב נפרדות. שאילתת המשימה מדווחת usage.completion_tokens ו-usage.total_tokens; שמרו את הכמויות המדווחות האלה עם הקליפ שהושלם.</p><p>היצירה אסינכרונית. השליחה מחזירה מזהה, ותהליך המשימה המוגדר מספק סטטוס ולאחר הצלחה content.video_url. שמרו את הקליפ שהושלם יחד עם מדיית המקור וההנחיות לרצף. בדקו את כל הרגעים שתוכננו, את אינטראקציות האובייקטים, את מראה הדמויות, את המסגור ואת יישור הקול לאורך התוצאה כולה. לתיקון, זהו את הפרט המסוים שלא הושג ושמרו את החלקים המוצלחים בסצנה, במקום להחליף את ההנחיות כולן בהוראות לא קשורות.</p>",
  "aboutText": "Seedance 2.5 יוצר וידאו באמצעות סצנה כתובה וקובצי ייחוס רב־מודאליים. למזהה המדויק doubao-seedance-2-5-260628 יש פעולה ודוגמה מתועדות משלו. הפעולה הזאת מתארת יצירת וידאו, עריכת וידאו והארכת וידאו, עם תמונות, וידאו, שמע וטקסט כמדיית קלט. השתמשו בקובצי הייחוס להעברת מראה נושא הצילום, פעולה, תנועת מצלמה, סגנון וקול, ואז הסבירו איזו תוצאה ליצור מהם.\n\nשילובי הקלט כוללים טקסט לבדו, תמונות או וידאו עם טקסט אופציונלי, תמונות עם שמע, וידאו עם שמע ותמונות, וידאו ושמע יחד. השילובים המנויים מצרפים שמע למדיה חזותית ואינם מתארים בקשה עם שמע בלבד. ארגנו כל פריט לפי תפקידו: תמונה מבססת נושא צילום או מראה, וידאו מדגים תנועה או סצנה קיימת ושמע מספק ייחוס קולי. ציינו איזה תפקיד חשוב לשוט המבוקש, כדי שקובץ ייחוס לרקע לא ייתפס בטעות כדמות הראשית.\n\nהדוגמה המסוימת של 2.5 היא רצף פרסומי למוצר. היא מספקת תמונה וכמה קובצי וידאו לייחוס, ואז מתארת מוקד פתיחה, סידורי מוצר ברצף מוגדר, שוטים של פרטים, פעולה בהילוך איטי וקומפוזיציית מותג סוגרת. הבקשה מקצה תפקידי reference_image ו-reference_video ומשתמשת בקובצי ייחוס נפרדים לקומפוזיציה, לתנועה, לעבודת מצלמה ולהשפעה. כך מתקבל מבנה מעשי לרעיון לקמפיין: תכננו את הרגעים החזותיים, זהו את קובץ הייחוס לכל רגע והגדירו את הסידור הסופי.\n\nרצף כתוב יכול להבחין בין מה שקורה לבין אופן הצילום. תארו תחילה את פעולת המוצר, ואז את גודל השוט, מסלול המצלמה, הקצב והמעבר למבט הבא. אם קובץ ייחוס אחד מגדיר את המוצר ואחר מדגים תנועת מצלמה, ציינו את תחומי האחריות הנפרדים האלה. לסצנה עם כמה אובייקטים, הסבירו את המיקומים שלהם ואת סדר האינטראקציות. בדקו בתוצאה שנוצרה את צורת המוצר, סידורו ותנועתו בפועל, במקום להניח שכל פרט בקובצי הייחוס מופיע ללא שינוי.\n\nלעריכה, זהו את הווידאו הקיים ואת הרכיב שיש לתקן, כמו הסביבה, פעולה או הסגנון החזותי, וציינו איזו רציפות לשמור. להארכה, תארו איך הסצנה צריכה להמשיך מקטעי הווידאו שסופקו. בדקו את החיבור וגם את הקטע החדש: מראה נושא הצילום, כיוון התנועה, מיקום המצלמה ותזמון הקול משפיעים כולם על השאלה אם התוצאה נתפסת כסצנה אחת. שמרו יחד את הווידאו המקורי ואת הגרסה המתוקנת שהושלמה, כדי שאפשר יהיה לבדוק את השינוי מול הרציפות המיועדת.\n\nהדוגמה הרב־מודאלית המתועדת של 2.5 מגדירה generate_audio=true ומבקשת רצף של חמש עשרה שניות במסגור 16:9. הערכים האלה מתארים את הדוגמה הזאת, ולא תקרת משך כללית או מגבלה על נכסי הייחוס. תנו לסצנה המבוקשת כוונת קול ברורה, לרבות היחס בין מוזיקה, אפקטים והפעולה הגלויה, ואז העריכו את הפלט האודיו־ויזואלי בפועל. יש לבדוק יחד את קובץ השמע לייחוס ואת פס הקול שנוצר מבחינת הקצב והביצוע המיועדים.\n\nבחרו משך, מסגור ורזולוציה מההגדרות המוצעות לפרופיל המסוים הזה. שמרו את התצורה שהתבקשה עם הפרומפט והשוו אותה לשדות המשימה שהוחזרו בפועל. השתמשו במשך, ברזולוציה וביחס שהוחזרו בעת הכנת הקליפ שהושלם ליעדו. שמרו את מזהה הפרופיל המדויק בתיעוד הגרסה, כדי שהשוואה מאוחרת תשתמש באותה מהדורה שנבחרה.\n\nהשימוש בטוקני וידאו מחושב כך: (משך וידאו הקלט + משך וידאו הפלט) × רוחב הפלט × גובה הפלט × קצב הפריימים של הפלט / 1024. לבקשות הכוללות וידאו קלט ולבקשות ללא וידאו קלט יש קטגוריות חיוב נפרדות. שאילתת המשימה מדווחת usage.completion_tokens ו-usage.total_tokens; שמרו את הכמויות המדווחות האלה עם הקליפ שהושלם.\n\nהיצירה אסינכרונית. השליחה מחזירה מזהה, ותהליך המשימה המוגדר מספק סטטוס ולאחר הצלחה content.video_url. שמרו את הקליפ שהושלם יחד עם מדיית המקור וההנחיות לרצף. בדקו את כל הרגעים שתוכננו, את אינטראקציות האובייקטים, את מראה הדמויות, את המסגור ואת יישור הקול לאורך התוצאה כולה. לתיקון, זהו את הפרט המסוים שלא הושג ושמרו את החלקים המוצלחים בסצנה, במקום להחליף את ההנחיות כולן בהוראות לא קשורות.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "8f29c41c82a72c36a0e5283c4ceabb7c2d9fda6e65f1a0b8e5d9db9f186b4248",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "he",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">•</span><h2 id=\"sheet-title\">ByteDance: Seedance 2.5</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>ByteDance /</span><code>doubao-seedance-2-5-260628</code><button type=\"button\" id=\"copy-id\">העתקת ID</button></div><nav class=\"card-jump-nav\" aria-label=\"חלקי כרטיס המודל\"><button type=\"button\" data-card-jump=\"overview\">התחלה</button><button type=\"button\" data-card-jump=\"methods\">קלט ושיטות</button><button type=\"button\" data-card-jump=\"pricing\">תעריפים</button><button type=\"button\" data-card-jump=\"examples\">דוגמאות</button><button type=\"button\" data-card-jump=\"results\">תוצאות</button><button type=\"button\" data-card-jump=\"aliases\">כינויים</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"שיטות API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Ultra|videos|/v1/videos|doubao-seedance-2-5-260628\">וידאו</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">התחלה</h3><p class=\"mdesc-full\">Seedance 2.5 יוצר וידאו מטקסט ומתמונות או מקובצי ייחוס של וידאו ושמע, עם תהליכי עבודה מתועדים לעריכה ולהארכה. הדוגמה המסוימת של 2.5 משלבת תמונת מוצר עם כמה קובצי ייחוס לתנועה ומפעילה קול שנוצר לרצף פרסומי מתואם.</p><dl class=\"card-io\" data-card-io><div><dt>סוגי קלט נתמכים</dt><dd>טקסט · תמונות · וידאו · שמע</dd></div><div><dt>תוצאות</dt><dd>וידאו</dd></div></dl><details class=\"card-about\"><summary>על המודל</summary><p class=\"note-s\" data-model-method-boundary>התיאור הזה מציג את יכולות המודל. הקלט, הפלט והאפשרויות הזמינים ב-Ailoot מפורטים בהמשך לפי השיטה שנבחרה.</p><div class=\"mabout\" id=\"m-about\"><p>Seedance 2.5 יוצר וידאו באמצעות סצנה כתובה וקובצי ייחוס רב־מודאליים. למזהה המדויק doubao-seedance-2-5-260628 יש פעולה ודוגמה מתועדות משלו. הפעולה הזאת מתארת יצירת וידאו, עריכת וידאו והארכת וידאו, עם תמונות, וידאו, שמע וטקסט כמדיית קלט. השתמשו בקובצי הייחוס להעברת מראה נושא הצילום, פעולה, תנועת מצלמה, סגנון וקול, ואז הסבירו איזו תוצאה ליצור מהם.</p><p>שילובי הקלט כוללים טקסט לבדו, תמונות או וידאו עם טקסט אופציונלי, תמונות עם שמע, וידאו עם שמע ותמונות, וידאו ושמע יחד. השילובים המנויים מצרפים שמע למדיה חזותית ואינם מתארים בקשה עם שמע בלבד. ארגנו כל פריט לפי תפקידו: תמונה מבססת נושא צילום או מראה, וידאו מדגים תנועה או סצנה קיימת ושמע מספק ייחוס קולי. ציינו איזה תפקיד חשוב לשוט המבוקש, כדי שקובץ ייחוס לרקע לא ייתפס בטעות כדמות הראשית.</p><p>הדוגמה המסוימת של 2.5 היא רצף פרסומי למוצר. היא מספקת תמונה וכמה קובצי וידאו לייחוס, ואז מתארת מוקד פתיחה, סידורי מוצר ברצף מוגדר, שוטים של פרטים, פעולה בהילוך איטי וקומפוזיציית מותג סוגרת. הבקשה מקצה תפקידי reference_image ו-reference_video ומשתמשת בקובצי ייחוס נפרדים לקומפוזיציה, לתנועה, לעבודת מצלמה ולהשפעה. כך מתקבל מבנה מעשי לרעיון לקמפיין: תכננו את הרגעים החזותיים, זהו את קובץ הייחוס לכל רגע והגדירו את הסידור הסופי.</p><p>רצף כתוב יכול להבחין בין מה שקורה לבין אופן הצילום. תארו תחילה את פעולת המוצר, ואז את גודל השוט, מסלול המצלמה, הקצב והמעבר למבט הבא. אם קובץ ייחוס אחד מגדיר את המוצר ואחר מדגים תנועת מצלמה, ציינו את תחומי האחריות הנפרדים האלה. לסצנה עם כמה אובייקטים, הסבירו את המיקומים שלהם ואת סדר האינטראקציות. בדקו בתוצאה שנוצרה את צורת המוצר, סידורו ותנועתו בפועל, במקום להניח שכל פרט בקובצי הייחוס מופיע ללא שינוי.</p><p>לעריכה, זהו את הווידאו הקיים ואת הרכיב שיש לתקן, כמו הסביבה, פעולה או הסגנון החזותי, וציינו איזו רציפות לשמור. להארכה, תארו איך הסצנה צריכה להמשיך מקטעי הווידאו שסופקו. בדקו את החיבור וגם את הקטע החדש: מראה נושא הצילום, כיוון התנועה, מיקום המצלמה ותזמון הקול משפיעים כולם על השאלה אם התוצאה נתפסת כסצנה אחת. שמרו יחד את הווידאו המקורי ואת הגרסה המתוקנת שהושלמה, כדי שאפשר יהיה לבדוק את השינוי מול הרציפות המיועדת.</p><p>הדוגמה הרב־מודאלית המתועדת של 2.5 מגדירה generate_audio=true ומבקשת רצף של חמש עשרה שניות במסגור 16:9. הערכים האלה מתארים את הדוגמה הזאת, ולא תקרת משך כללית או מגבלה על נכסי הייחוס. תנו לסצנה המבוקשת כוונת קול ברורה, לרבות היחס בין מוזיקה, אפקטים והפעולה הגלויה, ואז העריכו את הפלט האודיו־ויזואלי בפועל. יש לבדוק יחד את קובץ השמע לייחוס ואת פס הקול שנוצר מבחינת הקצב והביצוע המיועדים.</p><p>בחרו משך, מסגור ורזולוציה מההגדרות המוצעות לפרופיל המסוים הזה. שמרו את התצורה שהתבקשה עם הפרומפט והשוו אותה לשדות המשימה שהוחזרו בפועל. השתמשו במשך, ברזולוציה וביחס שהוחזרו בעת הכנת הקליפ שהושלם ליעדו. שמרו את מזהה הפרופיל המדויק בתיעוד הגרסה, כדי שהשוואה מאוחרת תשתמש באותה מהדורה שנבחרה.</p><p>השימוש בטוקני וידאו מחושב כך: (משך וידאו הקלט + משך וידאו הפלט) × רוחב הפלט × גובה הפלט × קצב הפריימים של הפלט / 1024. לבקשות הכוללות וידאו קלט ולבקשות ללא וידאו קלט יש קטגוריות חיוב נפרדות. שאילתת המשימה מדווחת usage.completion_tokens ו-usage.total_tokens; שמרו את הכמויות המדווחות האלה עם הקליפ שהושלם.</p><p>היצירה אסינכרונית. השליחה מחזירה מזהה, ותהליך המשימה המוגדר מספק סטטוס ולאחר הצלחה content.video_url. שמרו את הקליפ שהושלם יחד עם מדיית המקור וההנחיות לרצף. בדקו את כל הרגעים שתוכננו, את אינטראקציות האובייקטים, את מראה הדמויות, את המסגור ואת יישור הקול לאורך התוצאה כולה. לתיקון, זהו את הפרט המסוים שלא הושג ושמרו את החלקים המוצלחים בסצנה, במקום להחליף את ההנחיות כולן בהוראות לא קשורות.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">זמין ב-Ailoot · קלט ושיטות</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · וידאו</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>סוגי קלט</dt><dd><code>text</code>, <code>image</code>, <code>video</code>, <code>audio</code></dd></div><div><dt>סוגי פלט</dt><dd><code>video</code></dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>שדה</th><th>סוג</th><th>דרישה</th><th>ערכים ומגבלות</th><th>ברירת מחדל</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>doubao-seedance-2-5-260628</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">content</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>array</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>תנאים: אובייקטי טקסט ומדיה בפורמט המקורי; המערך החיצוני חייב להיות לא ריק. הבנאי הכללי הזה של Ailoot אינו מאמת את הטיפוסים של הצמתים המקוננים.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">generate_audio</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>boolean</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>תנאים: הדוגמה של 2.5 מגדירה true, אך תיאור הבורר שהועתק מונה רק 2.0/fast/1.5; אין הבטחה רחבה יותר להגדרה או לברירת מחדל.</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\">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>תנאים: הערך המילולי 15 בדוגמה של 2.5 אינו ערך מרבי או ברירת מחדל.</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>תנאים: אין להסיק מתיאורים שהועתקו ברירת מחדל או enum ייחודיים ל־2.5.</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\">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>תנאים: התאמה אוטומטית מתועדת במפורש עבור 2.0/fast/1.5; הדוגמה של 2.5 משתמשת רק ב־16: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\">watermark</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>boolean</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>false</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">seed</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>integer</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>מינימום: ⁦‎-1⁩</div><div>מקסימום: ⁦4,294,967,295⁩</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>⁦‎-1⁩</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">execution_expires_after</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>integer</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>מינימום: ⁦3,600⁩</div><div>מקסימום: ⁦259,200⁩</div><div>יחידה: שניות</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"known\"><span class=\"card-cell-label\">ברירת מחדל</span>⁦172,800⁩</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">service_tier</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>תנאים: 2.0/fast אינם מאפשרים flex לא מקוון; היקף התמיכה ב־2.5 לא הוכח.</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\">safety_identifier</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>string</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>רשות</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>שילובים של חומרי קלט</summary><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p><p class=\"note-s\"><b></b></p></details><details class=\"note-s\" data-method-contract><summary>פרמטרים ומחזור חיים של השיטה</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>פרמטר</th><th>מפרט</th></tr></thead><tbody><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>content_type</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>application/json</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>required</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>content, model</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>generate_audio, duration, resolution, ratio, watermark, seed, execution_expires_after, service_tier, safety_identifier</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>material_types</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text, image, video, audio</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>additional_properties</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>true</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>validation_scope</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>Ailoot בודקת את הטיפוסים של שדות החובה ושמערך model/content אינו ריק. יתר שדות הבקשה נשמרים עבור המודל שנבחר.</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>material_combinations</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text, image, video, image, audio, image, video, video, audio, image, video, audio</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional_text_with_media</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>true</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>reference_media_count_and_size_limits</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>null</td></tr></tbody></table></div><p>כינויים לשיטה: <code>/v1/videos/generations</code></p><p>מחזור חיים: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">יש ליצור פעם אחת ולשמור את id/polling_url הציבוריים שהוחזרו.</p><p class=\"note-s\">יש לבדוק במחזוריות את המשימה המקורית; יש להוריד את content.video_url הממשי שבבעלותכם לאחר succeeded.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">תעריפים</h3><div class=\"card-result-process\" data-billing-basis><h5>אופן חישוב החיוב הסופי</h5><p class=\"note-s\">התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.</p></div><div data-native-semantic-method=\"v1\" data-tariff-reference-only><p class=\"note-s\" data-rate-support-note>מידע תעריפים אינו מוסיף אפשרויות לבקשה. הפרמטרים הנתמכים מפורטים בשיטה שנבחרה.</p><dl data-price-conditions><dt>מצב מהיר</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב מהיר</span></dd><dt>מצב Flex</dt><dd>לא צוין <span class=\"note-s\">כאשר נבחר מצב flex</span></dd><dt>מאמץ חשיבה מרבי</dt><dd>לא צוין <span class=\"note-s\">כאשר מאמץ החשיבה המרבי משתמש בהתאמת ברירת המחדל (default)</span></dd></dl></div><div data-declared-tariff-pricing><h4>תעריפים משוערים להשוואה</h4><h4>מחירים לפי תצורה</h4><p class=\"note-s\">התאימו כל חיוב לתנאים המוצגים. השתמשו בתעריף אחד לכל קבוצה של תצורות חלופיות.</p><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>תצורה</th><th>טבלת תעריפים</th><th>כמות חזויה</th><th>יחידת חיוב</th><th>חיוב</th></tr></thead><tbody><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>תעריפי בסיס לטוקנים</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>תעריף בסיס</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>—</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>קלט · טוקני קלט · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>פלט · טוקני פלט · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · קריאה מהמטמון · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div><div><span>קלט · כתיבה למטמון, 1 שעה · אומדן להשוואה בלבד</span> <b>—</b> <span class=\"price-unit\">/ 1K טוקנים</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>הקלט כולל וידאו לייחוס.</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>לכל 1K טוקני וידאו</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · אומדן להשוואה בלבד</span> <b>$0.012</b> <span class=\"price-unit\">לכל 1K טוקני וידאו</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>הקלט אינו כולל וידאו לייחוס.</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>לכל 1K טוקני וידאו</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · אומדן להשוואה בלבד</span> <b>$0.02</b> <span class=\"price-unit\">לכל 1K טוקני וידאו</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>עלות יצירה משוערת</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>אומדן ליצירה אחת</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>—</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · עלות יצירה משוערת · אומדן להשוואה בלבד</span> <b>$0.822402</b> <span class=\"price-unit\">אומדן לפני היצירה</span></div><p class=\"note-s\">אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.</p></td></tr></tbody></table></div></div><p class=\"note-s\">לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. <a href=\"/docs/he/billing/reserve/\">איך פועלים שריון הסכום והסדרת החיוב →</a></p></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">דוגמאות לבקשות</h3><h4>Ailoot Ultra · וידאו</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-2781-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2781-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl · צרו סרטון</button><button class=\"cg-tab\" id=\"model-code-2781-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2781-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · קראו את המשימה המקורית</button><button class=\"cg-tab\" id=\"model-code-2781-tab-2\" role=\"tab\" type=\"button\" aria-controls=\"model-code-2781-panel-2\" aria-selected=\"false\" tabindex=\"-1\">curl · הורידו את הסרטון שבבעלותכם</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-2781-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-2781-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\ncat &gt; request.json &lt;&lt;&#39;JSON_REQUEST&#39;\n{&quot;model&quot;:&quot;doubao-seedance-2-5-260628&quot;,&quot;content&quot;:[{&quot;type&quot;:&quot;text&quot;,&quot;text&quot;:&quot;女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动&quot;}]}\nJSON_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2781-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-2781-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\npython3 - &lt;&lt;&#39;PY_POLL&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(&quot;result.json&quot;).read_text())\ni=r.get(&quot;id&quot;)\nif not isinstance(i,str) or not i.startswith(&quot;native302_&quot;):raise SystemExit(&quot;Keep original response/headers/id; do not resubmit creation.&quot;)\nu=urljoin(&quot;https://api.ailoot.ai&quot;,r.get(&quot;polling_url&quot;) or &quot;/v1/videos/&quot;+quote(i,safe=&quot;&quot;))\np=urlsplit(u)\nif p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/videos/&quot;):raise SystemExit(&quot;Use actual Ailoot lookup path.&quot;)\nPath(&quot;poll-url.txt&quot;).write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error &quot;$(cat poll-url.txt)&quot; -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -D status-headers.txt -o status.json\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-2781-panel-2\" role=\"tabpanel\" aria-labelledby=\"model-code-2781-tab-2\" hidden><pre data-lang=\"bash\"><code>set -eu\npython3 - &lt;&lt;&#39;PY_ASSETS&#39;\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nif r.get(&quot;status&quot;)!=&quot;succeeded&quot;:raise SystemExit(&quot;Poll same original job until an owned result is returned.&quot;)\nu=r.get(&quot;content&quot;,{}).get(&quot;video_url&quot;)\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(&quot;No completed video URL.&quot;)\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(&quot;Invalid returned URL.&quot;)\n    p=urlsplit(u)\n    if p.scheme!=&quot;https&quot; or p.netloc!=&quot;api.ailoot.ai&quot; or not p.path.startswith(&quot;/v1/media/assets/&quot;) or not p.path.endswith(&quot;/content&quot;) or not p.query:raise SystemExit(&quot;Wait for actual Ailoot-owned signed result.&quot;)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; -o &quot;video-${index}.bin&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">קבלה ושמירה של תוצאות</h3><h4>Ailoot Ultra · וידאו</h4><p class=\"note-s\">JSON בפורמט המקורי עם id/polling_url ציבוריים. לאחר הפרסום, content.video_url מכיל כתובות URL חתומות בבעלות Ailoot; לפני הפרסום, כתובות ה־URL של הפלטים שנבחרו מרוקנות.</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/videos/generations/{request_id}/content</code></li></ul><div class=\"card-result-process\" data-all-results><h5>שמירת כל התוצאות שהושלמו</h5><p class=\"note-s\">שמרו כל וידאו שהושלם או קובץ שהוחזר; אחזרו כל נכס מכל URL שהוחזר בפועל.</p><p class=\"note-s\">יש לשמור כל כתובת URL ממשית ב־content.video_url; האינדקס חייב לזהות פלט ממשי שהוחזר.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">יש לשמור את התגובה המקורית, הכותרות והמזהה ולבדוק במחזוריות את הפעולה הזו; אין לשלוח שוב בקשת יצירה שמצבה אינו ידוע.</p></div><details class=\"card-about\" data-output-fields><summary>שדות התגובה</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>שדה</th><th>סוג</th></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">provider_task_id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">polling_url</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">status</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string when supplied</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">content.video_url</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string|string[]</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">usage</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>object when supplied</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>שגיאות והשלבים הבאים</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>תגובה</th><th>תנאי</th><th>השלב הבא</th></tr></thead><tbody><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>JSON/model, טיפוסים של שדות חובה או אינדקס תוכן לא תקפים.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span></td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦401⁩ · <code>authentication_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>מפתח API לא תקף של Ailoot.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span></td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦404⁩ · <code>not_found_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>המשימה או הפלט חסרים או אינם בבעלות אותו משתמש, מפתח API וקבוצה.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span></td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦502⁩ · <code>result_pending_check</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>השליחה או הסטטוס המקוריים אינם שלמים; יש לשמור את המזהה המקורי ולא לשלוח שוב.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span></td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦503⁩ · <code>result_pending_check</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>המדיה, הנתיב או השלמת החיוב המקוריים נבדקים; יש להמשיך את הפעולה המקורית.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span></td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">כינויים</h3><h4>כינויים למודל</h4><p class=\"note-s\"><span data-model-alias-route=\"Ultra\"><b>Ailoot Ultra</b> <a href=\"#m=doubao-seedance-2-5-260628&amp;route=Ultra&amp;caller=doubao-seedance-2-5-260628&amp;fmt=videos\"><code>doubao-seedance-2-5-260628</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\"><code>/v1/videos/generations</code></p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=doubao-seedance-2-5-260628&amp;route=Ultra&amp;caller=doubao-seedance-2-5-260628&amp;fmt=videos\"><code>doubao-seedance-2-5-260628</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "doubao-seedance-2-5-260628",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "doubao-seedance-2-5-260628",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|doubao-seedance-2-5-260628",
      "ordinal": 0,
      "rawMethod": {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "errors": [
              {
                "condition": "JSON/model, טיפוסים של שדות חובה או אינדקס תוכן לא תקפים.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "מפתח API לא תקף של Ailoot.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "המשימה או הפלט חסרים או אינם בבעלות אותו משתמש, מפתח API וקבוצה.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "השליחה או הסטטוס המקוריים אינם שלמים; יש לשמור את המזהה המקורי ולא לשלוח שוב.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "המדיה, הנתיב או השלמת החיוב המקוריים נבדקים; יש להמשיך את הפעולה המקורית.",
                "http_status": 503,
                "type": "result_pending_check"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "succeeded"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed",
                "expired"
              ],
              "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "יש לשמור את התגובה המקורית, הכותרות והמזהה ולבדוק במחזוריות את הפעולה הזו; אין לשלוח שוב בקשת יצירה שמצבה אינו ידוע.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video",
              "multimodal_reference",
              "video_edit_via_content",
              "video_extend_via_content"
            ],
            "outputs": {
              "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
              "all_results": "יש לשמור כל כתובת URL ממשית ב־content.video_url; האינדקס חייב לזהות פלט ממשי שהוחזר.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string when supplied"
                },
                {
                  "description": null,
                  "name": "content.video_url",
                  "type": "string|string[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "JSON בפורמט המקורי עם id/polling_url ציבוריים. לאחר הפרסום, content.video_url מכיל כתובות URL חתומות בבעלות Ailoot; לפני הפרסום, כתובות ה־URL של הפלטים שנבחרו מרוקנות."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "doubao-seedance-2-5-260628"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "אובייקטי טקסט ומדיה בפורמט המקורי; המערך החיצוני חייב להיות לא ריק. הבנאי הכללי הזה של Ailoot אינו מאמת את הטיפוסים של הצמתים המקוננים.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "content",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "הדוגמה של 2.5 מגדירה true, אך תיאור הבורר שהועתק מונה רק 2.0/fast/1.5; אין הבטחה רחבה יותר להגדרה או לברירת מחדל.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "generate_audio",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "הערך המילולי 15 בדוגמה של 2.5 אינו ערך מרבי או ברירת מחדל.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "אין להסיק מתיאורים שהועתקו ברירת מחדל או enum ייחודיים ל־2.5.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "התאמה אוטומטית מתועדת במפורש עבור 2.0/fast/1.5; הדוגמה של 2.5 משתמשת רק ב־16:9.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "watermark",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": -1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 4294967295,
                "minimum": -1,
                "name": "seed",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": 172800,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 259200,
                "minimum": 3600,
                "name": "execution_expires_after",
                "required": false,
                "type": "integer",
                "unit": "שניות"
              },
              {
                "availability": "source_interface",
                "conditions": "2.0/fast אינם מאפשרים flex לא מקוון; היקף התמיכה ב־2.5 לא הוכח.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 64,
                "name": "safety_identifier",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact model ID and documented Ailoot video interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "content": {
                  "items": {
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "duration": {
                  "type": "integer"
                },
                "execution_expires_after": {
                  "maximum": 259200,
                  "minimum": 3600,
                  "type": "integer"
                },
                "generate_audio": {
                  "type": "boolean"
                },
                "model": {
                  "const": "doubao-seedance-2-5-260628",
                  "type": "string"
                },
                "ratio": {
                  "type": "string"
                },
                "resolution": {
                  "type": "string"
                },
                "safety_identifier": {
                  "maxLength": 64,
                  "type": "string"
                },
                "seed": {
                  "maximum": 4294967295,
                  "minimum": -1,
                  "type": "integer"
                },
                "service_tier": {
                  "type": "string"
                },
                "watermark": {
                  "type": "boolean"
                }
              },
              "required": [
                "content",
                "model"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "Shared content.items.required demands image_url+role even for published text nodes; intended combinations/examples and actual outer-array validation remain distinct.",
              "return_last_frame and callback_url exist upstream but current output ownership selects content.video_url only. No owned last-frame/callback contract is asserted.",
              "2.5 duration/resolution/default/adaptive/service-tier scopes are not explicitly enumerated; no inherited 2.0 limits.",
              "2.5 generate_audio example = true conflicts with copied support-selector prose.",
              "2.5 example1 is a JSON string with trailing comma; not copied as runnable JSON.",
              "2.5 camera_fixed/frames scope unresolved; draft/tools descriptions name other models. No uncertain control added."
            ],
            "unsupported": [
              "Separate cancel/delete for this generic method",
              "Separate edit/extension endpoint for this method"
            ]
          },
          "hints": [
            "יש ליצור פעם אחת ולשמור את id/polling_url הציבוריים שהוחזרו.",
            "יש לבדוק במחזוריות את המשימה המקורית; יש להוריד את content.video_url הממשי שבבעלותכם לאחר succeeded."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "material_types": [
              "text",
              "image",
              "video",
              "audio"
            ],
            "optional": [
              "generate_audio",
              "duration",
              "resolution",
              "ratio",
              "watermark",
              "seed",
              "execution_expires_after",
              "service_tier",
              "safety_identifier"
            ],
            "optional_text_with_media": true,
            "reference_media_count_and_size_limits": null,
            "required": [
              "content",
              "model"
            ],
            "validation_scope": "Ailoot בודקת את הטיפוסים של שדות החובה ושמערך model/content אינו ריק. יתר שדות הבקשה נשמרים עבור המודל שנבחר."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "succeeded"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed",
              "expired"
            ],
            "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Preserve original response/headers/id and poll that operation; never resubmit unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text",
              "image",
              "video",
              "audio"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video",
            "multimodal_reference",
            "video_edit_via_content",
            "video_extend_via_content"
          ],
          "output": {
            "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
            "all_results": "Retain every actual URL in content.video_url; index must identify a real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": null,
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": null,
                "name": "status",
                "type": "string when supplied"
              },
              {
                "description": null,
                "name": "content.video_url",
                "type": "string|string[]"
              },
              {
                "description": null,
                "name": "usage",
                "type": "object when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "Native JSON with public id/polling_url. After publication content.video_url contains Ailoot-owned signed URL(s); before publication selected output URLs are blanked."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "הקלט כולל וידאו לייחוס.",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "הקלט אינו כולל וידאו לייחוס.",
            "units": [
              {
                "amount": "0.02000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "0.822402",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.822402",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"doubao-seedance-2-5-260628\",\"content\":[{\"type\":\"text\",\"text\":\"女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动\"}]}\nJSON_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i.startswith(\"native302_\"):raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"status\")!=\"succeeded\":raise SystemExit(\"Poll same original job until an owned result is returned.\")\nu=r.get(\"content\",{}).get(\"video_url\")\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(\"No completed video URL.\")\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n    p=urlsplit(u)\n    if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for actual Ailoot-owned signed result.\")\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain returned public id/polling_url.",
          "Poll the original job; download actual owned content.video_url after succeeded."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "video",
          "audio"
        ],
        "label": "וידאו",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "Input contains video.",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "Input contains no video.",
            "units": [
              {
                "amount": "0.02000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.822402",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.822402",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "doubao-seedance-2-5-260628",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.012000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_with_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.000012",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.02000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_without_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.00002",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.822402",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.822402",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    }
  ],
  "model_id": "doubao-seedance-2-5-260628",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "b84b9998c155c249e06fc8eae1949b393c43ca911ac8ab87614b9dfdb3235f91",
    "input_html_sha256": "b9f33fbd1b52172cb13eeeae4b3fac3f62c7d1d31cab86670efa2be1009255a5",
    "private_audit_sha256": "827fb76e8fa0e792fda1b0b747eb9c7d6ca95e1027eb04340710119e9f902f98",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/doubao-seedance-2-5-260628/",
    "description": "Seedance 2.5 יוצר וידאו מטקסט ומתמונות או מקובצי ייחוס של וידאו ושמע, עם תהליכי עבודה מתועדים לעריכה ולהארכה. הדוגמה המסוימת של 2.5 משלבת תמונת מוצר עם כמה קובצי ייחוס לתנועה ומפעילה קול שנוצר לרצף פרסומי מתואם.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/doubao-seedance-2-5-260628/index.md",
    "title": "ByteDance: Seedance 2.5 — Ailoot",
    "url": "https://ailoot.ai/models/he/doubao-seedance-2-5-260628/"
  },
  "rawModel": {
    "about": "Seedance 2.5 יוצר וידאו באמצעות סצנה כתובה וקובצי ייחוס רב־מודאליים. למזהה המדויק doubao-seedance-2-5-260628 יש פעולה ודוגמה מתועדות משלו. הפעולה הזאת מתארת יצירת וידאו, עריכת וידאו והארכת וידאו, עם תמונות, וידאו, שמע וטקסט כמדיית קלט. השתמשו בקובצי הייחוס להעברת מראה נושא הצילום, פעולה, תנועת מצלמה, סגנון וקול, ואז הסבירו איזו תוצאה ליצור מהם.\n\nשילובי הקלט כוללים טקסט לבדו, תמונות או וידאו עם טקסט אופציונלי, תמונות עם שמע, וידאו עם שמע ותמונות, וידאו ושמע יחד. השילובים המנויים מצרפים שמע למדיה חזותית ואינם מתארים בקשה עם שמע בלבד. ארגנו כל פריט לפי תפקידו: תמונה מבססת נושא צילום או מראה, וידאו מדגים תנועה או סצנה קיימת ושמע מספק ייחוס קולי. ציינו איזה תפקיד חשוב לשוט המבוקש, כדי שקובץ ייחוס לרקע לא ייתפס בטעות כדמות הראשית.\n\nהדוגמה המסוימת של 2.5 היא רצף פרסומי למוצר. היא מספקת תמונה וכמה קובצי וידאו לייחוס, ואז מתארת מוקד פתיחה, סידורי מוצר ברצף מוגדר, שוטים של פרטים, פעולה בהילוך איטי וקומפוזיציית מותג סוגרת. הבקשה מקצה תפקידי reference_image ו-reference_video ומשתמשת בקובצי ייחוס נפרדים לקומפוזיציה, לתנועה, לעבודת מצלמה ולהשפעה. כך מתקבל מבנה מעשי לרעיון לקמפיין: תכננו את הרגעים החזותיים, זהו את קובץ הייחוס לכל רגע והגדירו את הסידור הסופי.\n\nרצף כתוב יכול להבחין בין מה שקורה לבין אופן הצילום. תארו תחילה את פעולת המוצר, ואז את גודל השוט, מסלול המצלמה, הקצב והמעבר למבט הבא. אם קובץ ייחוס אחד מגדיר את המוצר ואחר מדגים תנועת מצלמה, ציינו את תחומי האחריות הנפרדים האלה. לסצנה עם כמה אובייקטים, הסבירו את המיקומים שלהם ואת סדר האינטראקציות. בדקו בתוצאה שנוצרה את צורת המוצר, סידורו ותנועתו בפועל, במקום להניח שכל פרט בקובצי הייחוס מופיע ללא שינוי.\n\nלעריכה, זהו את הווידאו הקיים ואת הרכיב שיש לתקן, כמו הסביבה, פעולה או הסגנון החזותי, וציינו איזו רציפות לשמור. להארכה, תארו איך הסצנה צריכה להמשיך מקטעי הווידאו שסופקו. בדקו את החיבור וגם את הקטע החדש: מראה נושא הצילום, כיוון התנועה, מיקום המצלמה ותזמון הקול משפיעים כולם על השאלה אם התוצאה נתפסת כסצנה אחת. שמרו יחד את הווידאו המקורי ואת הגרסה המתוקנת שהושלמה, כדי שאפשר יהיה לבדוק את השינוי מול הרציפות המיועדת.\n\nהדוגמה הרב־מודאלית המתועדת של 2.5 מגדירה generate_audio=true ומבקשת רצף של חמש עשרה שניות במסגור 16:9. הערכים האלה מתארים את הדוגמה הזאת, ולא תקרת משך כללית או מגבלה על נכסי הייחוס. תנו לסצנה המבוקשת כוונת קול ברורה, לרבות היחס בין מוזיקה, אפקטים והפעולה הגלויה, ואז העריכו את הפלט האודיו־ויזואלי בפועל. יש לבדוק יחד את קובץ השמע לייחוס ואת פס הקול שנוצר מבחינת הקצב והביצוע המיועדים.\n\nבחרו משך, מסגור ורזולוציה מההגדרות המוצעות לפרופיל המסוים הזה. שמרו את התצורה שהתבקשה עם הפרומפט והשוו אותה לשדות המשימה שהוחזרו בפועל. השתמשו במשך, ברזולוציה וביחס שהוחזרו בעת הכנת הקליפ שהושלם ליעדו. שמרו את מזהה הפרופיל המדויק בתיעוד הגרסה, כדי שהשוואה מאוחרת תשתמש באותה מהדורה שנבחרה.\n\nהשימוש בטוקני וידאו מחושב כך: (משך וידאו הקלט + משך וידאו הפלט) × רוחב הפלט × גובה הפלט × קצב הפריימים של הפלט / 1024. לבקשות הכוללות וידאו קלט ולבקשות ללא וידאו קלט יש קטגוריות חיוב נפרדות. שאילתת המשימה מדווחת usage.completion_tokens ו-usage.total_tokens; שמרו את הכמויות המדווחות האלה עם הקליפ שהושלם.\n\nהיצירה אסינכרונית. השליחה מחזירה מזהה, ותהליך המשימה המוגדר מספק סטטוס ולאחר הצלחה content.video_url. שמרו את הקליפ שהושלם יחד עם מדיית המקור וההנחיות לרצף. בדקו את כל הרגעים שתוכננו, את אינטראקציות האובייקטים, את מראה הדמויות, את המסגור ואת יישור הקול לאורך התוצאה כולה. לתיקון, זהו את הפרט המסוים שלא הושג ושמרו את החלקים המוצלחים בסצנה, במקום להחליף את ההנחיות כולן בהוראות לא קשורות.",
    "alias_of": null,
    "aliases": [],
    "author": "ByteDance",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image",
        "video",
        "audio"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.822402",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.822402",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ],
        "summary": "התמחור המלא של התצורה מופיע בפרטים."
      }
    ],
    "ctx": null,
    "display_name": "ByteDance: Seedance 2.5",
    "formats": [
      "videos"
    ],
    "id": "doubao-seedance-2-5-260628",
    "input": [
      "text",
      "image",
      "video",
      "audio"
    ],
    "kind": "video",
    "locale": "en",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "errors": [
              {
                "condition": "JSON/model, טיפוסים של שדות חובה או אינדקס תוכן לא תקפים.",
                "http_status": 400,
                "type": "invalid_request_error"
              },
              {
                "condition": "מפתח API לא תקף של Ailoot.",
                "http_status": 401,
                "type": "authentication_error"
              },
              {
                "condition": "המשימה או הפלט חסרים או אינם בבעלות אותו משתמש, מפתח API וקבוצה.",
                "http_status": 404,
                "type": "not_found_error"
              },
              {
                "condition": "השליחה או הסטטוס המקוריים אינם שלמים; יש לשמור את המזהה המקורי ולא לשלוח שוב.",
                "http_status": 502,
                "type": "result_pending_check"
              },
              {
                "condition": "המדיה, הנתיב או השלמת החיוב המקוריים נבדקים; יש להמשיך את הפעולה המקורית.",
                "http_status": 503,
                "type": "result_pending_check"
              }
            ],
            "ignored_fields": [],
            "lifecycle": {
              "cancel_endpoint": null,
              "completed_states": [
                "succeeded"
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}/content",
                  "query": {
                    "index": "actual output index; default 0"
                  }
                }
              ],
              "content_pending": "Original status JSON until publication.",
              "content_ready": {
                "http_status": 303,
                "location": "actual signed Ailoot-owned asset URL"
              },
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "failed_states": [
                "failed",
                "expired"
              ],
              "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
              "mode": "submit_once_poll_original",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "pending_states": [
                "queued",
                "running"
              ],
              "signed_asset_lifetime_seconds": 86400,
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 200,
              "unknown": "יש לשמור את התגובה המקורית, הכותרות והמזהה ולבדוק במחזוריות את הפעולה הזו; אין לשלוח שוב בקשת יצירה שמצבה אינו ידוע.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "operation_modes": [
              "text_to_video",
              "image_to_video",
              "multimodal_reference",
              "video_edit_via_content",
              "video_extend_via_content"
            ],
            "outputs": {
              "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
              "all_results": "יש לשמור כל כתובת URL ממשית ב־content.video_url; האינדקס חייב לזהות פלט ממשי שהוחזר.",
              "every_actual_output": true,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "provider_task_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "polling_url",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string when supplied"
                },
                {
                  "description": null,
                  "name": "content.video_url",
                  "type": "string|string[]"
                },
                {
                  "description": null,
                  "name": "usage",
                  "type": "object when supplied"
                }
              ],
              "format": null,
              "maximum_outputs": null,
              "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
              "result": "JSON בפורמט המקורי עם id/polling_url ציבוריים. לאחר הפרסום, content.video_url מכיל כתובות URL חתומות בבעלות Ailoot; לפני הפרסום, כתובות ה־URL של הפלטים שנבחרו מרוקנות."
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "doubao-seedance-2-5-260628"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "אובייקטי טקסט ומדיה בפורמט המקורי; המערך החיצוני חייב להיות לא ריק. הבנאי הכללי הזה של Ailoot אינו מאמת את הטיפוסים של הצמתים המקוננים.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "minItems": 1,
                "name": "content",
                "required": true,
                "type": "array"
              },
              {
                "availability": "source_interface",
                "conditions": "הדוגמה של 2.5 מגדירה true, אך תיאור הבורר שהועתק מונה רק 2.0/fast/1.5; אין הבטחה רחבה יותר להגדרה או לברירת מחדל.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "generate_audio",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "הערך המילולי 15 בדוגמה של 2.5 אינו ערך מרבי או ברירת מחדל.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "duration",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "conditions": "אין להסיק מתיאורים שהועתקו ברירת מחדל או enum ייחודיים ל־2.5.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "resolution",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "conditions": "התאמה אוטומטית מתועדת במפורש עבור 2.0/fast/1.5; הדוגמה של 2.5 משתמשת רק ב־16:9.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "ratio",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": false,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "name": "watermark",
                "required": false,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "default": -1,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 4294967295,
                "minimum": -1,
                "name": "seed",
                "required": false,
                "type": "integer"
              },
              {
                "availability": "source_interface",
                "default": 172800,
                "default_known": true,
                "enum": null,
                "enum_known": false,
                "maximum": 259200,
                "minimum": 3600,
                "name": "execution_expires_after",
                "required": false,
                "type": "integer",
                "unit": "שניות"
              },
              {
                "availability": "source_interface",
                "conditions": "2.0/fast אינם מאפשרים flex לא מקוון; היקף התמיכה ב־2.5 לא הוכח.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "service_tier",
                "required": false,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maxLength": 64,
                "name": "safety_identifier",
                "required": false,
                "type": "string"
              }
            ],
            "profile_binding": "Exact model ID and documented Ailoot video interface.",
            "request_schema": {
              "additionalProperties": true,
              "properties": {
                "content": {
                  "items": {
                    "type": "object"
                  },
                  "minItems": 1,
                  "type": "array"
                },
                "duration": {
                  "type": "integer"
                },
                "execution_expires_after": {
                  "maximum": 259200,
                  "minimum": 3600,
                  "type": "integer"
                },
                "generate_audio": {
                  "type": "boolean"
                },
                "model": {
                  "const": "doubao-seedance-2-5-260628",
                  "type": "string"
                },
                "ratio": {
                  "type": "string"
                },
                "resolution": {
                  "type": "string"
                },
                "safety_identifier": {
                  "maxLength": 64,
                  "type": "string"
                },
                "seed": {
                  "maximum": 4294967295,
                  "minimum": -1,
                  "type": "integer"
                },
                "service_tier": {
                  "type": "string"
                },
                "watermark": {
                  "type": "boolean"
                }
              },
              "required": [
                "content",
                "model"
              ],
              "type": "object"
            },
            "source_ambiguities": [
              "Shared content.items.required demands image_url+role even for published text nodes; intended combinations/examples and actual outer-array validation remain distinct.",
              "return_last_frame and callback_url exist upstream but current output ownership selects content.video_url only. No owned last-frame/callback contract is asserted.",
              "2.5 duration/resolution/default/adaptive/service-tier scopes are not explicitly enumerated; no inherited 2.0 limits.",
              "2.5 generate_audio example = true conflicts with copied support-selector prose.",
              "2.5 example1 is a JSON string with trailing comma; not copied as runnable JSON.",
              "2.5 camera_fixed/frames scope unresolved; draft/tools descriptions name other models. No uncertain control added."
            ],
            "unsupported": [
              "Separate cancel/delete for this generic method",
              "Separate edit/extension endpoint for this method"
            ]
          },
          "hints": [
            "יש ליצור פעם אחת ולשמור את id/polling_url הציבוריים שהוחזרו.",
            "יש לבדוק במחזוריות את המשימה המקורית; יש להוריד את content.video_url הממשי שבבעלותכם לאחר succeeded."
          ],
          "input": {
            "additional_properties": true,
            "content_type": "application/json",
            "material_combinations": [
              [
                "text"
              ],
              [
                "image"
              ],
              [
                "video"
              ],
              [
                "image",
                "audio"
              ],
              [
                "image",
                "video"
              ],
              [
                "video",
                "audio"
              ],
              [
                "image",
                "video",
                "audio"
              ]
            ],
            "material_types": [
              "text",
              "image",
              "video",
              "audio"
            ],
            "optional": [
              "generate_audio",
              "duration",
              "resolution",
              "ratio",
              "watermark",
              "seed",
              "execution_expires_after",
              "service_tier",
              "safety_identifier"
            ],
            "optional_text_with_media": true,
            "reference_media_count_and_size_limits": null,
            "required": [
              "content",
              "model"
            ],
            "validation_scope": "Ailoot בודקת את הטיפוסים של שדות החובה ושמערך model/content אינו ריק. יתר שדות הבקשה נשמרים עבור המודל שנבחר."
          },
          "lifecycle": {
            "cancel_endpoint": null,
            "completed_states": [
              "succeeded"
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content",
                "query": {
                  "index": "actual output index; default 0"
                }
              }
            ],
            "content_pending": "Original status JSON until publication.",
            "content_ready": {
              "http_status": 303,
              "location": "actual signed Ailoot-owned asset URL"
            },
            "create": {
              "http": "POST",
              "path": "/v1/videos"
            },
            "failed_states": [
              "failed",
              "expired"
            ],
            "id_source": "Actual returned id or X-Ailoot-Task-Id; provider_task_id is separate. Use returned polling_url.",
            "mode": "submit_once_poll_original",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "pending_states": [
              "queued",
              "running"
            ],
            "signed_asset_lifetime_seconds": 86400,
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 200,
            "unknown": "Preserve original response/headers/id and poll that operation; never resubmit unknown creation.",
            "unknown_no_replay": true
          },
          "manufacturer_capability": {
            "documented_material_types": [
              "text",
              "image",
              "video",
              "audio"
            ]
          },
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video",
            "multimodal_reference",
            "video_edit_via_content",
            "video_extend_via_content"
          ],
          "output": {
            "additional_media_boundary": "Only content.video_url is selected for ownership. No owned last-frame/callback result flow is established.",
            "all_results": "Retain every actual URL in content.video_url; index must identify a real returned output.",
            "every_actual_output": true,
            "family": "video",
            "fields": [
              {
                "description": null,
                "name": "id",
                "type": "string"
              },
              {
                "description": null,
                "name": "provider_task_id",
                "type": "string"
              },
              {
                "description": null,
                "name": "polling_url",
                "type": "string"
              },
              {
                "description": null,
                "name": "status",
                "type": "string when supplied"
              },
              {
                "description": null,
                "name": "content.video_url",
                "type": "string|string[]"
              },
              {
                "description": null,
                "name": "usage",
                "type": "object when supplied"
              }
            ],
            "format": null,
            "maximum_outputs": null,
            "ownership": "Configured video outputs are copied, reopened and SHA256/length/positive-duration checked before publication.",
            "result": "Native JSON with public id/polling_url. After publication content.video_url contains Ailoot-owned signed URL(s); before publication selected output URLs are blanked."
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "הקלט כולל וידאו לייחוס.",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "הקלט אינו כולל וידאו לייחוס.",
            "units": [
              {
                "amount": "0.02000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "0.822402",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.822402",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\ncat > request.json <<'JSON_REQUEST'\n{\"model\":\"doubao-seedance-2-5-260628\",\"content\":[{\"type\":\"text\",\"text\":\"女孩抱着狐狸，女孩睁开眼，温柔地看向镜头，狐狸友善地抱着，镜头缓缓拉出，女孩的头发被风吹动\"}]}\nJSON_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/videos \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\n",
            "label": "curl · create video",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\npython3 - <<'PY_POLL'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import quote,urljoin,urlsplit\nr=json.loads(Path(\"result.json\").read_text())\ni=r.get(\"id\")\nif not isinstance(i,str) or not i.startswith(\"native302_\"):raise SystemExit(\"Keep original response/headers/id; do not resubmit creation.\")\nu=urljoin(\"https://api.ailoot.ai\",r.get(\"polling_url\") or \"/v1/videos/\"+quote(i,safe=\"\"))\np=urlsplit(u)\nif p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/videos/\"):raise SystemExit(\"Use actual Ailoot lookup path.\")\nPath(\"poll-url.txt\").write_text(u)\nPY_POLL\ncurl --fail-with-body --silent --show-error \"$(cat poll-url.txt)\" -H \"Authorization: Bearer $AILOOT_API_KEY\" -D status-headers.txt -o status.json\n",
            "label": "curl · read original task",
            "language": "bash"
          },
          {
            "code": "set -eu\npython3 - <<'PY_ASSETS'\nimport json\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nr=json.loads(Path(\"status.json\").read_text())\nif r.get(\"status\")!=\"succeeded\":raise SystemExit(\"Poll same original job until an owned result is returned.\")\nu=r.get(\"content\",{}).get(\"video_url\")\nurls=[u] if isinstance(u,str) else u\nif not isinstance(urls,list) or not urls:raise SystemExit(\"No completed video URL.\")\nfor u in urls:\n    if not isinstance(u,str):raise SystemExit(\"Invalid returned URL.\")\n    p=urlsplit(u)\n    if p.scheme!=\"https\" or p.netloc!=\"api.ailoot.ai\" or not p.path.startswith(\"/v1/media/assets/\") or not p.path.endswith(\"/content\") or not p.query:raise SystemExit(\"Wait for actual Ailoot-owned signed result.\")\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_ASSETS\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" -o \"video-${index}.bin\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "curl · download owned video",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and retain returned public id/polling_url.",
          "Poll the original job; download actual owned content.video_url after succeeded."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image",
          "video",
          "audio"
        ],
        "label": "וידאו",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "present"
            },
            "label": "Input contains video.",
            "units": [
              {
                "amount": "0.012000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_with_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.000012",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "dimensions": {
              "quoted_unit": "per 1,000 video tokens",
              "video_input": "absent"
            },
            "label": "Input contains no video.",
            "units": [
              {
                "amount": "0.02000",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "video_output_token_without_video_input",
                "label": "per 1,000 video tokens",
                "native_amount_usd_per_unit": "0.00002",
                "native_quantity": 1,
                "public_unit_label": "per 1,000 video tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_output_token"
              }
            ]
          },
          {
            "basis": "This estimate is not an additional charge or a fixed rate for the completed generation.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "Estimated generation cost",
            "units": [
              {
                "amount": "0.822402",
                "amount_unit": "usd_per_exact_native_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "forecast_usd",
                "label": "Estimated generation cost",
                "native_amount_usd_per_unit": "0.822402",
                "native_quantity": 1,
                "public_unit_label": "estimate before generation",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "request_estimate"
              }
            ]
          }
        ],
        "request_model_id": "doubao-seedance-2-5-260628",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.012000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_with_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.000012",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.02000",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "video_output_token_without_video_input",
            "label": "per 1,000 video tokens",
            "native_amount_usd_per_unit": "0.00002",
            "native_quantity": 1,
            "public_unit_label": "per 1,000 video tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_output_token"
          },
          {
            "amount": "0.822402",
            "amount_unit": "usd_per_exact_native_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "forecast_usd",
            "label": "Estimated generation cost",
            "native_amount_usd_per_unit": "0.822402",
            "native_quantity": 1,
            "public_unit_label": "estimate before generation",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "request_estimate"
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "doubao-seedance-2-5-260628",
        "request_model_id": "doubao-seedance-2-5-260628",
        "route_label": "Ultra"
      }
    ],
    "name": "ByteDance: Seedance 2.5",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.822402,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.822402,
      "varies": false
    },
    "short": "Seedance 2.5 יוצר וידאו מטקסט ומתמונות או מקובצי ייחוס של וידאו ושמע, עם תהליכי עבודה מתועדים לעריכה ולהארכה. הדוגמה המסוימת של 2.5 משלבת תמונת מוצר עם כמה קובצי ייחוס לתנועה ומפעילה קול שנוצר לרצף פרסומי מתואם."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Seedance 2.5 יוצר וידאו מטקסט ומתמונות או מקובצי ייחוס של וידאו ושמע, עם תהליכי עבודה מתועדים לעריכה ולהארכה. הדוגמה המסוימת של 2.5 משלבת תמונת מוצר עם כמה קובצי ייחוס לתנועה ומפעילה קול שנוצר לרצף פרסומי מתואם.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "0605db670ebc9d0e3cae5e27e9367ad902fa4b500a2c80c32caa84f3769087f3",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "0caea575fbc8c9034551a0a90b434760c0eed1253a37bb063c1f5b96b5b74f5f"
}
