{
  "aboutHtml": "<p>Lyria 3 Clip Preview הוא פרופיל יצירת המוזיקה של Google לקליפים קצרים, לולאות וקטעי תצוגה מקדימה. הוא מקבל הנחיית טקסט או תמונה להשראה ומחזיר טקסט ואודיו. הפרופיל המפורסם מתאר קליפים באורך 30 שניות עם אודיו סטריאו ב־48 kHz, כולל שירה, מילות שיר מתוזמנות ועיבודים אינסטרומנטליים מלאים.</p><h4>תארו את הרגע המוזיקלי</h4><p>ציינו את מטרת הקליפ ואת האווירה שהוא צריך לשאת. נעימת פתיחה קצרה יכולה לפרט מבוא מאופק והגעה ברורה לחלק המרכזי; קטע רקע יכול להגדיר את הקצב והמרקם הדרושים מתחת לסצנה חזותית. ציינו אם התוצאה צריכה לכלול שירה או להיות אינסטרומנטלית, ותנו שמות למרכיבים המוזיקליים החשובים לבריף.</p><p>שמרו על מבנה קטן דיו לקליפ. הגדירו את הפתיחה, את המשפט המוזיקלי המרכזי ואת הסיום או נקודת הלולאה. אם המילים חשובות, ספקו את הרעיון הלירי או הניסוח המיועדים ובדקו את התוצאה המושרת בפועל. הבריף המוזיקלי צריך להבחין בין התוכן המושר לבין הוראות הנוגעות לעיבוד.</p><h4>השראה מתמונה ועיבוד</h4><p>כשמספקים תמונה, הסבירו איזו סצנה או אווירה היא תורמת לבקשת המוזיקה. נוף רגוע וסצנת לילה צפופה מרמזים על כיוונים שונים, אך התפקיד הרגשי הרצוי עדיין צריך להיות מפורש בטקסט. שמרו את התמונה עם ההנחיה כשמשווים את הקליפ שהוחזר לרעיון המיועד.</p><p>בדקו את האיזון בין שירה, כלי נגינה והמשפט המוזיקלי המרכזי. בלולאה, האזינו לסוף ולהתחלה ברצף; בקטע תצוגה מקדימה, בדקו אם המשך הקצר מעביר את הכיוון המיועד. קליפ המלווה עריכה צריך להיבדק מול אותה עריכה ולא רק בנפרד.</p><h4>שמרו את תוצר ההאזנה</h4><p>שמרו את האודיו בפועל וכל טקסט נלווה עם הבריף. בדקו את מאפייני הקובץ בעת הכנת השמעה או ייבוא לעורך, ושמרו כל מידע על מילות שיר או תזמון שהבקשה החזירה. המוזיקה היא פלט המודל; אפשר לארגן חיתוכים, כותרות, מעברים חזותיים ומיקס הפקה סופי סביב הנכס שנבדק.</p><p>פרופיל Clip Preview המדויק הזה מתאים לתוצר מוזיקלי קומפקטי. שמרו על תפקידו בפורמט הקצר כמובחן בעת תכנון יצירה ארוכה יותר, ובחרו את הקליפ שהוחזר באמצעות האזנה למשפט המוזיקלי המלא, לניסוח המושר ולסיום.</p>",
  "aboutText": "Lyria 3 Clip Preview הוא פרופיל יצירת המוזיקה של Google לקליפים קצרים, לולאות וקטעי תצוגה מקדימה. הוא מקבל הנחיית טקסט או תמונה להשראה ומחזיר טקסט ואודיו. הפרופיל המפורסם מתאר קליפים באורך 30 שניות עם אודיו סטריאו ב־48 kHz, כולל שירה, מילות שיר מתוזמנות ועיבודים אינסטרומנטליים מלאים.\n\n### תארו את הרגע המוזיקלי\n\nציינו את מטרת הקליפ ואת האווירה שהוא צריך לשאת. נעימת פתיחה קצרה יכולה לפרט מבוא מאופק והגעה ברורה לחלק המרכזי; קטע רקע יכול להגדיר את הקצב והמרקם הדרושים מתחת לסצנה חזותית. ציינו אם התוצאה צריכה לכלול שירה או להיות אינסטרומנטלית, ותנו שמות למרכיבים המוזיקליים החשובים לבריף.\n\nשמרו על מבנה קטן דיו לקליפ. הגדירו את הפתיחה, את המשפט המוזיקלי המרכזי ואת הסיום או נקודת הלולאה. אם המילים חשובות, ספקו את הרעיון הלירי או הניסוח המיועדים ובדקו את התוצאה המושרת בפועל. הבריף המוזיקלי צריך להבחין בין התוכן המושר לבין הוראות הנוגעות לעיבוד.\n\n### השראה מתמונה ועיבוד\n\nכשמספקים תמונה, הסבירו איזו סצנה או אווירה היא תורמת לבקשת המוזיקה. נוף רגוע וסצנת לילה צפופה מרמזים על כיוונים שונים, אך התפקיד הרגשי הרצוי עדיין צריך להיות מפורש בטקסט. שמרו את התמונה עם ההנחיה כשמשווים את הקליפ שהוחזר לרעיון המיועד.\n\nבדקו את האיזון בין שירה, כלי נגינה והמשפט המוזיקלי המרכזי. בלולאה, האזינו לסוף ולהתחלה ברצף; בקטע תצוגה מקדימה, בדקו אם המשך הקצר מעביר את הכיוון המיועד. קליפ המלווה עריכה צריך להיבדק מול אותה עריכה ולא רק בנפרד.\n\n### שמרו את תוצר ההאזנה\n\nשמרו את האודיו בפועל וכל טקסט נלווה עם הבריף. בדקו את מאפייני הקובץ בעת הכנת השמעה או ייבוא לעורך, ושמרו כל מידע על מילות שיר או תזמון שהבקשה החזירה. המוזיקה היא פלט המודל; אפשר לארגן חיתוכים, כותרות, מעברים חזותיים ומיקס הפקה סופי סביב הנכס שנבדק.\n\nפרופיל Clip Preview המדויק הזה מתאים לתוצר מוזיקלי קומפקטי. שמרו על תפקידו בפורמט הקצר כמובחן בעת תכנון יצירה ארוכה יותר, ובחרו את הקליפ שהוחזר באמצעות האזנה למשפט המוזיקלי המלא, לניסוח המושר ולסיום.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "eef9d3e1e154aa3d7a0510029d8d12ff8ce71e1d41ad1fdb97b9bff37be48fd1",
    "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\">Lyria 3 Clip Preview</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"סגירה\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/lyria-3-clip-preview</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=\"Core|music|/v1/music/generations|google%2Flyria-3-clip-preview\">מוזיקה</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\">Lyria 3 Clip Preview הוא מודל המוזיקה של Google לקליפים קצרים, לולאות וקטעי תצוגה מקדימה. הוא מקבל השראה מטקסט או מתמונה ומפיק מוזיקה באורך 30 שניות עם אודיו סטריאו ב־48 kHz, ותומך בשירה, במילות שיר מתוזמנות ובעיבודים אינסטרומנטליים.</p><dl class=\"card-io\" data-card-io><div><dt>סוגי קלט נתמכים</dt><dd>טקסט</dd></div><div><dt>תוצאות</dt><dd>music</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>Lyria 3 Clip Preview הוא פרופיל יצירת המוזיקה של Google לקליפים קצרים, לולאות וקטעי תצוגה מקדימה. הוא מקבל הנחיית טקסט או תמונה להשראה ומחזיר טקסט ואודיו. הפרופיל המפורסם מתאר קליפים באורך 30 שניות עם אודיו סטריאו ב־48 kHz, כולל שירה, מילות שיר מתוזמנות ועיבודים אינסטרומנטליים מלאים.</p><h4>תארו את הרגע המוזיקלי</h4><p>ציינו את מטרת הקליפ ואת האווירה שהוא צריך לשאת. נעימת פתיחה קצרה יכולה לפרט מבוא מאופק והגעה ברורה לחלק המרכזי; קטע רקע יכול להגדיר את הקצב והמרקם הדרושים מתחת לסצנה חזותית. ציינו אם התוצאה צריכה לכלול שירה או להיות אינסטרומנטלית, ותנו שמות למרכיבים המוזיקליים החשובים לבריף.</p><p>שמרו על מבנה קטן דיו לקליפ. הגדירו את הפתיחה, את המשפט המוזיקלי המרכזי ואת הסיום או נקודת הלולאה. אם המילים חשובות, ספקו את הרעיון הלירי או הניסוח המיועדים ובדקו את התוצאה המושרת בפועל. הבריף המוזיקלי צריך להבחין בין התוכן המושר לבין הוראות הנוגעות לעיבוד.</p><h4>השראה מתמונה ועיבוד</h4><p>כשמספקים תמונה, הסבירו איזו סצנה או אווירה היא תורמת לבקשת המוזיקה. נוף רגוע וסצנת לילה צפופה מרמזים על כיוונים שונים, אך התפקיד הרגשי הרצוי עדיין צריך להיות מפורש בטקסט. שמרו את התמונה עם ההנחיה כשמשווים את הקליפ שהוחזר לרעיון המיועד.</p><p>בדקו את האיזון בין שירה, כלי נגינה והמשפט המוזיקלי המרכזי. בלולאה, האזינו לסוף ולהתחלה ברצף; בקטע תצוגה מקדימה, בדקו אם המשך הקצר מעביר את הכיוון המיועד. קליפ המלווה עריכה צריך להיבדק מול אותה עריכה ולא רק בנפרד.</p><h4>שמרו את תוצר ההאזנה</h4><p>שמרו את האודיו בפועל וכל טקסט נלווה עם הבריף. בדקו את מאפייני הקובץ בעת הכנת השמעה או ייבוא לעורך, ושמרו כל מידע על מילות שיר או תזמון שהבקשה החזירה. המוזיקה היא פלט המודל; אפשר לארגן חיתוכים, כותרות, מעברים חזותיים ומיקס הפקה סופי סביב הנכס שנבדק.</p><p>פרופיל Clip Preview המדויק הזה מתאים לתוצר מוזיקלי קומפקטי. שמרו על תפקידו בפורמט הקצר כמובחן בעת תכנון יצירה ארוכה יותר, ובחרו את הקליפ שהוחזר באמצעות האזנה למשפט המוזיקלי המלא, לניסוח המושר ולסיום.</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 · מוזיקה</b> <code>POST /v1/music/generations</code></summary><dl class=\"method-capabilities\"><div><dt>סוגי קלט</dt><dd><code>text</code></dd></div><div><dt>סוגי פלט</dt><dd><code>music</code></dd></div><div><dt>פורמט פלט</dt><dd>קטעי אודיו שלמים בבעלותכם / קישורי JSON</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/lyria-3-clip-preview</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></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>text_to_music</b> · נדרש: prompt</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>material_types</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>text</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>null</td></tr><tr><th data-cell-label=\"פרמטר\" scope=\"row\"><span class=\"card-cell-label\">פרמטר</span><code>optional_controls</code></th><td data-cell-label=\"מפרט\"><span class=\"card-cell-label\">מפרט</span>null</td></tr></tbody></table></div><p>מחזור חיים: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · ערך task_id שהוחזר בפועל או רשומה בספריית המדיה</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">תעריפים</h3><h4>תעריפי שיטות Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> מוזיקה</b><code>POST /v1/music/generations</code></header><dl><div><dt>פלט</dt><dd>⁦‏0.04 ‏$⁩ <em>לכל קטע</em></dd></div><div data-billing-reference=\"not-added\"><dt>לעיון בלבד · אינו מתווסף</dt><dd>⁦‏0.04 ‏$⁩ <em>לכל בקשה</em></dd></div></dl><div data-music-clip-pricing=\"v1\"><p class=\"note-s\">קליפים שנמסרו × תעריף בסיס לקליפ. תעריף הייחוס לבקשה אינו מתווסף. הדוגמאות לפני התאמות החלות.</p><p><code>1 × ⁦‏0.04 ‏$⁩ = ⁦‏0.04 ‏$⁩</code></p></div></section><p class=\"note-s\">לפני הבקשה Ailoot משריינת סכום משוער. לאחר קבלת התוצאה היא מסדירה את החיוב הסופי לפי השימוש המדוד. הסדרת חיוב בהזרמה משתמשת ברשומת השימוש הסופית. <a href=\"/docs/he/billing/reserve/\">איך פועלים שריון הסכום והסדרת החיוב →</a></p><div data-model-tariff-reference><h4>פרטי תעריף הייחוס</h4><p class=\"note-s\">טבלאות הייחוס ברמת המודל אינן משנות את בחירת השיטה, הצעות המחיר או החיובים. החיובים בפועל משתמשים בתעריפי שיטת Ailoot שנבחרה.</p><details class=\"card-price-reference\" data-profile-scope=\"manufacturer_reference\" data-client-selectable=\"false\"><summary>טבלאות ייחוס של המודל</summary><h4>מחירים לפי תצורה</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>תצורה</th><th>רמת שירות</th><th>תנאי הקשר</th><th>חיוב</th></tr></thead><tbody><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>standard</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.08 ‏$⁩</b> <span class=\"price-unit\">לכל שיר</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">דוגמאות לבקשות</h3><h4>Ailoot · מוזיקה</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"אפשרויות קוד\"><button class=\"cg-tab\" id=\"model-code-355-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-355-panel-0\" aria-selected=\"true\" tabindex=\"0\">דוגמת מוזיקה</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"העתקת הקוד\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-355-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-355-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_PROMPT_FILE:?Set your actual UTF-8 music brief}&quot;\nexport AILOOT_PROMPT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;google/lyria-3-clip-preview&quot;, &quot;prompt&quot;: &quot;&quot;}&#39;)\nf=Path(os.environ[&quot;AILOOT_PROMPT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 brief&quot;)\np[&#39;prompt&#39;]=f.read_text(encoding=&quot;utf-8&quot;)\nif not p[&#39;prompt&#39;].strip():raise SystemExit(&quot;Brief must contain text&quot;)\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/music/generations \\\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\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin, urlparse\nresult=json.loads(Path(&quot;result.json&quot;).read_text(encoding=&quot;utf-8&quot;))\nprint(json.dumps(result,ensure_ascii=False,indent=2))\nfor number,clip in enumerate(result.get(&quot;data&quot;) or []):\n    u=urlparse(urljoin(&quot;https://api.ailoot.ai&quot;,clip[&quot;url&quot;]))\n    if u.scheme!=&quot;https&quot; or not u.hostname or u.username or u.password:\n        raise SystemExit(&quot;Result URL must be HTTPS without embedded credentials&quot;)\n    owned=u.netloc==&quot;api.ailoot.ai&quot; and u.path.startswith(&quot;/v1/media/assets/&quot;) and u.path.endswith(&quot;/content&quot;)\n    args=[&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,u.geturl()]\n    if owned: args += [&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;]]\n    raw=subprocess.check_output(args)\n    ext=&quot;wav&quot; if raw.startswith(b&quot;RIFF&quot;) and raw[8:12]==b&quot;WAVE&quot; else &quot;flac&quot; if raw.startswith(b&quot;fLaC&quot;) else &quot;ogg&quot; if raw.startswith(b&quot;OggS&quot;) else &quot;mp3&quot; if raw.startswith(b&quot;ID3&quot;) or raw[:1]==b&quot;\\xff&quot; else &quot;bin&quot;\n    f=Path(&quot;music-&quot;+str(number)+&quot;.&quot;+ext);f.write_bytes(raw)\n    print(&quot;Saved&quot;,f,clip.get(&quot;asset_id&quot;))\n\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">קבלה ושמירה של תוצאות</h3><h4>Ailoot · מוזיקה</h4><p class=\"note-s\">קטעי אודיו שלמים בבעלותכם / קישורי JSON</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>שמירת כל התוצאות שהושלמו</h5><p class=\"note-s\">שמרו כל תגובה מלאה, קובץ ומקטע תוכן שהוחזרו.</p><p class=\"note-s\">יש לשמור או לאחזר כל קטע שהוחזר ולשמר את המזהה, סוג ה־MIME והמטא־נתונים בפועל. השיטה סינכרונית; לא מתווספת כתובת מעקב נפרדת ליצירת מוזיקה ב־Ailoot.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>כשצריך לבדוק את התגובה המקורית</h5><p class=\"note-s\">אם תוצאת מוזיקה דורשת בדיקה, יש לשמור את operation_id/X-Client-Request-ID המקוריים ואת פרטי הקטעים שהוחזרו. יש לשחזר קטעים קיימים שבבעלותכם דרך ספריית המדיה באמצעות ערכי task_id או asset_id ממשיים. אין לשלוח שוב את בקשת המוזיקה או לבנות כתובת URL למעקב אחר יצירה מתוך operation_id.</p></div><details class=\"card-about\" data-output-fields><summary>שדות התגובה</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>שדה</th><th>סוג</th></tr></thead><tbody><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">response_id</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>string</td></tr><tr><th data-cell-label=\"שדה\" scope=\"row\"><span class=\"card-cell-label\">שדה</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"סוג\" data-field-type><span class=\"card-cell-label\">סוג</span>owned clip record</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><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></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=\"Core\"><b>Ailoot</b> <a href=\"#m=google%2Flyria-3-clip-preview&amp;route=Core&amp;caller=google%2Flyria-3-clip-preview&amp;fmt=music\"><code>google/lyria-3-clip-preview</code></a></span></p><h4>כינויים לנתיבי שיטות</h4><p class=\"note-s\">השתמשו בנתיבי השיטות המוצגים למעלה.</p><h4>מזהי מודלים קשורים IDs</h4><p class=\"note-s\"><a href=\"#m=google%2Flyria-3-clip-preview&amp;route=Core&amp;caller=google%2Flyria-3-clip-preview&amp;fmt=music\"><code>google/lyria-3-clip-preview</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/lyria-3-clip-preview",
        "fmt": "music",
        "http": "POST",
        "path": "/v1/music/generations",
        "request_model_id": "google/lyria-3-clip-preview",
        "route_label": "Core"
      },
      "method_key": "Core|music|/v1/music/generations|google%2Flyria-3-clip-preview",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Save/fetch every returned clip and preserve actual ID, MIME and metadata. The method is synchronous; no separate Ailoot music generationpollingURL is introduced.",
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "התשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה",
                "http_status": null,
                "recovery": "שמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "אם תוצאת מוזיקה דורשת בדיקה, יש לשמור את operation_id/X-Client-Request-ID המקוריים ואת פרטי הקטעים שהוחזרו. יש לשחזר קטעים קיימים שבבעלותכם דרך ספריית המדיה באמצעות ערכי task_id או asset_id ממשיים. אין לשלוח שוב את בקשת המוזיקה או לבנות כתובת URL למעקב אחר יצירה מתוך operation_id."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_music",
                "required": [
                  "prompt"
                ]
              }
            ],
            "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": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_music"
            ],
            "outputs": {
              "all_results": "יש לשמור או לאחזר כל קטע שהוחזר ולשמר את המזהה, סוג ה־MIME והמטא־נתונים בפועל. השיטה סינכרונית; לא מתווספת כתובת מעקב נפרדת ליצירת מוזיקה ב־Ailoot.",
              "family": "music",
              "fields": [
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "response_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "owned clip record"
                }
              ],
              "format": "קטעי אודיו שלמים בבעלותכם / קישורי JSON"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/lyria-3-clip-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "ערך task_id שהוחזר בפועל או רשומה בספריית המדיה",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "If a music result requires a check, keep the original operation_id/X-Client-Request-ID and returned clip information. Recover existing owned clips through the media library using actual task_id or asset_id values. Do not resubmit the music request or construct a generation polling URL from operation_id."
          },
          "method": {
            "http": "POST",
            "path": "/v1/music/generations"
          },
          "operation_modes": [
            "music"
          ],
          "output": {
            "family": [
              "music"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_PROMPT_FILE:?Set your actual UTF-8 music brief}\"\nexport AILOOT_PROMPT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/lyria-3-clip-preview\", \"prompt\": \"\"}')\nf=Path(os.environ[\"AILOOT_PROMPT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 brief\")\np['prompt']=f.read_text(encoding=\"utf-8\")\nif not p['prompt'].strip():raise SystemExit(\"Brief must contain text\")\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/music/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\nexport AILOOT_API_KEY\npython3 - <<'PY_RESULT'\nimport json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin, urlparse\nresult=json.loads(Path(\"result.json\").read_text(encoding=\"utf-8\"))\nprint(json.dumps(result,ensure_ascii=False,indent=2))\nfor number,clip in enumerate(result.get(\"data\") or []):\n    u=urlparse(urljoin(\"https://api.ailoot.ai\",clip[\"url\"]))\n    if u.scheme!=\"https\" or not u.hostname or u.username or u.password:\n        raise SystemExit(\"Result URL must be HTTPS without embedded credentials\")\n    owned=u.netloc==\"api.ailoot.ai\" and u.path.startswith(\"/v1/media/assets/\") and u.path.endswith(\"/content\")\n    args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u.geturl()]\n    if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n    raw=subprocess.check_output(args)\n    ext=\"wav\" if raw.startswith(b\"RIFF\") and raw[8:12]==b\"WAVE\" else \"flac\" if raw.startswith(b\"fLaC\") else \"ogg\" if raw.startswith(b\"OggS\") else \"mp3\" if raw.startswith(b\"ID3\") or raw[:1]==b\"\\xff\" else \"bin\"\n    f=Path(\"music-\"+str(number)+\".\"+ext);f.write_bytes(raw)\n    print(\"Saved\",f,clip.get(\"asset_id\"))\n\nPY_RESULT\n",
            "label": "Compose from your actual music brief",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "music",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "מוזיקה",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "music"
        ],
        "path": "/v1/music/generations",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.04,
                "amount_unit": "usd_per_display_unit",
                "key": "music_output_clip",
                "label": "per clip",
                "side": "out"
              },
              {
                "amount": 0.04,
                "amount_unit": "usd_per_display_unit",
                "key": "per_request",
                "label": "per request",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "google/lyria-3-clip-preview",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "music_output_clip",
        "units": [
          {
            "key": "music_output_clip",
            "label": "per clip",
            "side": "out",
            "usd": 0.04
          },
          {
            "key": "per_request",
            "label": "per request",
            "side": "out",
            "usd": 0.04
          }
        ]
      }
    }
  ],
  "model_id": "google/lyria-3-clip-preview",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "3bcf471cd93cb37aa6b437f879356028f4944e76d2aff5e5186e99369e56de3e",
    "input_html_sha256": "df51c369b33e1c00936143ec64fcd9a4b139ae35c96e8e14d069d3ec61979762",
    "private_audit_sha256": "7f2d0c2aa2ca6265b0a8024627b946df04dbf071ff904c04a904305f5ae8af93",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/he/google-lyria-3-clip-preview/",
    "description": "Lyria 3 Clip Preview הוא מודל המוזיקה של Google לקליפים קצרים, לולאות וקטעי תצוגה מקדימה. הוא מקבל השראה מטקסט או מתמונה ומפיק מוזיקה באורך 30 שניות עם אודיו סטריאו ב־48 kHz, ותומך בשירה, במילות שיר מתוזמנות ובעיבודים אינסטרומנטליים.",
    "locale": "he",
    "md_url": "https://ailoot.ai/models/he/google-lyria-3-clip-preview/index.md",
    "title": "Lyria 3 Clip Preview — Ailoot",
    "url": "https://ailoot.ai/models/he/google-lyria-3-clip-preview/"
  },
  "rawModel": {
    "about": "Lyria 3 Clip Preview הוא פרופיל יצירת המוזיקה של Google לקליפים קצרים, לולאות וקטעי תצוגה מקדימה. הוא מקבל הנחיית טקסט או תמונה להשראה ומחזיר טקסט ואודיו. הפרופיל המפורסם מתאר קליפים באורך 30 שניות עם אודיו סטריאו ב־48 kHz, כולל שירה, מילות שיר מתוזמנות ועיבודים אינסטרומנטליים מלאים.\n\n### תארו את הרגע המוזיקלי\n\nציינו את מטרת הקליפ ואת האווירה שהוא צריך לשאת. נעימת פתיחה קצרה יכולה לפרט מבוא מאופק והגעה ברורה לחלק המרכזי; קטע רקע יכול להגדיר את הקצב והמרקם הדרושים מתחת לסצנה חזותית. ציינו אם התוצאה צריכה לכלול שירה או להיות אינסטרומנטלית, ותנו שמות למרכיבים המוזיקליים החשובים לבריף.\n\nשמרו על מבנה קטן דיו לקליפ. הגדירו את הפתיחה, את המשפט המוזיקלי המרכזי ואת הסיום או נקודת הלולאה. אם המילים חשובות, ספקו את הרעיון הלירי או הניסוח המיועדים ובדקו את התוצאה המושרת בפועל. הבריף המוזיקלי צריך להבחין בין התוכן המושר לבין הוראות הנוגעות לעיבוד.\n\n### השראה מתמונה ועיבוד\n\nכשמספקים תמונה, הסבירו איזו סצנה או אווירה היא תורמת לבקשת המוזיקה. נוף רגוע וסצנת לילה צפופה מרמזים על כיוונים שונים, אך התפקיד הרגשי הרצוי עדיין צריך להיות מפורש בטקסט. שמרו את התמונה עם ההנחיה כשמשווים את הקליפ שהוחזר לרעיון המיועד.\n\nבדקו את האיזון בין שירה, כלי נגינה והמשפט המוזיקלי המרכזי. בלולאה, האזינו לסוף ולהתחלה ברצף; בקטע תצוגה מקדימה, בדקו אם המשך הקצר מעביר את הכיוון המיועד. קליפ המלווה עריכה צריך להיבדק מול אותה עריכה ולא רק בנפרד.\n\n### שמרו את תוצר ההאזנה\n\nשמרו את האודיו בפועל וכל טקסט נלווה עם הבריף. בדקו את מאפייני הקובץ בעת הכנת השמעה או ייבוא לעורך, ושמרו כל מידע על מילות שיר או תזמון שהבקשה החזירה. המוזיקה היא פלט המודל; אפשר לארגן חיתוכים, כותרות, מעברים חזותיים ומיקס הפקה סופי סביב הנכס שנבדק.\n\nפרופיל Clip Preview המדויק הזה מתאים לתוצר מוזיקלי קומפקטי. שמרו על תפקידו בפורמט הקצר כמובחן בעת תכנון יצירה ארוכה יותר, ובחרו את הקליפ שהוחזר באמצעות האזנה למשפט המוזיקלי המלא, לניסוח המושר ולסיום.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "available": null,
    "canonical_model": "google/lyria-3-clip-preview",
    "capabilities": {
      "context_length": 1048576,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "text",
        "audio"
      ]
    },
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "music"
    ],
    "id": "google/lyria-3-clip-preview",
    "input": [
      "text"
    ],
    "kind": "music",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Save/fetch every returned clip and preserve actual ID, MIME and metadata. The method is synchronous; no separate Ailoot music generationpollingURL is introduced.",
            "errors": [
              {
                "code": null,
                "condition": "שדות נדרשים, ייצוג חומר או ערך פרמטר שאינם תקינים",
                "http_status": 400,
                "recovery": "תקנו את השדות שצוינו לפני בקשת יצירה חדשה.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "התשובה שהוחזרה מציינת שהפעולה או התוצאה דורשת בדיקה",
                "http_status": null,
                "recovery": "שמרו את מזהה הפעולה/המשימה המקורי שהוחזר, את כותרות הבקשה ואת התשובה; המשיכו לבצע פעולות קריאה נתמכות של אותה פעולה מקורית. אל תשלחו שוב את בקשת היצירה.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "אם תוצאת מוזיקה דורשת בדיקה, יש לשמור את operation_id/X-Client-Request-ID המקוריים ואת פרטי הקטעים שהוחזרו. יש לשחזר קטעים קיימים שבבעלותכם דרך ספריית המדיה באמצעות ערכי task_id או asset_id ממשיים. אין לשלוח שוב את בקשת המוזיקה או לבנות כתובת URL למעקב אחר יצירה מתוך operation_id."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_music",
                "required": [
                  "prompt"
                ]
              }
            ],
            "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": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_music"
            ],
            "outputs": {
              "all_results": "יש לשמור או לאחזר כל קטע שהוחזר ולשמר את המזהה, סוג ה־MIME והמטא־נתונים בפועל. השיטה סינכרונית; לא מתווספת כתובת מעקב נפרדת ליצירת מוזיקה ב־Ailoot.",
              "family": "music",
              "fields": [
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "response_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "owned clip record"
                }
              ],
              "format": "קטעי אודיו שלמים בבעלותכם / קישורי JSON"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/lyria-3-clip-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "מבני המתודות והמזהים מדויקים; יכולת הספק נפרדת מקבלת הבקשה לביצוע."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "ערך task_id שהוחזר בפועל או רשומה בספריית המדיה",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "If a music result requires a check, keep the original operation_id/X-Client-Request-ID and returned clip information. Recover existing owned clips through the media library using actual task_id or asset_id values. Do not resubmit the music request or construct a generation polling URL from operation_id."
          },
          "method": {
            "http": "POST",
            "path": "/v1/music/generations"
          },
          "operation_modes": [
            "music"
          ],
          "output": {
            "family": [
              "music"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_PROMPT_FILE:?Set your actual UTF-8 music brief}\"\nexport AILOOT_PROMPT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/lyria-3-clip-preview\", \"prompt\": \"\"}')\nf=Path(os.environ[\"AILOOT_PROMPT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 brief\")\np['prompt']=f.read_text(encoding=\"utf-8\")\nif not p['prompt'].strip():raise SystemExit(\"Brief must contain text\")\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/music/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\nexport AILOOT_API_KEY\npython3 - <<'PY_RESULT'\nimport json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin, urlparse\nresult=json.loads(Path(\"result.json\").read_text(encoding=\"utf-8\"))\nprint(json.dumps(result,ensure_ascii=False,indent=2))\nfor number,clip in enumerate(result.get(\"data\") or []):\n    u=urlparse(urljoin(\"https://api.ailoot.ai\",clip[\"url\"]))\n    if u.scheme!=\"https\" or not u.hostname or u.username or u.password:\n        raise SystemExit(\"Result URL must be HTTPS without embedded credentials\")\n    owned=u.netloc==\"api.ailoot.ai\" and u.path.startswith(\"/v1/media/assets/\") and u.path.endswith(\"/content\")\n    args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u.geturl()]\n    if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n    raw=subprocess.check_output(args)\n    ext=\"wav\" if raw.startswith(b\"RIFF\") and raw[8:12]==b\"WAVE\" else \"flac\" if raw.startswith(b\"fLaC\") else \"ogg\" if raw.startswith(b\"OggS\") else \"mp3\" if raw.startswith(b\"ID3\") or raw[:1]==b\"\\xff\" else \"bin\"\n    f=Path(\"music-\"+str(number)+\".\"+ext);f.write_bytes(raw)\n    print(\"Saved\",f,clip.get(\"asset_id\"))\n\nPY_RESULT\n",
            "label": "Compose from your actual music brief",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "music",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "מוזיקה",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "music"
        ],
        "path": "/v1/music/generations",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.04,
                "amount_unit": "usd_per_display_unit",
                "key": "music_output_clip",
                "label": "per clip",
                "side": "out"
              },
              {
                "amount": 0.04,
                "amount_unit": "usd_per_display_unit",
                "key": "per_request",
                "label": "per request",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "google/lyria-3-clip-preview",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "music_output_clip",
        "units": [
          {
            "key": "music_output_clip",
            "label": "per clip",
            "side": "out",
            "usd": 0.04
          },
          {
            "key": "per_request",
            "label": "per request",
            "side": "out",
            "usd": 0.04
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/lyria-3-clip-preview",
        "request_model_id": "google/lyria-3-clip-preview",
        "route_label": "Core"
      }
    ],
    "name": "Lyria 3 Clip Preview",
    "price": {
      "in": null,
      "in_label": null,
      "out": 0.04,
      "out_label": "per clip",
      "sort_in": null,
      "sort_out": null,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "context_condition": {},
          "service_tier": "standard"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.08",
            "amount_unit": "usd_per_song",
            "conditions": {
              "context_condition": {},
              "service_tier": "standard"
            },
            "key": "music",
            "label": "music",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "song"
          }
        ]
      }
    ],
    "public_id": "google/lyria-3-clip-preview",
    "short": "Lyria 3 Clip Preview הוא מודל המוזיקה של Google לקליפים קצרים, לולאות וקטעי תצוגה מקדימה. הוא מקבל השראה מטקסט או מתמונה ומפיק מוזיקה באורך 30 שניות עם אודיו סטריאו ב־48 kHz, ותומך בשירה, במילות שיר מתוזמנות ובעיבודים אינסטרומנטליים."
  },
  "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": "Lyria 3 Clip Preview הוא מודל המוזיקה של Google לקליפים קצרים, לולאות וקטעי תצוגה מקדימה. הוא מקבל השראה מטקסט או מתמונה ומפיק מוזיקה באורך 30 שניות עם אודיו סטריאו ב־48 kHz, ותומך בשירה, במילות שיר מתוזמנות ובעיבודים אינסטרומנטליים.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "5748c06477f18ccba51e029d814b11ac54e256704ffe66eb82ff4771b41394d7",
    "renderer_sha256": "c36bd89b8b0dac234af52bf68530df83530b908ec7a9f2e1de2483fe236ae910"
  },
  "sourceRevision": "7b2207953ad2486bb618073db581b66627b7d2cd8646006a39b496e0e8f38252"
}
