{
  "aboutHtml": "<p>Veo 3.1 Lite הוא דגם Lite של Google בסדרת Veo 3 ליצירת וידאו. הוא מסנתז וידאו עם אודיו מתיאור בשפה טבעית או מתמונת קלט. הפלט הוא קליפ שנוצר, ולא ניתוח טקסטואלי של הקלטה קיימת. כרטיס מודל Lite של היצרן מפנה ל־Veo 3 בנוגע לארכיטקטורה שבבסיסו, לחומרי האימון ולמגבלות המוכרות, ואילו התיעוד הייחודי ל־Lite מגדיר את תכונות היצירה ואת המגבלות שלו.</p><p>הארכיטקטורה שאליה מפנים משתמשת בדיפוזיה במרחב לטנטי על ייצוגי אודיו לאורך זמן ועל ייצוגי וידאו במרחב ובזמן. מודל הבסיס אומן על אודיו, וידאו ותמונות, עם כיתובים ברמות פירוט שונות וחומרי אימון שעברו סינון והסרת כפילויות. הדבר מסביר את מטרת היצירה המשולבת של תמונה ואודיו. הוא אינו חושף מספר פרמטרים ייחודי ל־Lite ואינו מעיד שכל תנועה שנוצרת תואמת למציאות הפיזיקלית. לסצנה מעשית, החליטו יחד על הפעולה הגלויה ועל הקול התואם לה.</p><p>התיעוד המדויק של Lite קובע מגבלת קלט טקסט של 1,024 טוקנים וסרטון פלט אחד. עמודת Lite במדריך היצירה מציינת משכים של 4, 6 ו־8 שניות, עם 720p כברירת מחדל ו־1080p המחייב קליפ של 8 שניות. יחס 16:9 לרוחב הוא ברירת המחדל, וגם 9:16 לאורך מופיע; הפלט מתועד בקצב 24 פריימים לשנייה. אודיו מובנה פעיל תמיד בתהליך הזה. הערכים האלה שייכים לתהליך העבודה בשם Lite של היצרן, ולא למהדורת Veo שאינה קשורה או לתגובה של יישום שנמדדה בנפרד.</p><p>Lite אינו תומך בפלט 4K או בהארכת וידאו. טבלת הפרמטרים מסמנת גם את תכונת referenceImages לריבוי ייחוסים ואת קלט הווידאו להארכה כלא זמינים בעמודת Lite. תמונה התחלתית יכולה לקבוע את פריים הפתיחה; הטבלה מציינת תמונת lastFrame יחד עם התמונה ההתחלתית לצורך מעבר. שמרו על הפרדה בין מסלול בקרת הפריימים הזה לבין שילוב כמה ייחוסי סגנון או נושא. הגדרות היצרן ליצירת אנשים תלויות במצב: טבלת Lite מציינת allow_all ליצירה מטקסט לווידאו ו־allow_adult ליצירה מתמונה ולאינטרפולציה, וכללים אזוריים עשויים להגביל עוד את הפרופיל המתועד. בחרו תמונת פתיחה שתואמת לסצנה הראשונה שבאמת רצויה, עם נושא, מסגור ופרטים גלויים מוכנים לפני בקשת תנועה.</p><p>ליצירה מטקסט לווידאו, תארו את הנושא, פעולתו, הסביבה והסגנון הרצוי. הוסיפו מיקום ותנועת מצלמה, מסגור, מיקוד ותאורה כאשר הם חשובים. סצנת מוצר מקורית יכולה לשמור את העצם במרכז בעוד המצלמה מתקרבת לפרט חומר אחד והאור שסביבו משתנה בעדינות. הגדירו מצב התחלתי, פעולה מרכזית ורגע סופי כדי שהקליפ הקצר יממש רעיון מגובש אחד. אוסף ארוך של פעולות שאינן קשורות הוא משימה שונה משוט ממוקד.</p><p>ליצירה מתמונה לווידאו, ספקו פריים התחלתי ברור והסבירו מה צריך לזוז ומה צריך להישאר יציב. הגדירו בנפרד את תנועת הנושא ואת כל תנועת המצלמה. אם משתמשים באילוץ פריים סופי, הכינו קומפוזיציית סיום תואמת ותארו את המעבר ביניהן. בדקו את התוצאה במקום להניח שזהות, מיקום או צורה שהתבקשו נשארים זהים לאורך כל הקליפ. כרטיס המודל שאליו מפנים מזהה עקביות מלאה בסצנות מורכבות ותנועה מורכבת כאתגר מתמשך.</p><p>מדריך ההנחיות תומך בסימנים מפורשים לדיאלוג, לאפקטים קוליים ולאווירה. שימו דיבור מדויק במירכאות, זהו את הדובר ותארו קולות ביחס לפעולה הגלויה. אין לבלבל בין אפקט קולי ואווירת רקע לבין שורה מדוברת. אנגלית מתועדת כנתמכת באופן מלא בהנחיות, ואילו שפות אחרות לא הוערכו במדריך הזה. בדקו את המילים הנשמעות, התזמון ואיכות הקול כחלק מאותו תוצר כמו הווידאו, במקום להתייחס לאודיו כתמלול נאמן מובטח של ההנחיה.</p><p>תהליך העבודה של היצרן הוא אסינכרוני: בקשת יצירה מחזירה פעולה, והתוצאה שהושלמה מתקבלת לאחר שהסטטוס שלה מדווח על השלמה. שמרו את מזהה הפעולה ובדקו את הקליפ שהוחזר. המדריך מתאר שמירה למשך יומיים בצד היצרן וסימון SynthID, לכן תוצר שמור צריך לכלול את התוצאה שהורדה, את ההנחיה, את תמונות המקור ואת ההגדרות שנבחרו. ערך seed יכול לשפר שחזור אך אינו מבטיח דטרמיניזם. בדקו רציפות נושא, פעולה, מסגור, קול ונקודת סיום רצויה של הסצנה לפני שימוש בקליפ בעריכה; השלמת עיבוד לבדה אינה הוכחה שהדרישות היצירתיות מולאו.</p>",
  "aboutText": "Veo 3.1 Lite הוא דגם Lite של Google בסדרת Veo 3 ליצירת וידאו. הוא מסנתז וידאו עם אודיו מתיאור בשפה טבעית או מתמונת קלט. הפלט הוא קליפ שנוצר, ולא ניתוח טקסטואלי של הקלטה קיימת. כרטיס מודל Lite של היצרן מפנה ל־Veo 3 בנוגע לארכיטקטורה שבבסיסו, לחומרי האימון ולמגבלות המוכרות, ואילו התיעוד הייחודי ל־Lite מגדיר את תכונות היצירה ואת המגבלות שלו.\n\nהארכיטקטורה שאליה מפנים משתמשת בדיפוזיה במרחב לטנטי על ייצוגי אודיו לאורך זמן ועל ייצוגי וידאו במרחב ובזמן. מודל הבסיס אומן על אודיו, וידאו ותמונות, עם כיתובים ברמות פירוט שונות וחומרי אימון שעברו סינון והסרת כפילויות. הדבר מסביר את מטרת היצירה המשולבת של תמונה ואודיו. הוא אינו חושף מספר פרמטרים ייחודי ל־Lite ואינו מעיד שכל תנועה שנוצרת תואמת למציאות הפיזיקלית. לסצנה מעשית, החליטו יחד על הפעולה הגלויה ועל הקול התואם לה.\n\nהתיעוד המדויק של Lite קובע מגבלת קלט טקסט של 1,024 טוקנים וסרטון פלט אחד. עמודת Lite במדריך היצירה מציינת משכים של 4, 6 ו־8 שניות, עם 720p כברירת מחדל ו־1080p המחייב קליפ של 8 שניות. יחס 16:9 לרוחב הוא ברירת המחדל, וגם 9:16 לאורך מופיע; הפלט מתועד בקצב 24 פריימים לשנייה. אודיו מובנה פעיל תמיד בתהליך הזה. הערכים האלה שייכים לתהליך העבודה בשם Lite של היצרן, ולא למהדורת Veo שאינה קשורה או לתגובה של יישום שנמדדה בנפרד.\n\nLite אינו תומך בפלט 4K או בהארכת וידאו. טבלת הפרמטרים מסמנת גם את תכונת referenceImages לריבוי ייחוסים ואת קלט הווידאו להארכה כלא זמינים בעמודת Lite. תמונה התחלתית יכולה לקבוע את פריים הפתיחה; הטבלה מציינת תמונת lastFrame יחד עם התמונה ההתחלתית לצורך מעבר. שמרו על הפרדה בין מסלול בקרת הפריימים הזה לבין שילוב כמה ייחוסי סגנון או נושא. הגדרות היצרן ליצירת אנשים תלויות במצב: טבלת Lite מציינת allow_all ליצירה מטקסט לווידאו ו־allow_adult ליצירה מתמונה ולאינטרפולציה, וכללים אזוריים עשויים להגביל עוד את הפרופיל המתועד. בחרו תמונת פתיחה שתואמת לסצנה הראשונה שבאמת רצויה, עם נושא, מסגור ופרטים גלויים מוכנים לפני בקשת תנועה.\n\nליצירה מטקסט לווידאו, תארו את הנושא, פעולתו, הסביבה והסגנון הרצוי. הוסיפו מיקום ותנועת מצלמה, מסגור, מיקוד ותאורה כאשר הם חשובים. סצנת מוצר מקורית יכולה לשמור את העצם במרכז בעוד המצלמה מתקרבת לפרט חומר אחד והאור שסביבו משתנה בעדינות. הגדירו מצב התחלתי, פעולה מרכזית ורגע סופי כדי שהקליפ הקצר יממש רעיון מגובש אחד. אוסף ארוך של פעולות שאינן קשורות הוא משימה שונה משוט ממוקד.\n\nליצירה מתמונה לווידאו, ספקו פריים התחלתי ברור והסבירו מה צריך לזוז ומה צריך להישאר יציב. הגדירו בנפרד את תנועת הנושא ואת כל תנועת המצלמה. אם משתמשים באילוץ פריים סופי, הכינו קומפוזיציית סיום תואמת ותארו את המעבר ביניהן. בדקו את התוצאה במקום להניח שזהות, מיקום או צורה שהתבקשו נשארים זהים לאורך כל הקליפ. כרטיס המודל שאליו מפנים מזהה עקביות מלאה בסצנות מורכבות ותנועה מורכבת כאתגר מתמשך.\n\nמדריך ההנחיות תומך בסימנים מפורשים לדיאלוג, לאפקטים קוליים ולאווירה. שימו דיבור מדויק במירכאות, זהו את הדובר ותארו קולות ביחס לפעולה הגלויה. אין לבלבל בין אפקט קולי ואווירת רקע לבין שורה מדוברת. אנגלית מתועדת כנתמכת באופן מלא בהנחיות, ואילו שפות אחרות לא הוערכו במדריך הזה. בדקו את המילים הנשמעות, התזמון ואיכות הקול כחלק מאותו תוצר כמו הווידאו, במקום להתייחס לאודיו כתמלול נאמן מובטח של ההנחיה.\n\nתהליך העבודה של היצרן הוא אסינכרוני: בקשת יצירה מחזירה פעולה, והתוצאה שהושלמה מתקבלת לאחר שהסטטוס שלה מדווח על השלמה. שמרו את מזהה הפעולה ובדקו את הקליפ שהוחזר. המדריך מתאר שמירה למשך יומיים בצד היצרן וסימון SynthID, לכן תוצר שמור צריך לכלול את התוצאה שהורדה, את ההנחיה, את תמונות המקור ואת ההגדרות שנבחרו. ערך seed יכול לשפר שחזור אך אינו מבטיח דטרמיניזם. בדקו רציפות נושא, פעולה, מסגור, קול ונקודת סיום רצויה של הסצנה לפני שימוש בקליפ בעריכה; השלמת עיבוד לבדה אינה הוכחה שהדרישות היצירתיות מולאו.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "2de614c927325553f9bb7d9ce79ffbe9c8fdd4653ee4528588151bc04fb83097",
    "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\">G</span><h2 id=\"sheet-title\">Google: Veo 3.1 Lite</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/veo-3.1-lite</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|google%2Fveo-3.1-lite\">וידאו</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\">הפכו תיאור סצנה לסרטון באורך 4, 6 או 8 שניות ברזולוציית 720p.</p><ul class=\"card-best-for\"><li>הצגת מוצר בתנועה</li><li>יצירת סצנה שמציגה את מקום ההתרחשות</li><li>התנסות בתנועת מצלמה קצרה</li></ul><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>Veo 3.1 Lite הוא דגם Lite של Google בסדרת Veo 3 ליצירת וידאו. הוא מסנתז וידאו עם אודיו מתיאור בשפה טבעית או מתמונת קלט. הפלט הוא קליפ שנוצר, ולא ניתוח טקסטואלי של הקלטה קיימת. כרטיס מודל Lite של היצרן מפנה ל־Veo 3 בנוגע לארכיטקטורה שבבסיסו, לחומרי האימון ולמגבלות המוכרות, ואילו התיעוד הייחודי ל־Lite מגדיר את תכונות היצירה ואת המגבלות שלו.</p><p>הארכיטקטורה שאליה מפנים משתמשת בדיפוזיה במרחב לטנטי על ייצוגי אודיו לאורך זמן ועל ייצוגי וידאו במרחב ובזמן. מודל הבסיס אומן על אודיו, וידאו ותמונות, עם כיתובים ברמות פירוט שונות וחומרי אימון שעברו סינון והסרת כפילויות. הדבר מסביר את מטרת היצירה המשולבת של תמונה ואודיו. הוא אינו חושף מספר פרמטרים ייחודי ל־Lite ואינו מעיד שכל תנועה שנוצרת תואמת למציאות הפיזיקלית. לסצנה מעשית, החליטו יחד על הפעולה הגלויה ועל הקול התואם לה.</p><p>התיעוד המדויק של Lite קובע מגבלת קלט טקסט של 1,024 טוקנים וסרטון פלט אחד. עמודת Lite במדריך היצירה מציינת משכים של 4, 6 ו־8 שניות, עם 720p כברירת מחדל ו־1080p המחייב קליפ של 8 שניות. יחס 16:9 לרוחב הוא ברירת המחדל, וגם 9:16 לאורך מופיע; הפלט מתועד בקצב 24 פריימים לשנייה. אודיו מובנה פעיל תמיד בתהליך הזה. הערכים האלה שייכים לתהליך העבודה בשם Lite של היצרן, ולא למהדורת Veo שאינה קשורה או לתגובה של יישום שנמדדה בנפרד.</p><p>Lite אינו תומך בפלט 4K או בהארכת וידאו. טבלת הפרמטרים מסמנת גם את תכונת referenceImages לריבוי ייחוסים ואת קלט הווידאו להארכה כלא זמינים בעמודת Lite. תמונה התחלתית יכולה לקבוע את פריים הפתיחה; הטבלה מציינת תמונת lastFrame יחד עם התמונה ההתחלתית לצורך מעבר. שמרו על הפרדה בין מסלול בקרת הפריימים הזה לבין שילוב כמה ייחוסי סגנון או נושא. הגדרות היצרן ליצירת אנשים תלויות במצב: טבלת Lite מציינת allow_all ליצירה מטקסט לווידאו ו־allow_adult ליצירה מתמונה ולאינטרפולציה, וכללים אזוריים עשויים להגביל עוד את הפרופיל המתועד. בחרו תמונת פתיחה שתואמת לסצנה הראשונה שבאמת רצויה, עם נושא, מסגור ופרטים גלויים מוכנים לפני בקשת תנועה.</p><p>ליצירה מטקסט לווידאו, תארו את הנושא, פעולתו, הסביבה והסגנון הרצוי. הוסיפו מיקום ותנועת מצלמה, מסגור, מיקוד ותאורה כאשר הם חשובים. סצנת מוצר מקורית יכולה לשמור את העצם במרכז בעוד המצלמה מתקרבת לפרט חומר אחד והאור שסביבו משתנה בעדינות. הגדירו מצב התחלתי, פעולה מרכזית ורגע סופי כדי שהקליפ הקצר יממש רעיון מגובש אחד. אוסף ארוך של פעולות שאינן קשורות הוא משימה שונה משוט ממוקד.</p><p>ליצירה מתמונה לווידאו, ספקו פריים התחלתי ברור והסבירו מה צריך לזוז ומה צריך להישאר יציב. הגדירו בנפרד את תנועת הנושא ואת כל תנועת המצלמה. אם משתמשים באילוץ פריים סופי, הכינו קומפוזיציית סיום תואמת ותארו את המעבר ביניהן. בדקו את התוצאה במקום להניח שזהות, מיקום או צורה שהתבקשו נשארים זהים לאורך כל הקליפ. כרטיס המודל שאליו מפנים מזהה עקביות מלאה בסצנות מורכבות ותנועה מורכבת כאתגר מתמשך.</p><p>מדריך ההנחיות תומך בסימנים מפורשים לדיאלוג, לאפקטים קוליים ולאווירה. שימו דיבור מדויק במירכאות, זהו את הדובר ותארו קולות ביחס לפעולה הגלויה. אין לבלבל בין אפקט קולי ואווירת רקע לבין שורה מדוברת. אנגלית מתועדת כנתמכת באופן מלא בהנחיות, ואילו שפות אחרות לא הוערכו במדריך הזה. בדקו את המילים הנשמעות, התזמון ואיכות הקול כחלק מאותו תוצר כמו הווידאו, במקום להתייחס לאודיו כתמלול נאמן מובטח של ההנחיה.</p><p>תהליך העבודה של היצרן הוא אסינכרוני: בקשת יצירה מחזירה פעולה, והתוצאה שהושלמה מתקבלת לאחר שהסטטוס שלה מדווח על השלמה. שמרו את מזהה הפעולה ובדקו את הקליפ שהוחזר. המדריך מתאר שמירה למשך יומיים בצד היצרן וסימון SynthID, לכן תוצר שמור צריך לכלול את התוצאה שהורדה, את ההנחיה, את תמונות המקור ואת ההגדרות שנבחרו. ערך seed יכול לשפר שחזור אך אינו מבטיח דטרמיניזם. בדקו רציפות נושא, פעולה, מסגור, קול ונקודת סיום רצויה של הסצנה לפני שימוש בקליפ בעריכה; השלמת עיבוד לבדה אינה הוכחה שהדרישות היצירתיות מולאו.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">זמין ב-Ailoot · קלט ושיטות</h3><details class=\"card-method\" open><summary><b>Ailoot Ultra · וידאו</b> <code>POST /v1/videos</code></summary><dl class=\"method-capabilities\"><div><dt>סוגי קלט</dt><dd><code>text</code>, <code>image</code></dd></div><div><dt>סוגי פלט</dt><dd><code>video</code></dd></div><div><dt>פורמט פלט</dt><dd>mp4</dd></div><div><dt>מספר פלטים</dt><dd>עד ⁦4⁩ פלטs</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>google/veo-3.1-lite</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><div>אורך מזערי: ⁦1⁩</div><div>מספר בייטים מרבי: ⁦10,000⁩</div><div>יחידה: בתים בקידוד UTF8</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">duration</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span><code>integer</code></td><td data-cell-label=\"דרישה\"><span class=\"card-cell-label\">דרישה</span>חובה</td><td data-cell-label=\"ערכים ומגבלות\"><span class=\"card-cell-label\">ערכים ומגבלות</span><div>⁦4⁩, ⁦6⁩, ⁦8⁩</div><div>יחידה: שניות</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>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>16:9, 9:16</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</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>תנאים: יש להשמיט במצב text_to_video. אם השדה נכלל: פריט אחד בדיוק {&quot;type&quot;:&quot;image_url&quot;,&quot;image_url&quot;:{&quot;url&quot;:&quot;&lt;actual HTTPS URL&gt;&quot;},&quot;frame_type&quot;:&quot;first_frame&quot;}; הפריט כולל בדיוק type,image_url,frame_type; השדה image_url כולל בדיוק url. אין להוסיף מפתחות מיותרים או כפולים. רק duration=4,resolution=&quot;720p&quot;,aspect_ratio=&quot;16:9&quot;,generate_audio=false. כתובת URL חייבת להתפענח עם סכמה https, שם מארח שאינו ריק, ללא פרטי משתמש וללא תו # מילולי; מחרוזת השאילתה החתומה והנתיב המקודד נשמרים. קוד המקור אינו בודק את סוג ה־MIME של הקלט, את גודל הקובץ או את ממדיו בפיקסלים.</div></td><td data-cell-label=\"ברירת מחדל\" data-default=\"unspecified\"><span class=\"card-cell-label\">ברירת מחדל</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>שילובים של חומרי קלט</summary><p class=\"note-s\"><b>מטקסט לווידאו</b> · נדרש: prompt</p><p class=\"note-s\"><b>מתמונה לווידאו</b> · נדרש: prompt, frame_images</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, resolution, aspect_ratio, generate_audio</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>other_options</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>resolution</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>720p</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>prompt_max_bytes</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>10000</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>duration</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>4, 6, 8</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>aspect_ratio</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>16:9, 9:16</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>generate_audio</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>material_types</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text, image</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>parameters</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>{&quot;name&quot;:&quot;model&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;default_known&quot;:false,&quot;default&quot;:null,&quot;enum_known&quot;:true,&quot;enum&quot;:[&quot;google/veo-3.1-lite&quot;],&quot;availability&quot;:&quot;source_interface&quot;}, {&quot;name&quot;:&quot;prompt&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;default_known&quot;:false,&quot;default&quot;:null,&quot;enum_known&quot;:false,&quot;enum&quot;:null,&quot;availability&quot;:&quot;source_interface&quot;,&quot;min_length&quot;:1,&quot;maximum_bytes&quot;:10000,&quot;maximum_length&quot;:null,&quot;unit&quot;:&quot;בתים בקידוד UTF8&quot;}, {&quot;name&quot;:&quot;duration&quot;,&quot;type&quot;:&quot;integer&quot;,&quot;required&quot;:true,&quot;default_known&quot;:false,&quot;default&quot;:null,&quot;enum_known&quot;:true,&quot;enum&quot;:[4,6,8],&quot;availability&quot;:&quot;source_interface&quot;,&quot;unit&quot;:&quot;שניות&quot;}, {&quot;name&quot;:&quot;resolution&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;default_known&quot;:false,&quot;default&quot;:null,&quot;enum_known&quot;:true,&quot;enum&quot;:[&quot;720p&quot;],&quot;availability&quot;:&quot;source_interface&quot;}, {&quot;name&quot;:&quot;aspect_ratio&quot;,&quot;type&quot;:&quot;string&quot;,&quot;required&quot;:true,&quot;default_known&quot;:false,&quot;default&quot;:null,&quot;enum_known&quot;:true,&quot;enum&quot;:[&quot;16:9&quot;,&quot;9:16&quot;],&quot;availability&quot;:&quot;source_interface&quot;}, {&quot;name&quot;:&quot;generate_audio&quot;,&quot;type&quot;:&quot;boolean&quot;,&quot;required&quot;:true,&quot;default_known&quot;:false,&quot;default&quot;:null,&quot;enum_known&quot;:true,&quot;enum&quot;:[false],&quot;availability&quot;:&quot;source_interface&quot;}, {&quot;name&quot;:&quot;frame_images&quot;,&quot;type&quot;:&quot;array&quot;,&quot;required&quot;:false,&quot;default_known&quot;:false,&quot;default&quot;:null,&quot;enum_known&quot;:false,&quot;enum&quot;:null,&quot;availability&quot;:&quot;source_interface&quot;,&quot;conditions&quot;:&quot;יש להשמיט במצב text_to_video. אם השדה נכלל: פריט אחד בדיוק {\\&quot;type\\&quot;:\\&quot;image_url\\&quot;,\\&quot;image_url\\&quot;:{\\&quot;url\\&quot;:\\&quot;&lt;actual HTTPS URL&gt;\\&quot;},\\&quot;frame_type\\&quot;:\\&quot;first_frame\\&quot;}; הפריט כולל בדיוק type,image_url,frame_type; השדה image_url כולל בדיוק url. אין להוסיף מפתחות מיותרים או כפולים. רק duration=4,resolution=\\&quot;720p\\&quot;,aspect_ratio=\\&quot;16:9\\&quot;,generate_audio=false. כתובת URL חייבת להתפענח עם סכמה https, שם מארח שאינו ריק, ללא פרטי משתמש וללא תו # מילולי; מחרוזת השאילתה החתומה והנתיב המקודד נשמרים. קוד המקור אינו בודק את סוג ה־MIME של הקלט, את גודל הקובץ או את ממדיו בפיקסלים.&quot;}</td></tr></tbody></table></div><p>כינויים לשיטה: <code>/v1/videos/generations</code>, <code>/videos</code>, <code>/videos/generations</code></p><p>מחזור חיים: <code>submit_once_poll_original</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}</code></p><p class=\"note-s\"><code>GET /v1/videos/{request_id}/content</code></p><p class=\"note-s\"><code>GET /v1/videos/generations/{request_id}/content</code></p><p class=\"note-s\">יש ליצור פעם אחת ולשמור את המזהה שהוחזר.</p><p class=\"note-s\">יש לבדוק במחזוריות את הסטטוס המקורי; יש לשמור כל נכס שהושלם ואת משכו.</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><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>—</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>—</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>אודיו: with_audio</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר וידאו · אומדן להשוואה בלבד</span> <b>$0.16</b> <span class=\"price-unit\">לכל שניית וידאו</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>מחיר וידאו</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"יצירת שמע\"><span class=\"card-cell-label\">יצירת שמע</span>—</td><td data-cell-label=\"רזולוציה\"><span class=\"card-cell-label\">רזולוציה</span>—</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>לכל שניית וידאו</td><td data-cell-label=\"תנאי חיוב\"><span class=\"card-cell-label\">תנאי חיוב</span>אודיו: with_audio; רזולוציה: 720p</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר וידאו · אומדן להשוואה בלבד</span> <b>$0.1</b> <span class=\"price-unit\">לכל שניית וידאו</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>מחיר וידאו</th><td data-cell-label=\"טבלת תעריפים\"><span class=\"card-cell-label\">טבלת תעריפים</span>—</td><td data-cell-label=\"כמות חזויה\"><span class=\"card-cell-label\">כמות חזויה</span>—</td><td data-cell-label=\"יצירת שמע\"><span class=\"card-cell-label\">יצירת שמע</span>—</td><td data-cell-label=\"רזולוציה\"><span class=\"card-cell-label\">רזולוציה</span>—</td><td data-cell-label=\"יחידת חיוב\"><span class=\"card-cell-label\">יחידת חיוב</span>לכל שניית וידאו</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.1</b> <span class=\"price-unit\">לכל שניית וידאו</span></div></td></tr><tr><th data-cell-label=\"תצורה\" scope=\"row\"><span class=\"card-cell-label\">תצורה</span>Ultra</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>720p</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.06</b> <span class=\"price-unit\">לכל שניית וידאו בפלט</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>—</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.24</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>אודיו: with_audio</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר וידאו</span> <b>$0.16</b> <span class=\"price-unit\">לכל שניית וידאו</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.1</b> <span class=\"price-unit\">לכל שניית וידאו</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_audio; רזולוציה: 720p</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר וידאו</span> <b>$0.1</b> <span class=\"price-unit\">לכל שניית וידאו</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; רזולוציה: 720p</td><td data-cell-label=\"חיוב\"><span class=\"card-cell-label\">חיוב</span><div><span>פלט · מחיר וידאו</span> <b>$0.06</b> <span class=\"price-unit\">לכל שניית וידאו</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-1511-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1511-panel-0\" aria-selected=\"true\" tabindex=\"0\">curl</button><button class=\"cg-tab\" id=\"model-code-1511-tab-1\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1511-panel-1\" aria-selected=\"false\" tabindex=\"-1\">curl · הנפישו את הפריים הראשון שלכם</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-1511-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1511-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;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;google/veo-3.1-lite&quot;, &quot;prompt&quot;: &quot;A cat in a spacesuit walking on the Moon&quot;, &quot;duration&quot;: 4, &quot;resolution&quot;: &quot;720p&quot;, &quot;aspect_ratio&quot;: &quot;16:9&quot;, &quot;generate_audio&quot;: false}&#39;)\n\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\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\n</code></pre></div><div class=\"cg-pane\" id=\"model-code-1511-panel-1\" role=\"tabpanel\" aria-labelledby=\"model-code-1511-tab-1\" hidden><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_IMAGE_URL:?Set the actual HTTPS URL of your first-frame image}&quot;\nexport AILOOT_IMAGE_URL\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os,re\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nimage=os.environ[&quot;AILOOT_IMAGE_URL&quot;]\ntry:\n    parsed=urlsplit(image)\n    valid=(image.startswith(&quot;https://&quot;) and parsed.scheme==&quot;https&quot; and bool(parsed.hostname)\n           and parsed.username is None and parsed.password is None and &quot;#&quot; not in image\n           and not any(ord(c)&lt;32 or ord(c)==127 for c in image)\n           and re.search(r&quot;%(?![0-9A-Fa-f]{2})&quot;,image) is None)\nexcept ValueError:\n    valid=False\nif not valid:\n    raise SystemExit(&quot;Use your actual HTTPS image URL with a hostname, no userinfo and no fragment&quot;)\np={&quot;model&quot;:&quot;google/veo-3.1-lite&quot;,&quot;prompt&quot;:&quot;The subject makes a slow, natural movement. Keep the opening composition.&quot;,&quot;duration&quot;:4,&quot;resolution&quot;:&quot;720p&quot;,&quot;aspect_ratio&quot;:&quot;16:9&quot;,&quot;generate_audio&quot;:False,&quot;frame_images&quot;:[{&quot;type&quot;:&quot;image_url&quot;,&quot;image_url&quot;:{&quot;url&quot;:image},&quot;frame_type&quot;:&quot;first_frame&quot;}]}\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False),encoding=&quot;utf-8&quot;)\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(&quot;result.json&quot;).read_text())\nprint(json.dumps(r,ensure_ascii=False,indent=2))\nprint(&quot;Keep the complete JSON, headers and original returned id. Use the existing GET status tab for that original operation, then save every completed owned output. Never resubmit an unknown generation.&quot;)\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\">mp4</p><ul class=\"card-result-paths\"><li><code>GET /v1/videos/{request_id}</code></li><li><code>GET /v1/videos/generations/{request_id}</code></li><li><code>GET /v1/videos/{request_id}/content</code></li><li><code>GET /v1/videos/generations/{request_id}/content</code></li></ul><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-1512-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1512-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-1512-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1512-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}&quot;\nexport AILOOT_OPERATION_ID\noperation_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_OPERATION_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/videos/$operation_id&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o status.json\npython3 - &lt;&lt;&#39;PY_STATUS&#39;\nimport json\nfrom pathlib import Path\nr=json.loads(Path(&quot;status.json&quot;).read_text())\nprint(json.dumps(r))\nif r.get(&quot;status&quot;)==&quot;completed&quot;:\n    for x in r.get(&quot;data&quot;,[]):print(x)\nPY_STATUS\n</code></pre></div></div></div><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-1513-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1513-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-1513-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1513-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}&quot;\nexport AILOOT_STATUS_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[&quot;AILOOT_STATUS_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose the actual completed status file&quot;)\nr=json.loads(f.read_text())\nif r.get(&quot;status&quot;)!=&quot;completed&quot; or not isinstance(r.get(&quot;data&quot;),list) or not r[&quot;data&quot;]:raise SystemExit(&quot;Wait for a completed status with asset paths&quot;)\nurls=[]\nfor x in r[&quot;data&quot;]:\n    if not isinstance(x,str) or &quot;\\n&quot; in x or &quot;\\r&quot; in x:raise SystemExit(&quot;Invalid asset path&quot;)\n    u=urljoin(&quot;https://api.ailoot.ai&quot;,x)\n    z=urlsplit(u)\n    if z.scheme!=&quot;https&quot; or z.netloc!=&quot;api.ailoot.ai&quot; or z.username or z.password:raise SystemExit(&quot;Use the actual Ailoot asset paths from status&quot;)\n    urls.append(u)\nPath(&quot;asset-urls.txt&quot;).write_text(&quot;\\n&quot;.join(urls)+&quot;\\n&quot;)\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error &quot;$asset_url&quot; \\\n    -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o &quot;video-${index}.mp4&quot;\n  index=$((index + 1))\ndone &lt; asset-urls.txt\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-1514-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-1514-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-1514-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-1514-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}&quot;\nexport AILOOT_OPERATION_ID\noperation_id=$(python3 -c &#39;import os,urllib.parse;print(urllib.parse.quote(os.environ[&quot;AILOOT_OPERATION_ID&quot;],safe=&quot;&quot;))&#39;)\ncurl --fail-with-body --silent --show-error &quot;https://api.ailoot.ai/v1/videos/$operation_id/content&quot; \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -o video.mp4\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\">data[] שהושלם מכיל את כל כתובות ה־URL החתומות לתוכן שבבעלותכם. יש לאחזר כל כתובת URL שהוחזרה, או להשתמש בנקודת הקצה לתוכן עם index המוגדר לאינדקס של פלט ממשי. משימה מקורית שנכשלה עשויה להחזיר charge_pending_check; יש לבדוק את המשימה המקורית הזו במקום ליצור אותה שוב. רצועת אודיו תקפה של AAC עשויה להיכלל גם כאשר generate_audio=false; יש לשמור את קובץ ה־MP4 המקורי במלואו, כולל האודיו הזה.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">יש לקרוא את המשימה המקורית הקיימת; אין לשלוח שוב בקשה שתוצאת שליחתה אינה ידועה.</p></div><p class=\"note-s\">מספר פלטים מרבי: ⁦4⁩.</p><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\">id</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>—</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">object</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>—</td></tr><tr><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>string</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\">status</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>—</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>signed content URL</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\">charge_pending_check</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>boolean</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\">error.code</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>—</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">error.message</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>—</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">operation_id</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>תגובת HTTP503 result_pending_check לסטטוס או לתוכן המקוריים: אותו מזהה ציבורי מקורי של פעולת הווידאו בשדה id.</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">error.type</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>server_error בתגובת HTTP503 result_pending_check.</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>שגיאות והשלבים הבאים</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>תגובה</th><th>תנאי</th><th>השלב הבא</th></tr></thead><tbody><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"תנאי\"><span class=\"card-cell-label\">תנאי</span>שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים</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>יש לבדוק במחזוריות את המזהה המקורי שהוחזר ולכבד את Retry-After.</td></tr><tr><th data-cell-label=\"תגובה\" scope=\"row\"><span class=\"card-cell-label\">תגובה</span><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>GET לסטטוס או לתוכן המקוריים: המשימה אינה מפורסמת, המשימה המקורית אינה במצב failed/cancelled/expired, והמצב המקומי הוא unknown או שסטטוס המשימה המקורית הוא completed.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לשמור את id ואת operation_id המקוריים (אותו מזהה וידאו ציבורי), את התגובה ואת הכותרות; יש לקרוא רק את הסטטוס והתוכן המקוריים. אין לשלוח בקשת יצירה חדשה.</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>פענוח אובייקט frame_images שסופק או הפרופיל המותנה שלו נכשל, או שלפרופיל המלא שפוענח אין כרטיס מחיר מדויק ומוכן.</td><td data-cell-label=\"השלב הבא\"><span class=\"card-cell-label\">השלב הבא</span>יש לשמור את model, prompt, duration, resolution, aspect_ratio ו־generate_audio. יש להוסיף frame_images המכיל בדיוק פריט first_frame אחד בפורמט האובייקט שצוין. יש להגדיר duration=4, resolution=&quot;720p&quot;, aspect_ratio=&quot;16:9&quot; ו־generate_audio=false. האימות הזה מתבצע לפני שליחת הבקשה.</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=google%2Fveo-3.1-lite&amp;route=Ultra&amp;caller=google%2Fveo-3.1-lite&amp;fmt=videos\"><code>google/veo-3.1-lite</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\"><code>/v1/videos/generations</code>, <code>/videos</code>, <code>/videos/generations</code></p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=google%2Fveo-3.1-lite&amp;route=Ultra&amp;caller=google%2Fveo-3.1-lite&amp;fmt=videos\"><code>google/veo-3.1-lite</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/veo-3.1-lite",
        "fmt": "videos",
        "http": "POST",
        "path": "/v1/videos",
        "request_model_id": "google/veo-3.1-lite",
        "route_label": "Ultra"
      },
      "method_key": "Ultra|videos|/v1/videos|google%2Fveo-3.1-lite",
      "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": "Completeddata[] contains all owned signedcontentURLs. FetcheachactualURL,orusecontent?index=actualindex. Failedoriginaljobs maycarrycharge_pending_check; do not recreate.",
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "תוכן התוצאה המקורית עדיין אינו זמין",
                "http_status": 409,
                "recovery": "יש לבדוק במחזוריות את המזהה המקורי שהוחזר ולכבד את Retry-After.",
                "type": "video_not_ready"
              },
              {
                "code": null,
                "condition": "התשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה",
                "http_status": null,
                "recovery": "שמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה.",
                "type": "server_error"
              },
              {
                "absent_fields": [
                  "status",
                  "object",
                  "model",
                  "data"
                ],
                "code": "result_pending_check",
                "condition": "GET לסטטוס או לתוכן המקוריים: המשימה אינה מפורסמת, המשימה המקורית אינה במצב failed/cancelled/expired, והמצב המקומי הוא unknown או שסטטוס המשימה המקורית הוא completed.",
                "friendly_fields": "error.reason=result_pending_check,error.param=null; error.operation_id and error.request_id when the existing context supplies them. error.message is rewritten/localized.",
                "headers": {
                  "Retry-After": null,
                  "X-Should-Retry": "false"
                },
                "http_status": 503,
                "recovery": "יש לשמור את id ואת operation_id המקוריים (אותו מזהה וידאו ציבורי), את התגובה ואת הכותרות; יש לקרוא רק את הסטטוס והתוכן המקוריים. אין לשלוח בקשת יצירה חדשה.",
                "response_fields": {
                  "charge_pending_check": true,
                  "error.code": "result_pending_check",
                  "error.type": "server_error",
                  "id": "original public video ID",
                  "operation_id": "same as id"
                },
                "type": "server_error"
              },
              {
                "code": null,
                "condition": "פענוח אובייקט frame_images שסופק או הפרופיל המותנה שלו נכשל, או שלפרופיל המלא שפוענח אין כרטיס מחיר מדויק ומוכן.",
                "http_status": 422,
                "message": "The complete video request cannot be priced",
                "recovery": "יש לשמור את model, prompt, duration, resolution, aspect_ratio ו־generate_audio. יש להוסיף frame_images המכיל בדיוק פריט first_frame אחד בפורמט האובייקט שצוין. יש להגדיר duration=4, resolution=\"720p\", aspect_ratio=\"16:9\" ו־generate_audio=false. האימות הזה מתבצע לפני שליחת הבקשה.",
                "type": "price_unavailable"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "content": [
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default0"
                  }
                },
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/generations/{request_id}/content"
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
              "mode": "submit_once_poll_original",
              "multioutputs": "retain every completed data output; index0 alone is not all outputs",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 202,
              "unknown": "יש לקרוא את המשימה המקורית הקיימת; אין לשלוח שוב בקשה שתוצאת שליחתה אינה ידועה.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_video",
                "required": [
                  "prompt"
                ]
              },
              {
                "conditions": "The required fields are model, prompt, duration, resolution, aspect_ratio and generate_audio. For image_to_video, also provide frame_images and use duration=4, resolution=\"720p\", aspect_ratio=\"16:9\" and generate_audio=false.",
                "content_type": "application/json",
                "mode": "image_to_video",
                "required": [
                  "prompt",
                  "frame_images"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "Use actual returned task_id or original public video id from response/media library. On HTTP503 result_pending_check from original video status/content GET, operation_id equals that original public video id. Do not assume unrelated operation IDs name media tasks.",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_video",
              "image_to_video"
            ],
            "outputs": {
              "all_results": "data[] שהושלם מכיל את כל כתובות ה־URL החתומות לתוכן שבבעלותכם. יש לאחזר כל כתובת URL שהוחזרה, או להשתמש בנקודת הקצה לתוכן עם index המוגדר לאינדקס של פלט ממשי. משימה מקורית שנכשלה עשויה להחזיר charge_pending_check; יש לבדוק את המשימה המקורית הזו במקום ליצור אותה שוב. רצועת אודיו תקפה של AAC עשויה להיכלל גם כאשר generate_audio=false; יש לשמור את קובץ ה־MP4 המקורי במלואו, כולל האודיו הזה.",
              "create_status": 202,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "signed content URL"
                },
                {
                  "description": null,
                  "name": "charge_pending_check",
                  "type": "boolean"
                },
                {
                  "description": null,
                  "name": "error.code",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "error.message",
                  "type": "string"
                },
                {
                  "description": "תגובת HTTP503 result_pending_check לסטטוס או לתוכן המקוריים: אותו מזהה ציבורי מקורי של פעולת הווידאו בשדה id.",
                  "name": "operation_id",
                  "type": "string"
                },
                {
                  "description": "server_error בתגובת HTTP503 result_pending_check.",
                  "name": "error.type",
                  "type": "string"
                }
              ],
              "format": "mp4",
              "maximum_outputs": 4,
              "status_enum": [
                "in_progress",
                "completed",
                "failed"
              ]
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/veo-3.1-lite"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum_bytes": 10000,
                "maximum_length": null,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string",
                "unit": "בתים בקידוד UTF8"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  6,
                  8
                ],
                "enum_known": true,
                "name": "duration",
                "required": true,
                "type": "integer",
                "unit": "שניות"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "יש להשמיט במצב text_to_video. אם השדה נכלל: פריט אחד בדיוק {\"type\":\"image_url\",\"image_url\":{\"url\":\"<actual HTTPS URL>\"},\"frame_type\":\"first_frame\"}; הפריט כולל בדיוק type,image_url,frame_type; השדה image_url כולל בדיוק url. אין להוסיף מפתחות מיותרים או כפולים. רק duration=4,resolution=\"720p\",aspect_ratio=\"16:9\",generate_audio=false. כתובת URL חייבת להתפענח עם סכמה https, שם מארח שאינו ריק, ללא פרטי משתמש וללא תו # מילולי; מחרוזת השאילתה החתומה והנתיב המקודד נשמרים. קוד המקור אינו בודק את סוג ה־MIME של הקלט, את גודל הקובץ או את ממדיו בפיקסלים.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "frame_images",
                "required": false,
                "type": "array"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "Every field outside the original six required fields plus optional frame_images; last_frame, reference frames, multiple frames, non-HTTPS URLs, URL userinfo, URL fragments and other first-frame profiles are rejected."
            ]
          },
          "hints": [
            "יש ליצור פעם אחת ולשמור את המזהה שהוחזר.",
            "יש לבדוק במחזוריות את הסטטוס המקורי; יש לשמור כל נכס שהושלם ואת משכו."
          ],
          "input": {
            "aspect_ratio": [
              "16:9",
              "9:16"
            ],
            "content_type": "application/json",
            "duration": [
              4,
              6,
              8
            ],
            "generate_audio": [
              false
            ],
            "material_types": [
              "text",
              "image"
            ],
            "other_options": false,
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/veo-3.1-lite"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum_bytes": 10000,
                "maximum_length": null,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string",
                "unit": "בתים בקידוד UTF8"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  6,
                  8
                ],
                "enum_known": true,
                "name": "duration",
                "required": true,
                "type": "integer",
                "unit": "שניות"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "יש להשמיט במצב text_to_video. אם השדה נכלל: פריט אחד בדיוק {\"type\":\"image_url\",\"image_url\":{\"url\":\"<actual HTTPS URL>\"},\"frame_type\":\"first_frame\"}; הפריט כולל בדיוק type,image_url,frame_type; השדה image_url כולל בדיוק url. אין להוסיף מפתחות מיותרים או כפולים. רק duration=4,resolution=\"720p\",aspect_ratio=\"16:9\",generate_audio=false. כתובת URL חייבת להתפענח עם סכמה https, שם מארח שאינו ריק, ללא פרטי משתמש וללא תו # מילולי; מחרוזת השאילתה החתומה והנתיב המקודד נשמרים. קוד המקור אינו בודק את סוג ה־MIME של הקלט, את גודל הקובץ או את ממדיו בפיקסלים.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "frame_images",
                "required": false,
                "type": "array"
              }
            ],
            "prompt_max_bytes": 10000,
            "required": [
              "model",
              "prompt",
              "duration",
              "resolution",
              "aspect_ratio",
              "generate_audio"
            ],
            "resolution": [
              "720p"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content"
              }
            ],
            "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
            "mode": "submit_once_poll_original",
            "multioutputs": "retain every completed data output; index0 alone is not all outputs",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 202,
            "unknown": "Read existing original job; never resubmit unknown send."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations",
            "/videos",
            "/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video"
          ],
          "output": {
            "family": "video",
            "format": "mp4",
            "max_outputs": 4,
            "result": "all actual owned validated complete MP4 outputs"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "מחיר וידאו",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "אודיו: with_audio; רזולוציה: 720p",
              "quoted_unit": "per video second"
            },
            "label": "מחיר וידאו",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": false,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.06",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio_720p",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.06",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "0.24",
                "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.24",
                "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'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/veo-3.1-lite\", \"prompt\": \"A cat in a spacesuit walking on the Moon\", \"duration\": 4, \"resolution\": \"720p\", \"aspect_ratio\": \"16:9\", \"generate_audio\": false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\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\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_IMAGE_URL:?Set the actual HTTPS URL of your first-frame image}\"\nexport AILOOT_IMAGE_URL\npython3 - <<'PY_REQUEST'\nimport json,os,re\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nimage=os.environ[\"AILOOT_IMAGE_URL\"]\ntry:\n    parsed=urlsplit(image)\n    valid=(image.startswith(\"https://\") and parsed.scheme==\"https\" and bool(parsed.hostname)\n           and parsed.username is None and parsed.password is None and \"#\" not in image\n           and not any(ord(c)<32 or ord(c)==127 for c in image)\n           and re.search(r\"%(?![0-9A-Fa-f]{2})\",image) is None)\nexcept ValueError:\n    valid=False\nif not valid:\n    raise SystemExit(\"Use your actual HTTPS image URL with a hostname, no userinfo and no fragment\")\np={\"model\":\"google/veo-3.1-lite\",\"prompt\":\"The subject makes a slow, natural movement. Keep the opening composition.\",\"duration\":4,\"resolution\":\"720p\",\"aspect_ratio\":\"16:9\",\"generate_audio\":False,\"frame_images\":[{\"type\":\"image_url\",\"image_url\":{\"url\":image},\"frame_type\":\"first_frame\"}]}\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=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, headers and original returned id. Use the existing GET status tab for that original operation, then save every completed owned output. Never resubmit an unknown generation.\")\nPY_RESULT\n",
            "label": "curl · animate your first frame",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}\"\nexport AILOOT_OPERATION_ID\noperation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_OPERATION_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/videos/$operation_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o status.json\npython3 - <<'PY_STATUS'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"status.json\").read_text())\nprint(json.dumps(r))\nif r.get(\"status\")==\"completed\":\n    for x in r.get(\"data\",[]):print(x)\nPY_STATUS\n",
            "label": "GET status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}\"\nexport AILOOT_OPERATION_ID\noperation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_OPERATION_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/videos/$operation_id/content\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o video.mp4\n",
            "label": "GET content",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    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 Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and save returned ID.",
          "Poll original status; retain every completed asset and duration."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations",
          "/videos",
          "/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": false,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.06",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio_720p",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.06",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "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.24",
                "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.24",
                "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": "google/veo-3.1-lite",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.16",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.16",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_without_audio",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.06",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_without_audio_720p",
            "label": "Estimated output video second",
            "native_amount_usd_per_unit": "0.06",
            "native_quantity": 1,
            "public_unit_label": "per output video second",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_video_second"
          },
          {
            "amount": "0.24",
            "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.24",
            "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": "google/veo-3.1-lite",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "a9476027ce2c74e7ae9248aef5f0da80cd51bdc69fff3bca004496f6315a1c52",
    "input_html_sha256": "3870d3c51614021db234eb9f8a7cef2c2b5e6907901ce8891071d5b914f468f2",
    "private_audit_sha256": "488d5f35766899312298177f80f084988bbda0d90f614b93cb1235d5ff778c6f",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/google-veo-3-1-lite/",
    "description": "Veo 3.1 Lite יוצר וידאו עם אודיו מובנה מתיאור טקסטואלי או מתמונה התחלתית. תהליך העבודה המתועד של Lite מפיק קליפ אחד, במשכים של 4, 6 או 8 שניות, במסגור לרוחב או לאורך ועם מגבלות מסוימות השונות מ־Veo 3.1 ומ־Fast.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/google-veo-3-1-lite/index.md",
    "title": "Google: Veo 3.1 Lite — Ailoot",
    "url": "https://ailoot.ai/models/he/google-veo-3-1-lite/"
  },
  "rawModel": {
    "about": "Veo 3.1 Lite הוא דגם Lite של Google בסדרת Veo 3 ליצירת וידאו. הוא מסנתז וידאו עם אודיו מתיאור בשפה טבעית או מתמונת קלט. הפלט הוא קליפ שנוצר, ולא ניתוח טקסטואלי של הקלטה קיימת. כרטיס מודל Lite של היצרן מפנה ל־Veo 3 בנוגע לארכיטקטורה שבבסיסו, לחומרי האימון ולמגבלות המוכרות, ואילו התיעוד הייחודי ל־Lite מגדיר את תכונות היצירה ואת המגבלות שלו.\n\nהארכיטקטורה שאליה מפנים משתמשת בדיפוזיה במרחב לטנטי על ייצוגי אודיו לאורך זמן ועל ייצוגי וידאו במרחב ובזמן. מודל הבסיס אומן על אודיו, וידאו ותמונות, עם כיתובים ברמות פירוט שונות וחומרי אימון שעברו סינון והסרת כפילויות. הדבר מסביר את מטרת היצירה המשולבת של תמונה ואודיו. הוא אינו חושף מספר פרמטרים ייחודי ל־Lite ואינו מעיד שכל תנועה שנוצרת תואמת למציאות הפיזיקלית. לסצנה מעשית, החליטו יחד על הפעולה הגלויה ועל הקול התואם לה.\n\nהתיעוד המדויק של Lite קובע מגבלת קלט טקסט של 1,024 טוקנים וסרטון פלט אחד. עמודת Lite במדריך היצירה מציינת משכים של 4, 6 ו־8 שניות, עם 720p כברירת מחדל ו־1080p המחייב קליפ של 8 שניות. יחס 16:9 לרוחב הוא ברירת המחדל, וגם 9:16 לאורך מופיע; הפלט מתועד בקצב 24 פריימים לשנייה. אודיו מובנה פעיל תמיד בתהליך הזה. הערכים האלה שייכים לתהליך העבודה בשם Lite של היצרן, ולא למהדורת Veo שאינה קשורה או לתגובה של יישום שנמדדה בנפרד.\n\nLite אינו תומך בפלט 4K או בהארכת וידאו. טבלת הפרמטרים מסמנת גם את תכונת referenceImages לריבוי ייחוסים ואת קלט הווידאו להארכה כלא זמינים בעמודת Lite. תמונה התחלתית יכולה לקבוע את פריים הפתיחה; הטבלה מציינת תמונת lastFrame יחד עם התמונה ההתחלתית לצורך מעבר. שמרו על הפרדה בין מסלול בקרת הפריימים הזה לבין שילוב כמה ייחוסי סגנון או נושא. הגדרות היצרן ליצירת אנשים תלויות במצב: טבלת Lite מציינת allow_all ליצירה מטקסט לווידאו ו־allow_adult ליצירה מתמונה ולאינטרפולציה, וכללים אזוריים עשויים להגביל עוד את הפרופיל המתועד. בחרו תמונת פתיחה שתואמת לסצנה הראשונה שבאמת רצויה, עם נושא, מסגור ופרטים גלויים מוכנים לפני בקשת תנועה.\n\nליצירה מטקסט לווידאו, תארו את הנושא, פעולתו, הסביבה והסגנון הרצוי. הוסיפו מיקום ותנועת מצלמה, מסגור, מיקוד ותאורה כאשר הם חשובים. סצנת מוצר מקורית יכולה לשמור את העצם במרכז בעוד המצלמה מתקרבת לפרט חומר אחד והאור שסביבו משתנה בעדינות. הגדירו מצב התחלתי, פעולה מרכזית ורגע סופי כדי שהקליפ הקצר יממש רעיון מגובש אחד. אוסף ארוך של פעולות שאינן קשורות הוא משימה שונה משוט ממוקד.\n\nליצירה מתמונה לווידאו, ספקו פריים התחלתי ברור והסבירו מה צריך לזוז ומה צריך להישאר יציב. הגדירו בנפרד את תנועת הנושא ואת כל תנועת המצלמה. אם משתמשים באילוץ פריים סופי, הכינו קומפוזיציית סיום תואמת ותארו את המעבר ביניהן. בדקו את התוצאה במקום להניח שזהות, מיקום או צורה שהתבקשו נשארים זהים לאורך כל הקליפ. כרטיס המודל שאליו מפנים מזהה עקביות מלאה בסצנות מורכבות ותנועה מורכבת כאתגר מתמשך.\n\nמדריך ההנחיות תומך בסימנים מפורשים לדיאלוג, לאפקטים קוליים ולאווירה. שימו דיבור מדויק במירכאות, זהו את הדובר ותארו קולות ביחס לפעולה הגלויה. אין לבלבל בין אפקט קולי ואווירת רקע לבין שורה מדוברת. אנגלית מתועדת כנתמכת באופן מלא בהנחיות, ואילו שפות אחרות לא הוערכו במדריך הזה. בדקו את המילים הנשמעות, התזמון ואיכות הקול כחלק מאותו תוצר כמו הווידאו, במקום להתייחס לאודיו כתמלול נאמן מובטח של ההנחיה.\n\nתהליך העבודה של היצרן הוא אסינכרוני: בקשת יצירה מחזירה פעולה, והתוצאה שהושלמה מתקבלת לאחר שהסטטוס שלה מדווח על השלמה. שמרו את מזהה הפעולה ובדקו את הקליפ שהוחזר. המדריך מתאר שמירה למשך יומיים בצד היצרן וסימון SynthID, לכן תוצר שמור צריך לכלול את התוצאה שהורדה, את ההנחיה, את תמונות המקור ואת ההגדרות שנבחרו. ערך seed יכול לשפר שחזור אך אינו מבטיח דטרמיניזם. בדקו רציפות נושא, פעולה, מסגור, קול ונקודת סיום רצויה של הסצנה לפני שימוש בקליפ בעריכה; השלמת עיבוד לבדה אינה הוכחה שהדרישות היצירתיות מולאו.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "available": null,
    "canonical_model": "google/veo-3.1-lite",
    "capabilities": {
      "context_length": 0,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "video"
      ]
    },
    "card_routes": [
      {
        "label": "Ultra",
        "rates": [
          {
            "amount": "0.24",
            "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.24",
            "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": "0cef71ecc22628ae52e06dd5",
        "label": "הפניות למחירי תצורות וידאו",
        "profiles": [
          {
            "basis": "מחיר הייחוס שפורסם עבור התצורה המוצגת. החיובים הסופיים נקבעים לפי התצורה שחויבה בפועל.",
            "dimensions": {
              "conditions": "אודיו: with_audio"
            },
            "label": "מחיר וידאו",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "מחיר הייחוס שפורסם עבור התצורה המוצגת. החיובים הסופיים נקבעים לפי התצורה שחויבה בפועל.",
            "dimensions": {
              "conditions": "אודיו: without_audio"
            },
            "label": "מחיר וידאו",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "מחיר הייחוס שפורסם עבור התצורה המוצגת. החיובים הסופיים נקבעים לפי התצורה שחויבה בפועל.",
            "dimensions": {
              "conditions": "אודיו: with_audio; רזולוציה: 720p"
            },
            "label": "מחיר וידאו",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "מחיר הייחוס שפורסם עבור התצורה המוצגת. החיובים הסופיים נקבעים לפי התצורה שחויבה בפועל.",
            "dimensions": {
              "conditions": "אודיו: without_audio; רזולוציה: 720p"
            },
            "label": "מחיר וידאו",
            "units": [
              {
                "amount": "0.06",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "key": "video_second",
                "label": "Video price",
                "public_unit_label": "per video second",
                "quantity": 1,
                "rate_role": "typed_video_second_reference",
                "side": "out",
                "unit": "video_second"
              }
            ]
          }
        ]
      }
    ],
    "entity_type": "model",
    "formats": [
      "videos"
    ],
    "id": "google/veo-3.1-lite",
    "input": [
      "text",
      "image"
    ],
    "kind": "video",
    "max_out": null,
    "methods": [
      {
        "available": null,
        "billing_basis": {
          "basis": "original_invoice_usd",
          "description": "התעריפים המוצגים מספקים אומדן לעלות לפני היצירה. החיוב הסופי מחושב לפי העלות שנרשמה עבור היצירה המקורית. משך הפלט שנמדד והכמויות החזויות אינם הכמות הסופית לחיוב.",
          "forecast_quantity_is_estimate": true,
          "physical_output_is_billable_quantity": false,
          "version": "original_invoice_usd_v1"
        },
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "contract": {
          "data": {
            "all_results": "Completeddata[] contains all owned signedcontentURLs. FetcheachactualURL,orusecontent?index=actualindex. Failedoriginaljobs maycarrycharge_pending_check; do not recreate.",
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "תוכן התוצאה המקורית עדיין אינו זמין",
                "http_status": 409,
                "recovery": "יש לבדוק במחזוריות את המזהה המקורי שהוחזר ולכבד את Retry-After.",
                "type": "video_not_ready"
              },
              {
                "code": null,
                "condition": "התשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה",
                "http_status": null,
                "recovery": "שמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה.",
                "type": "server_error"
              },
              {
                "absent_fields": [
                  "status",
                  "object",
                  "model",
                  "data"
                ],
                "code": "result_pending_check",
                "condition": "GET לסטטוס או לתוכן המקוריים: המשימה אינה מפורסמת, המשימה המקורית אינה במצב failed/cancelled/expired, והמצב המקומי הוא unknown או שסטטוס המשימה המקורית הוא completed.",
                "friendly_fields": "error.reason=result_pending_check,error.param=null; error.operation_id and error.request_id when the existing context supplies them. error.message is rewritten/localized.",
                "headers": {
                  "Retry-After": null,
                  "X-Should-Retry": "false"
                },
                "http_status": 503,
                "recovery": "יש לשמור את id ואת operation_id המקוריים (אותו מזהה וידאו ציבורי), את התגובה ואת הכותרות; יש לקרוא רק את הסטטוס והתוכן המקוריים. אין לשלוח בקשת יצירה חדשה.",
                "response_fields": {
                  "charge_pending_check": true,
                  "error.code": "result_pending_check",
                  "error.type": "server_error",
                  "id": "original public video ID",
                  "operation_id": "same as id"
                },
                "type": "server_error"
              },
              {
                "code": null,
                "condition": "פענוח אובייקט frame_images שסופק או הפרופיל המותנה שלו נכשל, או שלפרופיל המלא שפוענח אין כרטיס מחיר מדויק ומוכן.",
                "http_status": 422,
                "message": "The complete video request cannot be priced",
                "recovery": "יש לשמור את model, prompt, duration, resolution, aspect_ratio ו־generate_audio. יש להוסיף frame_images המכיל בדיוק פריט first_frame אחד בפורמט האובייקט שצוין. יש להגדיר duration=4, resolution=\"720p\", aspect_ratio=\"16:9\" ו־generate_audio=false. האימות הזה מתבצע לפני שליחת הבקשה.",
                "type": "price_unavailable"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "content": [
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/{request_id}/content",
                  "query": {
                    "index": "actual output index; default0"
                  }
                },
                {
                  "http": "GET",
                  "parameters": [
                    {
                      "availability": "source_interface",
                      "conditions": "Must be less than the actual returned output count.",
                      "default": 0,
                      "default_known": true,
                      "enum": null,
                      "enum_known": false,
                      "maximum": null,
                      "maximum_known": false,
                      "minimum": 0,
                      "name": "index",
                      "required": false,
                      "type": "integer"
                    }
                  ],
                  "path": "/v1/videos/generations/{request_id}/content"
                }
              ],
              "create": {
                "http": "POST",
                "path": "/v1/videos"
              },
              "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
              "mode": "submit_once_poll_original",
              "multioutputs": "retain every completed data output; index0 alone is not all outputs",
              "owned_result": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              },
              "status": [
                {
                  "http": "GET",
                  "path": "/v1/videos/{request_id}"
                },
                {
                  "http": "GET",
                  "path": "/v1/videos/generations/{request_id}"
                }
              ],
              "submit_status": 202,
              "unknown": "יש לקרוא את המשימה המקורית הקיימת; אין לשלוח שוב בקשה שתוצאת שליחתה אינה ידועה.",
              "unknown_no_replay": true
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_video",
                "required": [
                  "prompt"
                ]
              },
              {
                "conditions": "The required fields are model, prompt, duration, resolution, aspect_ratio and generate_audio. For image_to_video, also provide frame_images and use duration=4, resolution=\"720p\", aspect_ratio=\"16:9\" and generate_audio=false.",
                "content_type": "application/json",
                "mode": "image_to_video",
                "required": [
                  "prompt",
                  "frame_images"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "Use actual returned task_id or original public video id from response/media library. On HTTP503 result_pending_check from original video status/content GET, operation_id equals that original public video id. Do not assume unrelated operation IDs name media tasks.",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_video",
              "image_to_video"
            ],
            "outputs": {
              "all_results": "data[] שהושלם מכיל את כל כתובות ה־URL החתומות לתוכן שבבעלותכם. יש לאחזר כל כתובת URL שהוחזרה, או להשתמש בנקודת הקצה לתוכן עם index המוגדר לאינדקס של פלט ממשי. משימה מקורית שנכשלה עשויה להחזיר charge_pending_check; יש לבדוק את המשימה המקורית הזו במקום ליצור אותה שוב. רצועת אודיו תקפה של AAC עשויה להיכלל גם כאשר generate_audio=false; יש לשמור את קובץ ה־MP4 המקורי במלואו, כולל האודיו הזה.",
              "create_status": 202,
              "family": "video",
              "fields": [
                {
                  "description": null,
                  "name": "id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "object",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "status",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "signed content URL"
                },
                {
                  "description": null,
                  "name": "charge_pending_check",
                  "type": "boolean"
                },
                {
                  "description": null,
                  "name": "error.code",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "error.message",
                  "type": "string"
                },
                {
                  "description": "תגובת HTTP503 result_pending_check לסטטוס או לתוכן המקוריים: אותו מזהה ציבורי מקורי של פעולת הווידאו בשדה id.",
                  "name": "operation_id",
                  "type": "string"
                },
                {
                  "description": "server_error בתגובת HTTP503 result_pending_check.",
                  "name": "error.type",
                  "type": "string"
                }
              ],
              "format": "mp4",
              "maximum_outputs": 4,
              "status_enum": [
                "in_progress",
                "completed",
                "failed"
              ]
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/veo-3.1-lite"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum_bytes": 10000,
                "maximum_length": null,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string",
                "unit": "בתים בקידוד UTF8"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  6,
                  8
                ],
                "enum_known": true,
                "name": "duration",
                "required": true,
                "type": "integer",
                "unit": "שניות"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "יש להשמיט במצב text_to_video. אם השדה נכלל: פריט אחד בדיוק {\"type\":\"image_url\",\"image_url\":{\"url\":\"<actual HTTPS URL>\"},\"frame_type\":\"first_frame\"}; הפריט כולל בדיוק type,image_url,frame_type; השדה image_url כולל בדיוק url. אין להוסיף מפתחות מיותרים או כפולים. רק duration=4,resolution=\"720p\",aspect_ratio=\"16:9\",generate_audio=false. כתובת URL חייבת להתפענח עם סכמה https, שם מארח שאינו ריק, ללא פרטי משתמש וללא תו # מילולי; מחרוזת השאילתה החתומה והנתיב המקודד נשמרים. קוד המקור אינו בודק את סוג ה־MIME של הקלט, את גודל הקובץ או את ממדיו בפיקסלים.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "frame_images",
                "required": false,
                "type": "array"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": [
              "Every field outside the original six required fields plus optional frame_images; last_frame, reference frames, multiple frames, non-HTTPS URLs, URL userinfo, URL fragments and other first-frame profiles are rejected."
            ]
          },
          "hints": [
            "יש ליצור פעם אחת ולשמור את המזהה שהוחזר.",
            "יש לבדוק במחזוריות את הסטטוס המקורי; יש לשמור כל נכס שהושלם ואת משכו."
          ],
          "input": {
            "aspect_ratio": [
              "16:9",
              "9:16"
            ],
            "content_type": "application/json",
            "duration": [
              4,
              6,
              8
            ],
            "generate_audio": [
              false
            ],
            "material_types": [
              "text",
              "image"
            ],
            "other_options": false,
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/veo-3.1-lite"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "maximum_bytes": 10000,
                "maximum_length": null,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string",
                "unit": "בתים בקידוד UTF8"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  4,
                  6,
                  8
                ],
                "enum_known": true,
                "name": "duration",
                "required": true,
                "type": "integer",
                "unit": "שניות"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "720p"
                ],
                "enum_known": true,
                "name": "resolution",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "16:9",
                  "9:16"
                ],
                "enum_known": true,
                "name": "aspect_ratio",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  false
                ],
                "enum_known": true,
                "name": "generate_audio",
                "required": true,
                "type": "boolean"
              },
              {
                "availability": "source_interface",
                "conditions": "יש להשמיט במצב text_to_video. אם השדה נכלל: פריט אחד בדיוק {\"type\":\"image_url\",\"image_url\":{\"url\":\"<actual HTTPS URL>\"},\"frame_type\":\"first_frame\"}; הפריט כולל בדיוק type,image_url,frame_type; השדה image_url כולל בדיוק url. אין להוסיף מפתחות מיותרים או כפולים. רק duration=4,resolution=\"720p\",aspect_ratio=\"16:9\",generate_audio=false. כתובת URL חייבת להתפענח עם סכמה https, שם מארח שאינו ריק, ללא פרטי משתמש וללא תו # מילולי; מחרוזת השאילתה החתומה והנתיב המקודד נשמרים. קוד המקור אינו בודק את סוג ה־MIME של הקלט, את גודל הקובץ או את ממדיו בפיקסלים.",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "name": "frame_images",
                "required": false,
                "type": "array"
              }
            ],
            "prompt_max_bytes": 10000,
            "required": [
              "model",
              "prompt",
              "duration",
              "resolution",
              "aspect_ratio",
              "generate_audio"
            ],
            "resolution": [
              "720p"
            ]
          },
          "lifecycle": {
            "content": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}/content",
                "query": {
                  "index": "actual output index; default0"
                }
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}/content"
              }
            ],
            "id_source": "Actualreturnedpublicid; opaque URLencodeit forGET. On HTTP503 result_pending_check from original status/content GET, operation_id equals id: use that same original public video ID for polling. Do not substitute unrelated operation IDs from other responses.",
            "mode": "submit_once_poll_original",
            "multioutputs": "retain every completed data output; index0 alone is not all outputs",
            "owned_result": {
              "http": "GET",
              "path": "/v1/media/assets/{asset_id}"
            },
            "status": [
              {
                "http": "GET",
                "path": "/v1/videos/{request_id}"
              },
              {
                "http": "GET",
                "path": "/v1/videos/generations/{request_id}"
              }
            ],
            "submit_status": 202,
            "unknown": "Read existing original job; never resubmit unknown send."
          },
          "manufacturer_capability": null,
          "method": {
            "http": "POST",
            "path": "/v1/videos"
          },
          "method_aliases": [
            "/v1/videos/generations",
            "/videos",
            "/videos/generations"
          ],
          "operation_modes": [
            "text_to_video",
            "image_to_video"
          ],
          "output": {
            "family": "video",
            "format": "mp4",
            "max_outputs": 4,
            "result": "all actual owned validated complete MP4 outputs"
          }
        },
        "ctx": null,
        "declared_pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "מחיר וידאו",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "אודיו: with_audio; רזולוציה: 720p",
              "quoted_unit": "per video second"
            },
            "label": "מחיר וידאו",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": false,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.06",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio_720p",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.06",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "basis": "אומדן זה אינו חיוב נוסף או תעריף קבוע עבור היצירה שהושלמה.",
            "dimensions": {
              "forecast_quantity": "one generation estimate"
            },
            "label": "עלות יצירה משוערת",
            "units": [
              {
                "amount": "0.24",
                "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.24",
                "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'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/veo-3.1-lite\", \"prompt\": \"A cat in a spacesuit walking on the Moon\", \"duration\": 4, \"resolution\": \"720p\", \"aspect_ratio\": \"16:9\", \"generate_audio\": false}')\n\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\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\n",
            "label": "curl",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_IMAGE_URL:?Set the actual HTTPS URL of your first-frame image}\"\nexport AILOOT_IMAGE_URL\npython3 - <<'PY_REQUEST'\nimport json,os,re\nfrom pathlib import Path\nfrom urllib.parse import urlsplit\nimage=os.environ[\"AILOOT_IMAGE_URL\"]\ntry:\n    parsed=urlsplit(image)\n    valid=(image.startswith(\"https://\") and parsed.scheme==\"https\" and bool(parsed.hostname)\n           and parsed.username is None and parsed.password is None and \"#\" not in image\n           and not any(ord(c)<32 or ord(c)==127 for c in image)\n           and re.search(r\"%(?![0-9A-Fa-f]{2})\",image) is None)\nexcept ValueError:\n    valid=False\nif not valid:\n    raise SystemExit(\"Use your actual HTTPS image URL with a hostname, no userinfo and no fragment\")\np={\"model\":\"google/veo-3.1-lite\",\"prompt\":\"The subject makes a slow, natural movement. Keep the opening composition.\",\"duration\":4,\"resolution\":\"720p\",\"aspect_ratio\":\"16:9\",\"generate_audio\":False,\"frame_images\":[{\"type\":\"image_url\",\"image_url\":{\"url\":image},\"frame_type\":\"first_frame\"}]}\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=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, headers and original returned id. Use the existing GET status tab for that original operation, then save every completed owned output. Never resubmit an unknown generation.\")\nPY_RESULT\n",
            "label": "curl · animate your first frame",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}\"\nexport AILOOT_OPERATION_ID\noperation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_OPERATION_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/videos/$operation_id\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o status.json\npython3 - <<'PY_STATUS'\nimport json\nfrom pathlib import Path\nr=json.loads(Path(\"status.json\").read_text())\nprint(json.dumps(r))\nif r.get(\"status\")==\"completed\":\n    for x in r.get(\"data\",[]):print(x)\nPY_STATUS\n",
            "label": "GET status",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_OPERATION_ID:?Set the actual Ailoot operation ID returned by creation}\"\nexport AILOOT_OPERATION_ID\noperation_id=$(python3 -c 'import os,urllib.parse;print(urllib.parse.quote(os.environ[\"AILOOT_OPERATION_ID\"],safe=\"\"))')\ncurl --fail-with-body --silent --show-error \"https://api.ailoot.ai/v1/videos/$operation_id/content\" \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -o video.mp4\n",
            "label": "GET content",
            "language": "bash"
          },
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_STATUS_FILE:?Set the actual completed status JSON file}\"\nexport AILOOT_STATUS_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\nfrom urllib.parse import urlsplit,urljoin\nf=Path(os.environ[\"AILOOT_STATUS_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose the actual completed status file\")\nr=json.loads(f.read_text())\nif r.get(\"status\")!=\"completed\" or not isinstance(r.get(\"data\"),list) or not r[\"data\"]:raise SystemExit(\"Wait for a completed status with asset paths\")\nurls=[]\nfor x in r[\"data\"]:\n    if not isinstance(x,str) or \"\\n\" in x or \"\\r\" in x:raise SystemExit(\"Invalid asset path\")\n    u=urljoin(\"https://api.ailoot.ai\",x)\n    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 Ailoot asset paths from status\")\n    urls.append(u)\nPath(\"asset-urls.txt\").write_text(\"\\n\".join(urls)+\"\\n\")\nPY_REQUEST\nindex=0\nwhile IFS= read -r asset_url; do\n  curl --fail-with-body --silent --show-error \"$asset_url\" \\\n    -H \"Authorization: Bearer $AILOOT_API_KEY\" -o \"video-${index}.mp4\"\n  index=$((index + 1))\ndone < asset-urls.txt\n",
            "label": "GET all completed assets",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "videos",
        "hints": [
          "Create once and save returned ID.",
          "Poll original status; retain every completed asset and duration."
        ],
        "http": "POST",
        "in": null,
        "input": [
          "text",
          "image"
        ],
        "label": "Видео",
        "max_out": null,
        "max_reasoning_effort_multiplier": null,
        "method_aliases": [
          "/v1/videos/generations",
          "/videos",
          "/videos/generations"
        ],
        "out": null,
        "output": [
          "video"
        ],
        "path": "/v1/videos",
        "price_conditions": [
          {
            "label": "Fast mode",
            "value": "Not specified",
            "when": "When fast mode is selected"
          },
          {
            "label": "Flex mode",
            "value": "Not specified",
            "when": "When flex mode is selected"
          },
          {
            "label": "Maximum reasoning effort",
            "value": "Not specified",
            "when": "When maximum reasoning effort uses the default adjustment"
          }
        ],
        "pricing": {
          "billing_mode": "original_invoice_usd",
          "image_input_price": null,
          "image_output_price": null
        },
        "pricing_profiles": [
          {
            "dimensions": {
              "regime": "base"
            },
            "label": "Base token rates",
            "units": [
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "input_price",
                "label": "Input tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "output_price",
                "label": "Output tokens",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "output_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_read_price",
                "label": "Cache read",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "cached_input_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "cached_input_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_price",
                "label": "Cache write",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "generic_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "generic_cache_creation_token"
              },
              {
                "amount": null,
                "amount_unit": "usd_per_thousand_tokens",
                "billing_input": false,
                "estimate_only": true,
                "key": "cache_write_1h_price",
                "label": "Cache write, 1 hour",
                "native_amount_usd_per_unit": null,
                "native_quantity": 1,
                "native_unit": "one_hour_cache_creation_token",
                "public_unit_label": "/ 1K tokens",
                "quantity": 1000,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "in",
                "unit": "one_hour_cache_creation_token"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.16",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.16",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: with_audio; resolution: 720p",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_with_audio_720p",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "dimensions": {
              "conditions": "audio: without_audio",
              "quoted_unit": "per video second"
            },
            "label": "Video price",
            "units": [
              {
                "amount": "0.1",
                "amount_unit": "usd_per_video_second",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio",
                "label": "Video price",
                "native_amount_usd_per_unit": "0.1",
                "native_quantity": 1,
                "public_unit_label": "per video second",
                "quantity": 1,
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "video_second"
              }
            ]
          },
          {
            "basis": "The displayed rate estimates the cost before generation. The final charge is calculated from the cost recorded for the original generation. Physical video duration is not the billable quantity.",
            "dimensions": {
              "forecast_quantity": "Requested configuration; estimate only.",
              "generate_audio": false,
              "quoted_unit": "per output video second",
              "resolution": "720p"
            },
            "label": "Ultra",
            "units": [
              {
                "amount": "0.06",
                "amount_unit": "usd_per_exact_physical_unit",
                "billing_input": false,
                "estimate_only": true,
                "key": "duration_seconds_without_audio_720p",
                "label": "Estimated output video second",
                "native_amount_usd_per_unit": "0.06",
                "native_quantity": 1,
                "public_unit_label": "per output video second",
                "quantity": "1",
                "quantity_is_estimate": true,
                "rate_role": "typed_native_retail_rate",
                "side": "out",
                "unit": "output_video_second"
              }
            ]
          },
          {
            "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.24",
                "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.24",
                "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": "google/veo-3.1-lite",
        "route_label": "Ultra",
        "status_reads": [
          "GET /v1/videos/{request_id}",
          "GET /v1/videos/generations/{request_id}",
          "GET /v1/videos/{request_id}/content",
          "GET /v1/videos/generations/{request_id}/content"
        ],
        "tiers": [],
        "units": [
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "input_price",
            "label": "Input tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "output_price",
            "label": "Output tokens",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "output_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_read_price",
            "label": "Cache read",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "cached_input_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "cached_input_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_price",
            "label": "Cache write",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "generic_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "generic_cache_creation_token"
          },
          {
            "amount": null,
            "amount_unit": "usd_per_thousand_tokens",
            "billing_input": false,
            "estimate_only": true,
            "key": "cache_write_1h_price",
            "label": "Cache write, 1 hour",
            "native_amount_usd_per_unit": null,
            "native_quantity": 1,
            "native_unit": "one_hour_cache_creation_token",
            "public_unit_label": "/ 1K tokens",
            "quantity": 1000,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "in",
            "unit": "one_hour_cache_creation_token"
          },
          {
            "amount": "0.16",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.16",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_with_audio_720p",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.1",
            "amount_unit": "usd_per_video_second",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_without_audio",
            "label": "Video price",
            "native_amount_usd_per_unit": "0.1",
            "native_quantity": 1,
            "public_unit_label": "per video second",
            "quantity": 1,
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "video_second"
          },
          {
            "amount": "0.06",
            "amount_unit": "usd_per_exact_physical_unit",
            "billing_input": false,
            "estimate_only": true,
            "key": "duration_seconds_without_audio_720p",
            "label": "Estimated output video second",
            "native_amount_usd_per_unit": "0.06",
            "native_quantity": 1,
            "public_unit_label": "per output video second",
            "quantity": "1",
            "quantity_is_estimate": true,
            "rate_role": "typed_native_retail_rate",
            "side": "out",
            "unit": "output_video_second"
          },
          {
            "amount": "0.24",
            "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.24",
            "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": "google/veo-3.1-lite",
        "request_model_id": "google/veo-3.1-lite",
        "route_label": "Ultra"
      }
    ],
    "name": "Google: Veo 3.1 Lite",
    "price": {
      "estimate_only": true,
      "in": null,
      "in_label": null,
      "out": 0.24,
      "out_label": "estimate before generation",
      "scope_label": "Estimated generation cost",
      "sort_in": null,
      "sort_out": 0.24,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": true,
          "native_model_id": "veo-3.1-lite-generate-preview",
          "resolution": "720p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.10",
            "amount_unit": "usd_per_output_second",
            "conditions": {
              "audio": true,
              "native_model_id": "veo-3.1-lite-generate-preview",
              "resolution": "720p"
            },
            "key": "output_video_audio",
            "label": "output video audio",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "audio": true,
          "native_model_id": "veo-3.1-lite-generate-preview",
          "resolution": "1080p"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.16",
            "amount_unit": "usd_per_output_second",
            "conditions": {
              "audio": true,
              "native_model_id": "veo-3.1-lite-generate-preview",
              "resolution": "1080p"
            },
            "key": "output_video_audio",
            "label": "output video audio",
            "profile_index": 1,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "output_second"
          }
        ]
      },
      {
        "applicability": {
          "client_selectable": false,
          "no_method_admission_claim": true,
          "scope": "supplier_tariff_reference"
        },
        "dimensions": {},
        "label": "Ailoot Ultra · Tariff components",
        "units": [
          {
            "amount": "0.16",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "audio=true Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.16",
            "key": "duration_seconds_with_audio",
            "label": "output second",
            "native_amount_usd_per_unit": "0.16",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.10",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "audio=false Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.10",
            "key": "duration_seconds_without_audio",
            "label": "output second",
            "native_amount_usd_per_unit": "0.10",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.10",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · audio=true Source-only tariff component.",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.10",
            "key": "duration_seconds_with_audio_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.10",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          },
          {
            "amount": "0.06",
            "amount_unit": "usd_per_exact_physical_unit",
            "basis": "resolution=720p · audio=false",
            "billing_original_currency": "USD",
            "billing_original_rate": "0.06",
            "key": "duration_seconds_without_audio_720p",
            "label": "output second",
            "native_amount_usd_per_unit": "0.06",
            "native_quantity": 1,
            "quantity": 1,
            "side": "out",
            "unit": "output_second"
          }
        ]
      }
    ],
    "public_id": "google/veo-3.1-lite",
    "short": "Veo 3.1 Lite יוצר וידאו עם אודיו מובנה מתיאור טקסטואלי או מתמונה התחלתית. תהליך העבודה המתועד של Lite מפיק קליפ אחד, במשכים של 4, 6 או 8 שניות, במסגור לרוחב או לאורך ועם מגבלות מסוימות השונות מ־Veo 3.1 ומ־Fast."
  },
  "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": "Veo 3.1 Lite יוצר וידאו עם אודיו מובנה מתיאור טקסטואלי או מתמונה התחלתית. תהליך העבודה המתועד של Lite מפיק קליפ אחד, במשכים של 4, 6 או 8 שניות, במסגור לרוחב או לאורך ועם מגבלות מסוימות השונות מ־Veo 3.1 ומ־Fast.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "2d8c5ecc0602427009e25e543aec0e33d9aba4abcd24c8f9d6617e0bcd6dae88",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "3c2f74339742293613b212e35e3006704eead272a2969eb36993655722590a17"
}
