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