{
  "aboutHtml": "<p>Lyria 3 Clip Preview — Google’ning qisqa kliplar, takrorlanuvchi musiqiy parchalar va prevyular uchun musiqa yaratish profili. U matnli prompt yoki ilhom manbai bo‘lgan tasvirni qabul qilib, matn va audio qaytaradi. E’lon qilingan profilda vokal, vaqt belgilari bilan berilgan qo‘shiq matni va to‘liq cholg‘u aranjirovkalarini o‘z ichiga olgan, 48 kHz stereo audiodagi 30 soniyali kliplar tavsiflangan.</p><h4>Musiqiy lahzani tasvirlang</h4><p>Klipning maqsadini va u yetkazishi kerak bo‘lgan kayfiyatni ayting. Qisqa boshlanish mavzusi uchun vazmin kirish va asosiy qismga aniq o‘tishni ko‘rsatish mumkin; fon musiqasi uchun esa vizual sahna ostida kerak bo‘ladigan sur’at va musiqiy fakturani belgilash mumkin. Natijada vokal bo‘lishi yoki u faqat cholg‘ulardan iborat bo‘lishi kerakligini ayting va topshiriq uchun muhim musiqiy unsurlarni sanang.</p><p>Tuzilmani klipga sig‘adigan darajada ixcham tuting. Boshlanishni, asosiy musiqiy iborani va yakun yoki takrorlanish nuqtasini belgilang. So‘zlar muhim bo‘lsa, ko‘zlangan qo‘shiq g‘oyasini yoki aniq matnini bering va amalda kuylangan natijani tekshiring. Musiqiy topshiriqda vokal mazmuni aranjirovka haqidagi ko‘rsatmalardan ajratilishi kerak.</p><h4>Tasvirdan ilhom olish va aranjirovka</h4><p>Tasvir berayotganda uning musiqa so‘roviga qanday sahna yoki kayfiyat qo‘shishini tushuntiring. Sokin manzara va gavjum tungi sahna turli yo‘nalishlarni taklif qiladi, ammo ko‘zlangan hissiy vazifa baribir matnda aniq ifodalanishi kerak. Qaytarilgan klipni ko‘zlangan konsepsiya bilan taqqoslashda tasvirni prompt bilan birga saqlang.</p><p>Vokal, cholg‘ular va asosiy musiqiy ibora o‘rtasidagi muvozanatni ko‘rib chiqing. Takrorlanuvchi parcha uchun yakun va boshlanishni ketma-ket tinglang; prevyu uchun esa qisqa davomiylik ko‘zlangan yo‘nalishni yetkazayotganini tekshiring. Montajga hamroh bo‘ladigan klipni faqat alohida holda emas, o‘sha montaj bilan birga baholash kerak.</p><h4>Tinglanadigan natijani saqlang</h4><p>Haqiqiy audio va unga hamroh bo‘lgan har qanday matnni topshiriq bilan birga saqlang. Uni ijro etishga tayyorlashda yoki tahrirlash dasturiga import qilishda fayl xususiyatlarini tekshiring va so‘rov qaytargan qo‘shiq matni yoki vaqtga oid barcha ma’lumotlarni saqlang. Musiqa modelning chiqish natijasidir; kesishlar, titrlar, vizual o‘tishlar va yakuniy ishlab chiqarish miksi shu tekshirilgan material asosida tashkil etilishi mumkin.</p><p>Aynan shu Clip Preview profili ixcham musiqiy natija uchun mos. Uzunroq kompozitsiyani rejalashtirishda uning qisqa shakldagi vazifasini alohida hisobga oling va qaytarilgan klipni tanlashda to‘liq musiqiy iborani, vokal so‘zlarini va yakunni tinglang.</p>",
  "aboutText": "Lyria 3 Clip Preview — Google’ning qisqa kliplar, takrorlanuvchi musiqiy parchalar va prevyular uchun musiqa yaratish profili. U matnli prompt yoki ilhom manbai bo‘lgan tasvirni qabul qilib, matn va audio qaytaradi. E’lon qilingan profilda vokal, vaqt belgilari bilan berilgan qo‘shiq matni va to‘liq cholg‘u aranjirovkalarini o‘z ichiga olgan, 48 kHz stereo audiodagi 30 soniyali kliplar tavsiflangan.\n\n### Musiqiy lahzani tasvirlang\n\nKlipning maqsadini va u yetkazishi kerak bo‘lgan kayfiyatni ayting. Qisqa boshlanish mavzusi uchun vazmin kirish va asosiy qismga aniq o‘tishni ko‘rsatish mumkin; fon musiqasi uchun esa vizual sahna ostida kerak bo‘ladigan sur’at va musiqiy fakturani belgilash mumkin. Natijada vokal bo‘lishi yoki u faqat cholg‘ulardan iborat bo‘lishi kerakligini ayting va topshiriq uchun muhim musiqiy unsurlarni sanang.\n\nTuzilmani klipga sig‘adigan darajada ixcham tuting. Boshlanishni, asosiy musiqiy iborani va yakun yoki takrorlanish nuqtasini belgilang. So‘zlar muhim bo‘lsa, ko‘zlangan qo‘shiq g‘oyasini yoki aniq matnini bering va amalda kuylangan natijani tekshiring. Musiqiy topshiriqda vokal mazmuni aranjirovka haqidagi ko‘rsatmalardan ajratilishi kerak.\n\n### Tasvirdan ilhom olish va aranjirovka\n\nTasvir berayotganda uning musiqa so‘roviga qanday sahna yoki kayfiyat qo‘shishini tushuntiring. Sokin manzara va gavjum tungi sahna turli yo‘nalishlarni taklif qiladi, ammo ko‘zlangan hissiy vazifa baribir matnda aniq ifodalanishi kerak. Qaytarilgan klipni ko‘zlangan konsepsiya bilan taqqoslashda tasvirni prompt bilan birga saqlang.\n\nVokal, cholg‘ular va asosiy musiqiy ibora o‘rtasidagi muvozanatni ko‘rib chiqing. Takrorlanuvchi parcha uchun yakun va boshlanishni ketma-ket tinglang; prevyu uchun esa qisqa davomiylik ko‘zlangan yo‘nalishni yetkazayotganini tekshiring. Montajga hamroh bo‘ladigan klipni faqat alohida holda emas, o‘sha montaj bilan birga baholash kerak.\n\n### Tinglanadigan natijani saqlang\n\nHaqiqiy audio va unga hamroh bo‘lgan har qanday matnni topshiriq bilan birga saqlang. Uni ijro etishga tayyorlashda yoki tahrirlash dasturiga import qilishda fayl xususiyatlarini tekshiring va so‘rov qaytargan qo‘shiq matni yoki vaqtga oid barcha ma’lumotlarni saqlang. Musiqa modelning chiqish natijasidir; kesishlar, titrlar, vizual o‘tishlar va yakuniy ishlab chiqarish miksi shu tekshirilgan material asosida tashkil etilishi mumkin.\n\nAynan shu Clip Preview profili ixcham musiqiy natija uchun mos. Uzunroq kompozitsiyani rejalashtirishda uning qisqa shakldagi vazifasini alohida hisobga oling va qaytarilgan klipni tanlashda to‘liq musiqiy iborani, vokal so‘zlarini va yakunni tinglang.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "1f476b5c3ad3f640a41e928bc54dcf109270d52c68f4967f1702e0dfac6766c9",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "uz",
  "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=\"Yopish\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/lyria-3-clip-preview</code><button type=\"button\" id=\"copy-id\">ID ni nusxalash</button></div><nav class=\"card-jump-nav\" aria-label=\"Model kartochkasi bo‘limlari\"><button type=\"button\" data-card-jump=\"overview\">Boshlash</button><button type=\"button\" data-card-jump=\"methods\">Kirish ma’lumotlari va usullar</button><button type=\"button\" data-card-jump=\"pricing\">Tariflar</button><button type=\"button\" data-card-jump=\"examples\">Namunalar</button><button type=\"button\" data-card-jump=\"results\">Natijalar</button><button type=\"button\" data-card-jump=\"aliases\">Taxalluslar</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"API usullari\"><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\">Musiqa</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\">Boshlash</h3><p class=\"mdesc-full\">Lyria 3 Clip Preview — Google’ning qisqa kliplar, takrorlanuvchi musiqiy parchalar va prevyular uchun musiqa modeli. U matn yoki tasvirdan ilhom olib, vokal, vaqt belgilari bilan berilgan qo‘shiq matni va cholg‘u aranjirovkalarini qo‘llab-quvvatlagan holda, 48 kHz stereo audioda 30 soniyali musiqa yaratadi.</p><dl class=\"card-io\" data-card-io><div><dt>Qabul qilinadigan kirish ma’lumotlari</dt><dd>Matn</dd></div><div><dt>Natijalar</dt><dd>music</dd></div></dl><details class=\"card-about\"><summary>Model haqida</summary><p class=\"note-s\" data-model-method-boundary>Bu tavsif model imkoniyatlarini yoritadi. Ailoot da tanlangan usul uchun mavjud kirish, chiqish va parametrlar quyida keltirilgan.</p><div class=\"mabout\" id=\"m-about\"><p>Lyria 3 Clip Preview — Google’ning qisqa kliplar, takrorlanuvchi musiqiy parchalar va prevyular uchun musiqa yaratish profili. U matnli prompt yoki ilhom manbai bo‘lgan tasvirni qabul qilib, matn va audio qaytaradi. E’lon qilingan profilda vokal, vaqt belgilari bilan berilgan qo‘shiq matni va to‘liq cholg‘u aranjirovkalarini o‘z ichiga olgan, 48 kHz stereo audiodagi 30 soniyali kliplar tavsiflangan.</p><h4>Musiqiy lahzani tasvirlang</h4><p>Klipning maqsadini va u yetkazishi kerak bo‘lgan kayfiyatni ayting. Qisqa boshlanish mavzusi uchun vazmin kirish va asosiy qismga aniq o‘tishni ko‘rsatish mumkin; fon musiqasi uchun esa vizual sahna ostida kerak bo‘ladigan sur’at va musiqiy fakturani belgilash mumkin. Natijada vokal bo‘lishi yoki u faqat cholg‘ulardan iborat bo‘lishi kerakligini ayting va topshiriq uchun muhim musiqiy unsurlarni sanang.</p><p>Tuzilmani klipga sig‘adigan darajada ixcham tuting. Boshlanishni, asosiy musiqiy iborani va yakun yoki takrorlanish nuqtasini belgilang. So‘zlar muhim bo‘lsa, ko‘zlangan qo‘shiq g‘oyasini yoki aniq matnini bering va amalda kuylangan natijani tekshiring. Musiqiy topshiriqda vokal mazmuni aranjirovka haqidagi ko‘rsatmalardan ajratilishi kerak.</p><h4>Tasvirdan ilhom olish va aranjirovka</h4><p>Tasvir berayotganda uning musiqa so‘roviga qanday sahna yoki kayfiyat qo‘shishini tushuntiring. Sokin manzara va gavjum tungi sahna turli yo‘nalishlarni taklif qiladi, ammo ko‘zlangan hissiy vazifa baribir matnda aniq ifodalanishi kerak. Qaytarilgan klipni ko‘zlangan konsepsiya bilan taqqoslashda tasvirni prompt bilan birga saqlang.</p><p>Vokal, cholg‘ular va asosiy musiqiy ibora o‘rtasidagi muvozanatni ko‘rib chiqing. Takrorlanuvchi parcha uchun yakun va boshlanishni ketma-ket tinglang; prevyu uchun esa qisqa davomiylik ko‘zlangan yo‘nalishni yetkazayotganini tekshiring. Montajga hamroh bo‘ladigan klipni faqat alohida holda emas, o‘sha montaj bilan birga baholash kerak.</p><h4>Tinglanadigan natijani saqlang</h4><p>Haqiqiy audio va unga hamroh bo‘lgan har qanday matnni topshiriq bilan birga saqlang. Uni ijro etishga tayyorlashda yoki tahrirlash dasturiga import qilishda fayl xususiyatlarini tekshiring va so‘rov qaytargan qo‘shiq matni yoki vaqtga oid barcha ma’lumotlarni saqlang. Musiqa modelning chiqish natijasidir; kesishlar, titrlar, vizual o‘tishlar va yakuniy ishlab chiqarish miksi shu tekshirilgan material asosida tashkil etilishi mumkin.</p><p>Aynan shu Clip Preview profili ixcham musiqiy natija uchun mos. Uzunroq kompozitsiyani rejalashtirishda uning qisqa shakldagi vazifasini alohida hisobga oling va qaytarilgan klipni tanlashda to‘liq musiqiy iborani, vokal so‘zlarini va yakunni tinglang.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Ailoot da mavjud · kirish ma’lumotlari va usullar</h3><details class=\"card-method\" open><summary><b>Ailoot · Musiqa</b> <code>POST /v1/music/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Kirish</dt><dd><code>text</code></dd></div><div><dt>Chiqish</dt><dd><code>music</code></dd></div><div><dt>Chiqish formati</dt><dd>egalik qilinadigan to‘liq audio kliplar / JSON havolalar</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Maydon</th><th>Tur</th><th>Talab</th><th>Qiymatlar va cheklovlar</th><th>Standart</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span><code>string</code></td><td data-cell-label=\"Talab\"><span class=\"card-cell-label\">Talab</span>Majburiy</td><td data-cell-label=\"Qiymatlar va cheklovlar\"><span class=\"card-cell-label\">Qiymatlar va cheklovlar</span><div>google/lyria-3-clip-preview</div></td><td data-cell-label=\"Standart\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standart</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span><code>string</code></td><td data-cell-label=\"Talab\"><span class=\"card-cell-label\">Talab</span>Majburiy</td><td data-cell-label=\"Qiymatlar va cheklovlar\"><span class=\"card-cell-label\">Qiymatlar va cheklovlar</span><div>Eng kam uzunlik: 1</div></td><td data-cell-label=\"Standart\" data-default=\"unspecified\"><span class=\"card-cell-label\">Standart</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kirish materiallari birikmalari</summary><p class=\"note-s\"><b>text_to_music</b> · Majburiy: prompt</p></details><details class=\"note-s\" data-method-contract><summary>Usul parametrlari va hayot sikli</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parametr</th><th>Parametr talablari</th></tr></thead><tbody><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>material_types</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>text</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>required</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>null</td></tr><tr><th data-cell-label=\"Parametr\" scope=\"row\"><span class=\"card-cell-label\">Parametr</span><code>optional_controls</code></th><td data-cell-label=\"Parametr talablari\"><span class=\"card-cell-label\">Parametr talablari</span>null</td></tr></tbody></table></div><p>Hayot sikli: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv</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\">Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Tariflar</h3><h4>Ailoot usullari tariflari</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Musiqa</b><code>POST /v1/music/generations</code></header><dl><div><dt>Chiqish</dt><dd>0,04 US$ <em>klip uchun</em></dd></div><div data-billing-reference=\"not-added\"><dt>Faqat ma’lumot · qo‘shilmaydi</dt><dd>0,04 US$ <em>har bir so‘rov uchun</em></dd></div></dl><div data-music-clip-pricing=\"v1\"><p class=\"note-s\">Yetkazilgan kliplar × har klip uchun asosiy tarif. So‘rov uchun ma’lumot tarifi qo‘shilmaydi. Misollar tegishli tuzatishlardan oldin berilgan.</p><p><code>1 × 0,04 US$ = 0,04 US$</code></p></div></section><p class=\"note-s\">Ailoot so‘rovdan oldin taxminiy summani band qiladi. Natijadan keyin o‘lchangan sarf asosidagi yakuniy to‘lovni yechadi. Oqimli javob bo‘yicha yakuniy hisob-kitob yakuniy sarf yozuviga asoslanadi. <a href=\"/docs/uz/billing/reserve/\">Summani band qilish va to‘lovni hisoblash tartibi →</a></p><div data-model-tariff-reference><h4>Ma’lumot uchun tarif tafsilotlari</h4><p class=\"note-s\">Modelning ma’lumot jadvallari usul tanlash, narx hisobi yoki to‘lovlarni o‘zgartirmaydi. Amaldagi to‘lovlar tanlangan Ailoot usuli tariflari bo‘yicha hisoblanadi.</p><details class=\"card-price-reference\" data-profile-scope=\"manufacturer_reference\" data-client-selectable=\"false\"><summary>Modelning ma’lumot jadvallari</summary><h4>Sozlamalar bo‘yicha narxlar</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Sozlama</th><th>Xizmat darajasi</th><th>Kontekst sharti</th><th>To‘lov</th></tr></thead><tbody><tr><th data-cell-label=\"Sozlama\" scope=\"row\"><span class=\"card-cell-label\">Sozlama</span>Ultra</th><td data-cell-label=\"Xizmat darajasi\"><span class=\"card-cell-label\">Xizmat darajasi</span>standard</td><td data-cell-label=\"Kontekst sharti\"><span class=\"card-cell-label\">Kontekst sharti</span>{}</td><td data-cell-label=\"To‘lov\"><span class=\"card-cell-label\">To‘lov</span><div><span>Chiqish · musiqa</span> <b>0,08 US$</b> <span class=\"price-unit\">qo‘shiq uchun</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">So‘rov namunalari</h3><h4>Ailoot · Musiqa</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Kod variantlari\"><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\">Musiqa namunasi</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kodni nusxalash\"><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\">Natijalarni olish va saqlash</h3><h4>Ailoot · Musiqa</h4><p class=\"note-s\">egalik qilinadigan to‘liq audio kliplar / JSON havolalar</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>Barcha tayyor natijalarni saqlash</h5><p class=\"note-s\">Qaytarilgan har bir to‘liq javob, fayl va kontent qismini saqlang.</p><p class=\"note-s\">Qaytarilgan har bir klipni saqlang/oling va haqiqiy ID, MIME hamda metama’lumotlarni saqlang. Usul sinxron ishlaydi; Ailoot da musiqa yaratish uchun alohida holatni so‘rash URL i kiritilmagan.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Asl javobni tekshirish kerak bo‘lsa</h5><p class=\"note-s\">Musiqa natijasini tekshirish zarur bo‘lsa, dastlabki operation_id/X-Client-Request-ID va qaytarilgan klip ma’lumotlarini saqlang. Haqiqiy task_id yoki asset_id qiymatlari bilan media kutubxonasi orqali mavjud, egalik qilinadigan kliplarni tiklang. Musiqa so‘rovini qayta yubormang va operation_id dan yaratish holatini so‘rash URL ini tuzmang.</p></div><details class=\"card-about\" data-output-fields><summary>Javob maydonlari</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Maydon</th><th>Tur</th></tr></thead><tbody><tr><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span>string</td></tr><tr><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">response_id</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span>string</td></tr><tr><th data-cell-label=\"Maydon\" scope=\"row\"><span class=\"card-cell-label\">Maydon</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Tur\" data-field-type><span class=\"card-cell-label\">Tur</span>owned clip record</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Xatolar va keyingi qadamlar</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Javob</th><th>Shart</th><th>Keyingi qadam</th></tr></thead><tbody><tr><th data-cell-label=\"Javob\" scope=\"row\"><span class=\"card-cell-label\">Javob</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Shart\"><span class=\"card-cell-label\">Shart</span>Majburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri</td><td data-cell-label=\"Keyingi qadam\"><span class=\"card-cell-label\">Keyingi qadam</span>Yangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating.</td></tr><tr><th data-cell-label=\"Javob\" scope=\"row\"><span class=\"card-cell-label\">Javob</span><code>server_error</code></th><td data-cell-label=\"Shart\"><span class=\"card-cell-label\">Shart</span>Qaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi</td><td data-cell-label=\"Keyingi qadam\"><span class=\"card-cell-label\">Keyingi qadam</span>Dastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Taxalluslar</h3><h4>Model taxalluslari</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>Usul yo‘llari taxalluslari</h4><p class=\"note-s\">Yuqorida ko‘rsatilgan usul yo‘llaridan foydalaning.</p><h4>Chaqirish uchun tegishli ID lar</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": "Majburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri",
                "http_status": 400,
                "recovery": "Yangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Qaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi",
                "http_status": null,
                "recovery": "Dastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang.",
                "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": "Musiqa natijasini tekshirish zarur bo‘lsa, dastlabki operation_id/X-Client-Request-ID va qaytarilgan klip ma’lumotlarini saqlang. Haqiqiy task_id yoki asset_id qiymatlari bilan media kutubxonasi orqali mavjud, egalik qilinadigan kliplarni tiklang. Musiqa so‘rovini qayta yubormang va operation_id dan yaratish holatini so‘rash URL ini tuzmang."
            },
            "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": "Qaytarilgan har bir klipni saqlang/oling va haqiqiy ID, MIME hamda metama’lumotlarni saqlang. Usul sinxron ishlaydi; Ailoot da musiqa yaratish uchun alohida holatni so‘rash URL i kiritilmagan.",
              "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": "egalik qilinadigan to‘liq audio kliplar / JSON havolalar"
            },
            "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": [
            "Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida."
          ],
          "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": "Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv",
                "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": "Musiqa",
        "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": "d3f6dfb0f388ae66cd28b5ea13d4f7058dfdb50fa3487d012cde9875db43c394",
    "input_html_sha256": "324073cc1070539da8cdc1ba96cd32f3376ab362e51c2e7e613626934fc301e9",
    "private_audit_sha256": "dcd896af12aeaa0185c06c1ea0714726d47175c700965e94b21baee6cd97d979",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/uz/google-lyria-3-clip-preview/",
    "description": "Lyria 3 Clip Preview — Google’ning qisqa kliplar, takrorlanuvchi musiqiy parchalar va prevyular uchun musiqa modeli. U matn yoki tasvirdan ilhom olib, vokal, vaqt belgilari bilan berilgan qo‘shiq matni va cholg‘u aranjirovkalarini qo‘llab-quvvatlagan holda, 48 kHz stereo audioda 30 soniyali musiqa yaratadi.",
    "locale": "uz",
    "md_url": "https://ailoot.ai/models/uz/google-lyria-3-clip-preview/index.md",
    "title": "Lyria 3 Clip Preview — Ailoot",
    "url": "https://ailoot.ai/models/uz/google-lyria-3-clip-preview/"
  },
  "rawModel": {
    "about": "Lyria 3 Clip Preview — Google’ning qisqa kliplar, takrorlanuvchi musiqiy parchalar va prevyular uchun musiqa yaratish profili. U matnli prompt yoki ilhom manbai bo‘lgan tasvirni qabul qilib, matn va audio qaytaradi. E’lon qilingan profilda vokal, vaqt belgilari bilan berilgan qo‘shiq matni va to‘liq cholg‘u aranjirovkalarini o‘z ichiga olgan, 48 kHz stereo audiodagi 30 soniyali kliplar tavsiflangan.\n\n### Musiqiy lahzani tasvirlang\n\nKlipning maqsadini va u yetkazishi kerak bo‘lgan kayfiyatni ayting. Qisqa boshlanish mavzusi uchun vazmin kirish va asosiy qismga aniq o‘tishni ko‘rsatish mumkin; fon musiqasi uchun esa vizual sahna ostida kerak bo‘ladigan sur’at va musiqiy fakturani belgilash mumkin. Natijada vokal bo‘lishi yoki u faqat cholg‘ulardan iborat bo‘lishi kerakligini ayting va topshiriq uchun muhim musiqiy unsurlarni sanang.\n\nTuzilmani klipga sig‘adigan darajada ixcham tuting. Boshlanishni, asosiy musiqiy iborani va yakun yoki takrorlanish nuqtasini belgilang. So‘zlar muhim bo‘lsa, ko‘zlangan qo‘shiq g‘oyasini yoki aniq matnini bering va amalda kuylangan natijani tekshiring. Musiqiy topshiriqda vokal mazmuni aranjirovka haqidagi ko‘rsatmalardan ajratilishi kerak.\n\n### Tasvirdan ilhom olish va aranjirovka\n\nTasvir berayotganda uning musiqa so‘roviga qanday sahna yoki kayfiyat qo‘shishini tushuntiring. Sokin manzara va gavjum tungi sahna turli yo‘nalishlarni taklif qiladi, ammo ko‘zlangan hissiy vazifa baribir matnda aniq ifodalanishi kerak. Qaytarilgan klipni ko‘zlangan konsepsiya bilan taqqoslashda tasvirni prompt bilan birga saqlang.\n\nVokal, cholg‘ular va asosiy musiqiy ibora o‘rtasidagi muvozanatni ko‘rib chiqing. Takrorlanuvchi parcha uchun yakun va boshlanishni ketma-ket tinglang; prevyu uchun esa qisqa davomiylik ko‘zlangan yo‘nalishni yetkazayotganini tekshiring. Montajga hamroh bo‘ladigan klipni faqat alohida holda emas, o‘sha montaj bilan birga baholash kerak.\n\n### Tinglanadigan natijani saqlang\n\nHaqiqiy audio va unga hamroh bo‘lgan har qanday matnni topshiriq bilan birga saqlang. Uni ijro etishga tayyorlashda yoki tahrirlash dasturiga import qilishda fayl xususiyatlarini tekshiring va so‘rov qaytargan qo‘shiq matni yoki vaqtga oid barcha ma’lumotlarni saqlang. Musiqa modelning chiqish natijasidir; kesishlar, titrlar, vizual o‘tishlar va yakuniy ishlab chiqarish miksi shu tekshirilgan material asosida tashkil etilishi mumkin.\n\nAynan shu Clip Preview profili ixcham musiqiy natija uchun mos. Uzunroq kompozitsiyani rejalashtirishda uning qisqa shakldagi vazifasini alohida hisobga oling va qaytarilgan klipni tanlashda to‘liq musiqiy iborani, vokal so‘zlarini va yakunni tinglang.",
    "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": "Majburiy maydonlar, material ifodasi yoki parametr qiymati noto‘g‘ri",
                "http_status": 400,
                "recovery": "Yangi yaratish so‘rovidan oldin ko‘rsatilgan maydonlarni tuzating.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Qaytarilgan javob operatsiya yoki natijani tekshirish kerakligini bildiradi",
                "http_status": null,
                "recovery": "Dastlab qaytarilgan operatsiya/vazifa ID sini, so‘rov sarlavhalarini va javobni saqlang; aynan shu operatsiya uchun qo‘llab-quvvatlanadigan o‘qish so‘rovlarini davom ettiring. Yaratish so‘rovini qayta yubormang.",
                "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": "Musiqa natijasini tekshirish zarur bo‘lsa, dastlabki operation_id/X-Client-Request-ID va qaytarilgan klip ma’lumotlarini saqlang. Haqiqiy task_id yoki asset_id qiymatlari bilan media kutubxonasi orqali mavjud, egalik qilinadigan kliplarni tiklang. Musiqa so‘rovini qayta yubormang va operation_id dan yaratish holatini so‘rash URL ini tuzmang."
            },
            "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": "Qaytarilgan har bir klipni saqlang/oling va haqiqiy ID, MIME hamda metama’lumotlarni saqlang. Usul sinxron ishlaydi; Ailoot da musiqa yaratish uchun alohida holatni so‘rash URL i kiritilmagan.",
              "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": "egalik qilinadigan to‘liq audio kliplar / JSON havolalar"
            },
            "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": [
            "Metod tuzilishlari va IDlari aniq; yetkazib beruvchining imkoniyati so‘rovni qabul qilishga ruxsatdan alohida."
          ],
          "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": "Amalda qaytarilgan task_id yoki media kutubxonasidagi yozuv",
                "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": "Musiqa",
        "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’ning qisqa kliplar, takrorlanuvchi musiqiy parchalar va prevyular uchun musiqa modeli. U matn yoki tasvirdan ilhom olib, vokal, vaqt belgilari bilan berilgan qo‘shiq matni va cholg‘u aranjirovkalarini qo‘llab-quvvatlagan holda, 48 kHz stereo audioda 30 soniyali musiqa yaratadi."
  },
  "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’ning qisqa kliplar, takrorlanuvchi musiqiy parchalar va prevyular uchun musiqa modeli. U matn yoki tasvirdan ilhom olib, vokal, vaqt belgilari bilan berilgan qo‘shiq matni va cholg‘u aranjirovkalarini qo‘llab-quvvatlagan holda, 48 kHz stereo audioda 30 soniyali musiqa yaratadi.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "0140c8a574067a4f7364f078eb3eb023d0d85690e696d1f70042acbc1a3c1c38",
    "renderer_sha256": "aa8a0fca1bd770c042b64987512b6187fca2067aea3ddc877f68b163d80e7df6"
  },
  "sourceRevision": "dcfc5509f1b1d9baca62c31441b61cce1e02a3ae7096073337eeb0d5b1a6207a"
}
