{
  "aboutHtml": "<p>Lyria 3 Clip Preview je Googlov profil za ustvarjanje glasbe za kratke izseke, zanke in predoglede. Sprejme besedilno navodilo ali slikovni navdih ter vrne besedilo in zvok. Objavljeni profil opisuje 30-sekundne izseke s stereo zvokom pri 48 kHz, vključno z vokali, časovno usklajenimi besedili pesmi in polnimi instrumentalnimi aranžmaji.</p><h4>Opišite glasbeni trenutek</h4><p>Navedite namen izseka in razpoloženje, ki naj ga izraža. Kratka uvodna tema lahko določi zadržan uvod in jasen prihod glavne teme; glasbena podlaga lahko opredeli tempo in teksturo, potrebna pod vizualnim prizorom. Navedite, ali naj rezultat vsebuje vokale ali bo instrumentalen, in poimenujte glasbene elemente, pomembne za izhodišče.</p><p>Strukturo prilagodite kratkemu izseku. Določite uvod, glavno frazo in zaključek ali točko zanke. Če so besede pomembne, navedite zamišljeno lirično idejo ali besedilo in preglejte dejansko odpeti rezultat. Glasbeno izhodišče naj loči vokalno vsebino od navodil za aranžma.</p><h4>Slikovni navdih in aranžma</h4><p>Ko posredujete sliko, pojasnite, kateri prizor ali razpoloženje prispeva h glasbeni zahtevi. Mirna pokrajina in natrpan nočni prizor nakazujeta različni smeri, vendar naj bo želena čustvena vloga še vedno izrecno navedena v besedilu. Sliko hranite skupaj z navodilom, ko vrnjeni izsek primerjate z zamišljenim konceptom.</p><p>Preglejte ravnovesje med vokali, inštrumenti in glavno glasbeno frazo. Pri zanki poslušajte konec in začetek skupaj; pri predogledu preverite, ali kratko trajanje sporoča zamišljeno smer. Izsek, ki spremlja montažo, preverite ob tej montaži, ne samo samostojno.</p><h4>Ohranite zvočni izdelek</h4><p>Dejanski zvok in morebitno spremljajoče besedilo shranite skupaj z izhodiščem. Pri pripravi predvajanja ali uvozu v urejevalnik preverite lastnosti datoteke ter ohranite vse podatke o besedilu pesmi ali času, prejete z rezultatom zahteve. Glasba je izhod modela; reze, naslove, vizualne prehode in končni produkcijski miks lahko uredite okoli tega pregledanega gradiva.</p><p>Ta konkretni profil Clip Preview je primeren za strnjen glasbeni izdelek. Pri načrtovanju daljše skladbe ohranite razliko v njegovi vlogi za kratke oblike in vrnjeni izsek izberite s poslušanjem celotne fraze, vokalnega besedila in zaključka.</p>",
  "aboutText": "Lyria 3 Clip Preview je Googlov profil za ustvarjanje glasbe za kratke izseke, zanke in predoglede. Sprejme besedilno navodilo ali slikovni navdih ter vrne besedilo in zvok. Objavljeni profil opisuje 30-sekundne izseke s stereo zvokom pri 48 kHz, vključno z vokali, časovno usklajenimi besedili pesmi in polnimi instrumentalnimi aranžmaji.\n\n### Opišite glasbeni trenutek\n\nNavedite namen izseka in razpoloženje, ki naj ga izraža. Kratka uvodna tema lahko določi zadržan uvod in jasen prihod glavne teme; glasbena podlaga lahko opredeli tempo in teksturo, potrebna pod vizualnim prizorom. Navedite, ali naj rezultat vsebuje vokale ali bo instrumentalen, in poimenujte glasbene elemente, pomembne za izhodišče.\n\nStrukturo prilagodite kratkemu izseku. Določite uvod, glavno frazo in zaključek ali točko zanke. Če so besede pomembne, navedite zamišljeno lirično idejo ali besedilo in preglejte dejansko odpeti rezultat. Glasbeno izhodišče naj loči vokalno vsebino od navodil za aranžma.\n\n### Slikovni navdih in aranžma\n\nKo posredujete sliko, pojasnite, kateri prizor ali razpoloženje prispeva h glasbeni zahtevi. Mirna pokrajina in natrpan nočni prizor nakazujeta različni smeri, vendar naj bo želena čustvena vloga še vedno izrecno navedena v besedilu. Sliko hranite skupaj z navodilom, ko vrnjeni izsek primerjate z zamišljenim konceptom.\n\nPreglejte ravnovesje med vokali, inštrumenti in glavno glasbeno frazo. Pri zanki poslušajte konec in začetek skupaj; pri predogledu preverite, ali kratko trajanje sporoča zamišljeno smer. Izsek, ki spremlja montažo, preverite ob tej montaži, ne samo samostojno.\n\n### Ohranite zvočni izdelek\n\nDejanski zvok in morebitno spremljajoče besedilo shranite skupaj z izhodiščem. Pri pripravi predvajanja ali uvozu v urejevalnik preverite lastnosti datoteke ter ohranite vse podatke o besedilu pesmi ali času, prejete z rezultatom zahteve. Glasba je izhod modela; reze, naslove, vizualne prehode in končni produkcijski miks lahko uredite okoli tega pregledanega gradiva.\n\nTa konkretni profil Clip Preview je primeren za strnjen glasbeni izdelek. Pri načrtovanju daljše skladbe ohranite razliko v njegovi vlogi za kratke oblike in vrnjeni izsek izberite s poslušanjem celotne fraze, vokalnega besedila in zaključka.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "d6af75e45d50706b2c8bb053ff7446fc96fc9f135619e6a354fb9d928334d7a6",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "sl",
  "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=\"Zapri\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/lyria-3-clip-preview</code><button type=\"button\" id=\"copy-id\">Kopiraj ID</button></div><nav class=\"card-jump-nav\" aria-label=\"Razdelki kartice modela\"><button type=\"button\" data-card-jump=\"overview\">Začetek</button><button type=\"button\" data-card-jump=\"methods\">Vhodi in metode</button><button type=\"button\" data-card-jump=\"pricing\">Cenik</button><button type=\"button\" data-card-jump=\"examples\">Primeri</button><button type=\"button\" data-card-jump=\"results\">Rezultati</button><button type=\"button\" data-card-jump=\"aliases\">Druga imena</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"Metode 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\">Glasba</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\">Začetek</h3><p class=\"mdesc-full\">Lyria 3 Clip Preview je Googlov glasbeni model za kratke izseke, zanke in predoglede. Sprejme besedilni ali slikovni navdih in ustvari 30-sekundno glasbo s stereo zvokom pri 48 kHz ter podpira vokale, časovno usklajena besedila pesmi in instrumentalne aranžmaje.</p><dl class=\"card-io\" data-card-io><div><dt>Dovoljeni vhodi</dt><dd>Besedilo</dd></div><div><dt>Rezultati</dt><dd>music</dd></div></dl><details class=\"card-about\"><summary>O modelu</summary><p class=\"note-s\" data-model-method-boundary>Ta opis zajema zmožnosti modela. Vhodi, izhodi in možnosti, ki so na voljo v Ailoot, so spodaj navedeni za izbrano metodo.</p><div class=\"mabout\" id=\"m-about\"><p>Lyria 3 Clip Preview je Googlov profil za ustvarjanje glasbe za kratke izseke, zanke in predoglede. Sprejme besedilno navodilo ali slikovni navdih ter vrne besedilo in zvok. Objavljeni profil opisuje 30-sekundne izseke s stereo zvokom pri 48 kHz, vključno z vokali, časovno usklajenimi besedili pesmi in polnimi instrumentalnimi aranžmaji.</p><h4>Opišite glasbeni trenutek</h4><p>Navedite namen izseka in razpoloženje, ki naj ga izraža. Kratka uvodna tema lahko določi zadržan uvod in jasen prihod glavne teme; glasbena podlaga lahko opredeli tempo in teksturo, potrebna pod vizualnim prizorom. Navedite, ali naj rezultat vsebuje vokale ali bo instrumentalen, in poimenujte glasbene elemente, pomembne za izhodišče.</p><p>Strukturo prilagodite kratkemu izseku. Določite uvod, glavno frazo in zaključek ali točko zanke. Če so besede pomembne, navedite zamišljeno lirično idejo ali besedilo in preglejte dejansko odpeti rezultat. Glasbeno izhodišče naj loči vokalno vsebino od navodil za aranžma.</p><h4>Slikovni navdih in aranžma</h4><p>Ko posredujete sliko, pojasnite, kateri prizor ali razpoloženje prispeva h glasbeni zahtevi. Mirna pokrajina in natrpan nočni prizor nakazujeta različni smeri, vendar naj bo želena čustvena vloga še vedno izrecno navedena v besedilu. Sliko hranite skupaj z navodilom, ko vrnjeni izsek primerjate z zamišljenim konceptom.</p><p>Preglejte ravnovesje med vokali, inštrumenti in glavno glasbeno frazo. Pri zanki poslušajte konec in začetek skupaj; pri predogledu preverite, ali kratko trajanje sporoča zamišljeno smer. Izsek, ki spremlja montažo, preverite ob tej montaži, ne samo samostojno.</p><h4>Ohranite zvočni izdelek</h4><p>Dejanski zvok in morebitno spremljajoče besedilo shranite skupaj z izhodiščem. Pri pripravi predvajanja ali uvozu v urejevalnik preverite lastnosti datoteke ter ohranite vse podatke o besedilu pesmi ali času, prejete z rezultatom zahteve. Glasba je izhod modela; reze, naslove, vizualne prehode in končni produkcijski miks lahko uredite okoli tega pregledanega gradiva.</p><p>Ta konkretni profil Clip Preview je primeren za strnjen glasbeni izdelek. Pri načrtovanju daljše skladbe ohranite razliko v njegovi vlogi za kratke oblike in vrnjeni izsek izberite s poslušanjem celotne fraze, vokalnega besedila in zaključka.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">Na voljo v Ailoot · vhodi in metode</h3><details class=\"card-method\" open><summary><b>Ailoot · Glasba</b> <code>POST /v1/music/generations</code></summary><dl class=\"method-capabilities\"><div><dt>Vhod</dt><dd><code>text</code></dd></div><div><dt>Izhod</dt><dd><code>music</code></dd></div><div><dt>Izhodni format</dt><dd>celotni zvočni posnetki v vaši lasti / povezave JSON</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>Polje</th><th>Vrsta</th><th>Zahteva</th><th>Vrednosti in omejitve</th><th>Privzeto</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>google/lyria-3-clip-preview</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span><code>string</code></td><td data-cell-label=\"Zahteva\"><span class=\"card-cell-label\">Zahteva</span>Obvezno</td><td data-cell-label=\"Vrednosti in omejitve\"><span class=\"card-cell-label\">Vrednosti in omejitve</span><div>Najmanjša dolžina: 1</div></td><td data-cell-label=\"Privzeto\" data-default=\"unspecified\"><span class=\"card-cell-label\">Privzeto</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>Kombinacije vhodnih gradiv</summary><p class=\"note-s\"><b>text_to_music</b> · Obvezno: prompt</p></details><details class=\"note-s\" data-method-contract><summary>Parametri in življenjski cikel metode</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>Parameter</th><th>Specifikacija</th></tr></thead><tbody><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>material_types</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>text</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>required</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>null</td></tr><tr><th data-cell-label=\"Parameter\" scope=\"row\"><span class=\"card-cell-label\">Parameter</span><code>optional_controls</code></th><td data-cell-label=\"Specifikacija\"><span class=\"card-cell-label\">Specifikacija</span>null</td></tr></tbody></table></div><p>Življenjski cikel: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · Dejansko vrnjeni task_id ali zapis v medijski knjižnici</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\">Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">Cenik</h3><h4>Cene metod Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> Glasba</b><code>POST /v1/music/generations</code></header><dl><div><dt>Izhod</dt><dd>0,04 $ <em>na posnetek</em></dd></div><div data-billing-reference=\"not-added\"><dt>Samo referenca · se ne prišteje</dt><dd>0,04 $ <em>na zahtevo</em></dd></div></dl><div data-music-clip-pricing=\"v1\"><p class=\"note-s\">Dostavljeni posnetki × osnovna cena na posnetek. Referenčna cena na zahtevo se ne prišteje. Primeri pred veljavnimi prilagoditvami.</p><p><code>1 × 0,04 $ = 0,04 $</code></p></div></section><p class=\"note-s\">Ailoot pred zahtevo rezervira ocenjeni znesek. Po rezultatu obračuna končni strošek na podlagi izmerjene porabe. Obračun pretakanja uporablja končni zapis porabe. <a href=\"/docs/sl/billing/reserve/\">Kako delujeta rezervacija in obračun →</a></p><div data-model-tariff-reference><h4>Podrobnosti referenčne tarife</h4><p class=\"note-s\">Referenčne lestvice modela ne spreminjajo izbire metode, ocen cen ali stroškov. Veljavni stroški uporabljajo cene izbrane metode Ailoot.</p><details class=\"card-price-reference\" data-profile-scope=\"manufacturer_reference\" data-client-selectable=\"false\"><summary>Referenčne lestvice modela</summary><h4>Cene po nastavitvah</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>Nastavitev</th><th>Razred storitve</th><th>Pogoj konteksta</th><th>Strošek</th></tr></thead><tbody><tr><th data-cell-label=\"Nastavitev\" scope=\"row\"><span class=\"card-cell-label\">Nastavitev</span>Ultra</th><td data-cell-label=\"Razred storitve\"><span class=\"card-cell-label\">Razred storitve</span>standard</td><td data-cell-label=\"Pogoj konteksta\"><span class=\"card-cell-label\">Pogoj konteksta</span>{}</td><td data-cell-label=\"Strošek\"><span class=\"card-cell-label\">Strošek</span><div><span>Izhod · glasba</span> <b>0,08 $</b> <span class=\"price-unit\">na skladbo</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">Primeri zahtev</h3><h4>Ailoot · Glasba</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"Primeri kode\"><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\">Primer glasbe</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"Kopiraj kodo\"><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\">Prejmi in shrani rezultate</h3><h4>Ailoot · Glasba</h4><p class=\"note-s\">celotni zvočni posnetki v vaši lasti / povezave 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>Ohrani vse dokončane rezultate</h5><p class=\"note-s\">Shranite vsak v celoti vrnjen odgovor, datoteko in del vsebine.</p><p class=\"note-s\">Shranite/pridobite vsak vrnjeni posnetek in ohranite dejanski ID, MIME ter metapodatke. Metoda je sinhrona; ločen URL za preverjanje stanja ustvarjanja glasbe v Ailoot ni uveden.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>Če je treba preveriti izvirni odgovor</h5><p class=\"note-s\">Če je treba preveriti glasbeni rezultat, ohranite prvotni operation_id/X-Client-Request-ID in vrnjene podatke o posnetkih. Obstoječe posnetke v vaši lasti obnovite prek medijske knjižnice z dejanskimi vrednostmi task_id ali asset_id. Glasbene zahteve ne oddajte znova in iz operation_id ne sestavljajte URL-ja za preverjanje ustvarjanja.</p></div><details class=\"card-about\" data-output-fields><summary>Polja odgovora</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>Polje</th><th>Vrsta</th></tr></thead><tbody><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">response_id</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>string</td></tr><tr><th data-cell-label=\"Polje\" scope=\"row\"><span class=\"card-cell-label\">Polje</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"Vrsta\" data-field-type><span class=\"card-cell-label\">Vrsta</span>owned clip record</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>Napake in naslednji koraki</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>Odgovor</th><th>Pogoj</th><th>Naslednji korak</th></tr></thead><tbody><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span>400 · <code>invalid_request_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Pred novo zahtevo za ustvarjanje popravite navedena polja.</td></tr><tr><th data-cell-label=\"Odgovor\" scope=\"row\"><span class=\"card-cell-label\">Odgovor</span><code>server_error</code></th><td data-cell-label=\"Pogoj\"><span class=\"card-cell-label\">Pogoj</span>Vrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti</td><td data-cell-label=\"Naslednji korak\"><span class=\"card-cell-label\">Naslednji korak</span>Shranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">Druga imena</h3><h4>Druga imena modelov</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>Druga imena poti metod</h4><p class=\"note-s\">Uporabite zgoraj navedene poti metod.</p><h4>Povezani ID-ji za klic</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": "Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra",
                "http_status": 400,
                "recovery": "Pred novo zahtevo za ustvarjanje popravite navedena polja.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Vrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti",
                "http_status": null,
                "recovery": "Shranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova.",
                "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": "Če je treba preveriti glasbeni rezultat, ohranite prvotni operation_id/X-Client-Request-ID in vrnjene podatke o posnetkih. Obstoječe posnetke v vaši lasti obnovite prek medijske knjižnice z dejanskimi vrednostmi task_id ali asset_id. Glasbene zahteve ne oddajte znova in iz operation_id ne sestavljajte URL-ja za preverjanje ustvarjanja."
            },
            "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": "Shranite/pridobite vsak vrnjeni posnetek in ohranite dejanski ID, MIME ter metapodatke. Metoda je sinhrona; ločen URL za preverjanje stanja ustvarjanja glasbe v Ailoot ni uveden.",
              "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": "celotni zvočni posnetki v vaši lasti / povezave 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": [
            "Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve."
          ],
          "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": "Dejansko vrnjeni task_id ali zapis v medijski knjižnici",
                "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": "Glasba",
        "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": "81a5c2b4365290f83c4fd24804cb4ea59f154588afa1577204077ad31f51a7a1",
    "input_html_sha256": "54607e890f51ab1035530f5d5b4bfcdf34519d28763a818383cbc0a028f5c750",
    "private_audit_sha256": "4eda3ce998c489f600be1e42d29ec86ba7b288670638b0f81ad7e6cdccf62d42",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/sl/google-lyria-3-clip-preview/",
    "description": "Lyria 3 Clip Preview je Googlov glasbeni model za kratke izseke, zanke in predoglede. Sprejme besedilni ali slikovni navdih in ustvari 30-sekundno glasbo s stereo zvokom pri 48 kHz ter podpira vokale, časovno usklajena besedila pesmi in instrumentalne aranžmaje.",
    "locale": "sl",
    "md_url": "https://ailoot.ai/models/sl/google-lyria-3-clip-preview/index.md",
    "title": "Lyria 3 Clip Preview — Ailoot",
    "url": "https://ailoot.ai/models/sl/google-lyria-3-clip-preview/"
  },
  "rawModel": {
    "about": "Lyria 3 Clip Preview je Googlov profil za ustvarjanje glasbe za kratke izseke, zanke in predoglede. Sprejme besedilno navodilo ali slikovni navdih ter vrne besedilo in zvok. Objavljeni profil opisuje 30-sekundne izseke s stereo zvokom pri 48 kHz, vključno z vokali, časovno usklajenimi besedili pesmi in polnimi instrumentalnimi aranžmaji.\n\n### Opišite glasbeni trenutek\n\nNavedite namen izseka in razpoloženje, ki naj ga izraža. Kratka uvodna tema lahko določi zadržan uvod in jasen prihod glavne teme; glasbena podlaga lahko opredeli tempo in teksturo, potrebna pod vizualnim prizorom. Navedite, ali naj rezultat vsebuje vokale ali bo instrumentalen, in poimenujte glasbene elemente, pomembne za izhodišče.\n\nStrukturo prilagodite kratkemu izseku. Določite uvod, glavno frazo in zaključek ali točko zanke. Če so besede pomembne, navedite zamišljeno lirično idejo ali besedilo in preglejte dejansko odpeti rezultat. Glasbeno izhodišče naj loči vokalno vsebino od navodil za aranžma.\n\n### Slikovni navdih in aranžma\n\nKo posredujete sliko, pojasnite, kateri prizor ali razpoloženje prispeva h glasbeni zahtevi. Mirna pokrajina in natrpan nočni prizor nakazujeta različni smeri, vendar naj bo želena čustvena vloga še vedno izrecno navedena v besedilu. Sliko hranite skupaj z navodilom, ko vrnjeni izsek primerjate z zamišljenim konceptom.\n\nPreglejte ravnovesje med vokali, inštrumenti in glavno glasbeno frazo. Pri zanki poslušajte konec in začetek skupaj; pri predogledu preverite, ali kratko trajanje sporoča zamišljeno smer. Izsek, ki spremlja montažo, preverite ob tej montaži, ne samo samostojno.\n\n### Ohranite zvočni izdelek\n\nDejanski zvok in morebitno spremljajoče besedilo shranite skupaj z izhodiščem. Pri pripravi predvajanja ali uvozu v urejevalnik preverite lastnosti datoteke ter ohranite vse podatke o besedilu pesmi ali času, prejete z rezultatom zahteve. Glasba je izhod modela; reze, naslove, vizualne prehode in končni produkcijski miks lahko uredite okoli tega pregledanega gradiva.\n\nTa konkretni profil Clip Preview je primeren za strnjen glasbeni izdelek. Pri načrtovanju daljše skladbe ohranite razliko v njegovi vlogi za kratke oblike in vrnjeni izsek izberite s poslušanjem celotne fraze, vokalnega besedila in zaključka.",
    "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": "Neveljavna obvezna polja, predstavitev gradiva ali vrednost parametra",
                "http_status": 400,
                "recovery": "Pred novo zahtevo za ustvarjanje popravite navedena polja.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "Vrnjeni odgovor navaja, da je treba operacijo ali rezultat preveriti",
                "http_status": null,
                "recovery": "Shranite izvirni vrnjeni ID operacije/opravila, glave zahteve in odgovor; nadaljujte s podprtimi branji te izvirne operacije. Zahteve za ustvarjanje ne pošiljajte znova.",
                "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": "Če je treba preveriti glasbeni rezultat, ohranite prvotni operation_id/X-Client-Request-ID in vrnjene podatke o posnetkih. Obstoječe posnetke v vaši lasti obnovite prek medijske knjižnice z dejanskimi vrednostmi task_id ali asset_id. Glasbene zahteve ne oddajte znova in iz operation_id ne sestavljajte URL-ja za preverjanje ustvarjanja."
            },
            "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": "Shranite/pridobite vsak vrnjeni posnetek in ohranite dejanski ID, MIME ter metapodatke. Metoda je sinhrona; ločen URL za preverjanje stanja ustvarjanja glasbe v Ailoot ni uveden.",
              "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": "celotni zvočni posnetki v vaši lasti / povezave 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": [
            "Strukture metod in ID so natančno določeni; zmožnost ponudnika je ločena od sprejema zahteve."
          ],
          "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": "Dejansko vrnjeni task_id ali zapis v medijski knjižnici",
                "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": "Glasba",
        "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 je Googlov glasbeni model za kratke izseke, zanke in predoglede. Sprejme besedilni ali slikovni navdih in ustvari 30-sekundno glasbo s stereo zvokom pri 48 kHz ter podpira vokale, časovno usklajena besedila pesmi in instrumentalne aranžmaje."
  },
  "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 je Googlov glasbeni model za kratke izseke, zanke in predoglede. Sprejme besedilni ali slikovni navdih in ustvari 30-sekundno glasbo s stereo zvokom pri 48 kHz ter podpira vokale, časovno usklajena besedila pesmi in instrumentalne aranžmaje.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "7d90eefd2b12189d23ed7d7667b8d04ef91a76376465f28156bf69a23ade5dec",
    "renderer_sha256": "dcba2271c18b0f9570a8b166e8d1e3166f121e096a58609c3a46da31562a1bf2"
  },
  "sourceRevision": "cb2f4e15db51e41c81b4a03b919815db95c8b10673a24188fc04753e8f32f624"
}
