{
  "aboutHtml": "<p>Lyria 3 Clip Preview هو ملف توليد الموسيقى من Google للمقاطع القصيرة والحلقات والمعاينات. يقبل وصفًا نصيًا أو صورة للإلهام، ويعيد نصًا وصوتًا. ويصف الملف المنشور مقاطع من 30 ثانية بصوت ستيريو بتردد 48 kHz، تشمل الغناء وكلمات الأغنية الموقّتة والتوزيعات الكاملة للآلات الموسيقية.</p><h4>صِف اللحظة الموسيقية</h4><p>حدّد غرض المقطع والمزاج الذي ينبغي أن يحمله. ويمكن للحن افتتاحي قصير تحديد مقدمة هادئة ولحظة دخول واضحة؛ ويمكن لمقطع خلفية تحديد الإيقاع والملمس الصوتي اللازمين خلف مشهد مرئي. بيّن ما إذا كان ينبغي أن تتضمن النتيجة غناءً أم تكون موسيقى آلية، واذكر العناصر الموسيقية المهمة للموجز.</p><p>اجعل البنية مناسبة لقِصر المقطع. حدّد الافتتاح والعبارة الموسيقية الرئيسية والنهاية أو نقطة التكرار. وإذا كانت الكلمات مهمة، فقدّم الفكرة الغنائية أو الصياغة المقصودة وافحص النتيجة المغنّاة الفعلية. وينبغي للموجز الموسيقي أن يميّز المحتوى الغنائي عن توجيهات التوزيع.</p><h4>الإلهام من الصور والتوزيع</h4><p>عند تقديم صورة، اشرح المشهد أو المزاج الذي تضيفه إلى طلب الموسيقى. فالمنظر الطبيعي الهادئ والمشهد الليلي المزدحم يوحيان باتجاهين مختلفين، لكن ينبغي أن يظل الدور الشعوري المطلوب صريحًا في النص. واحتفظ بالصورة مع الوصف عند مقارنة المقطع المُعاد بالفكرة المقصودة.</p><p>راجع التوازن بين الغناء والآلات والعبارة الموسيقية الرئيسية. وفي الحلقة، استمع إلى النهاية والبداية معًا؛ وفي المعاينة، تحقّق مما إذا كانت المدة القصيرة توصل الاتجاه المقصود. وينبغي مراجعة المقطع الذي يصاحب مونتاجًا في ضوء ذلك المونتاج، لا بمفرده فقط.</p><h4>احتفظ بالملف الصوتي للاستماع</h4><p>احفظ الصوت الفعلي وأي نص مصاحب مع الموجز. وافحص خصائص ملفه عند تجهيز التشغيل أو استيراده إلى محرّر، واحتفظ بأي معلومات لكلمات الأغنية أو التوقيت أعادها الطلب. والموسيقى هي مخرج النموذج؛ ويمكن ترتيب القصّات والعناوين والانتقالات المرئية والمزيج الإنتاجي النهائي حول هذا الأصل الذي جرى فحصه.</p><p>يناسب ملف Clip Preview المحدد هذا ناتجًا موسيقيًا موجزًا. وحافظ على تمييز دوره في المقاطع القصيرة عند التخطيط لمؤلّفة أطول، واختر المقطع المُعاد بالاستماع إلى العبارة كاملةً والكلمات المغنّاة والنهاية.</p>",
  "aboutText": "Lyria 3 Clip Preview هو ملف توليد الموسيقى من Google للمقاطع القصيرة والحلقات والمعاينات. يقبل وصفًا نصيًا أو صورة للإلهام، ويعيد نصًا وصوتًا. ويصف الملف المنشور مقاطع من 30 ثانية بصوت ستيريو بتردد 48 kHz، تشمل الغناء وكلمات الأغنية الموقّتة والتوزيعات الكاملة للآلات الموسيقية.\n\n### صِف اللحظة الموسيقية\n\nحدّد غرض المقطع والمزاج الذي ينبغي أن يحمله. ويمكن للحن افتتاحي قصير تحديد مقدمة هادئة ولحظة دخول واضحة؛ ويمكن لمقطع خلفية تحديد الإيقاع والملمس الصوتي اللازمين خلف مشهد مرئي. بيّن ما إذا كان ينبغي أن تتضمن النتيجة غناءً أم تكون موسيقى آلية، واذكر العناصر الموسيقية المهمة للموجز.\n\nاجعل البنية مناسبة لقِصر المقطع. حدّد الافتتاح والعبارة الموسيقية الرئيسية والنهاية أو نقطة التكرار. وإذا كانت الكلمات مهمة، فقدّم الفكرة الغنائية أو الصياغة المقصودة وافحص النتيجة المغنّاة الفعلية. وينبغي للموجز الموسيقي أن يميّز المحتوى الغنائي عن توجيهات التوزيع.\n\n### الإلهام من الصور والتوزيع\n\nعند تقديم صورة، اشرح المشهد أو المزاج الذي تضيفه إلى طلب الموسيقى. فالمنظر الطبيعي الهادئ والمشهد الليلي المزدحم يوحيان باتجاهين مختلفين، لكن ينبغي أن يظل الدور الشعوري المطلوب صريحًا في النص. واحتفظ بالصورة مع الوصف عند مقارنة المقطع المُعاد بالفكرة المقصودة.\n\nراجع التوازن بين الغناء والآلات والعبارة الموسيقية الرئيسية. وفي الحلقة، استمع إلى النهاية والبداية معًا؛ وفي المعاينة، تحقّق مما إذا كانت المدة القصيرة توصل الاتجاه المقصود. وينبغي مراجعة المقطع الذي يصاحب مونتاجًا في ضوء ذلك المونتاج، لا بمفرده فقط.\n\n### احتفظ بالملف الصوتي للاستماع\n\nاحفظ الصوت الفعلي وأي نص مصاحب مع الموجز. وافحص خصائص ملفه عند تجهيز التشغيل أو استيراده إلى محرّر، واحتفظ بأي معلومات لكلمات الأغنية أو التوقيت أعادها الطلب. والموسيقى هي مخرج النموذج؛ ويمكن ترتيب القصّات والعناوين والانتقالات المرئية والمزيج الإنتاجي النهائي حول هذا الأصل الذي جرى فحصه.\n\nيناسب ملف Clip Preview المحدد هذا ناتجًا موسيقيًا موجزًا. وحافظ على تمييز دوره في المقاطع القصيرة عند التخطيط لمؤلّفة أطول، واختر المقطع المُعاد بالاستماع إلى العبارة كاملةً والكلمات المغنّاة والنهاية.",
  "editorialOverlay": {
    "copy_fields": null,
    "copy_sha256": null,
    "copy_source": null,
    "html_sha256": "37d34df2a23024a2e774b0b77fc64feec6ff5fefd9185d047b03aac9a8be4307",
    "module_sha256": "ee9dc1c50b1e6a8fb7fa062030fcb4646b9aaaeb08be513b723a5a92a7290f06",
    "raw_model_unchanged": true,
    "schema": "ailoot-native-model-editorial-v1"
  },
  "locale": "ar",
  "methods": [
    {
      "html": "<div class=\"sheet-head\"><span class=\"mav\" aria-hidden=\"true\">G</span><h2 id=\"sheet-title\">Lyria 3 Clip Preview</h2><button class=\"icon-btn\" type=\"button\" data-close-sheet aria-label=\"إغلاق\">×</button></div><div class=\"idline\"><span>Google /</span><code>google/lyria-3-clip-preview</code><button type=\"button\" id=\"copy-id\">نسخ ID</button></div><nav class=\"card-jump-nav\" aria-label=\"أقسام بطاقة النموذج\"><button type=\"button\" data-card-jump=\"overview\">البداية</button><button type=\"button\" data-card-jump=\"methods\">المدخلات والطرائق</button><button type=\"button\" data-card-jump=\"pricing\">الباقات</button><button type=\"button\" data-card-jump=\"examples\">أمثلة</button><button type=\"button\" data-card-jump=\"results\">النتائج</button><button type=\"button\" data-card-jump=\"aliases\">الأسماء البديلة</button></nav><div class=\"card-method-tabs\" role=\"tablist\" aria-label=\"طرائق API\"><button type=\"button\" role=\"tab\" tabindex=\"0\" aria-controls=\"card-method-content\" aria-selected=\"true\" id=\"card-method-tab-0\" data-card-method=\"Core|music|/v1/music/generations|google%2Flyria-3-clip-preview\">الموسيقى</button></div><div id=\"card-method-content\" role=\"tabpanel\" aria-labelledby=\"card-method-tab-0\"><section class=\"card-section\" data-card-section=\"overview\"><h3 tabindex=\"-1\">البداية</h3><p class=\"mdesc-full\">Lyria 3 Clip Preview هو نموذج الموسيقى من Google للمقاطع القصيرة والحلقات والمعاينات. يستلهم من النص أو الصور، وينتج موسيقى مدتها 30 ثانية بصوت ستيريو بتردد 48 kHz، مع دعم الغناء وكلمات الأغنية الموقّتة والتوزيعات الموسيقية الآلية.</p><dl class=\"card-io\" data-card-io><div><dt>المدخلات المقبولة</dt><dd>النص</dd></div><div><dt>النتائج</dt><dd>music</dd></div></dl><details class=\"card-about\"><summary>عن النموذج</summary><p class=\"note-s\" data-model-method-boundary>يغطي هذا الوصف قدرات النموذج. وترد أدناه المدخلات والمخرجات والخيارات المتاحة في Ailoot للطريقة المحددة.</p><div class=\"mabout\" id=\"m-about\"><p>Lyria 3 Clip Preview هو ملف توليد الموسيقى من Google للمقاطع القصيرة والحلقات والمعاينات. يقبل وصفًا نصيًا أو صورة للإلهام، ويعيد نصًا وصوتًا. ويصف الملف المنشور مقاطع من 30 ثانية بصوت ستيريو بتردد 48 kHz، تشمل الغناء وكلمات الأغنية الموقّتة والتوزيعات الكاملة للآلات الموسيقية.</p><h4>صِف اللحظة الموسيقية</h4><p>حدّد غرض المقطع والمزاج الذي ينبغي أن يحمله. ويمكن للحن افتتاحي قصير تحديد مقدمة هادئة ولحظة دخول واضحة؛ ويمكن لمقطع خلفية تحديد الإيقاع والملمس الصوتي اللازمين خلف مشهد مرئي. بيّن ما إذا كان ينبغي أن تتضمن النتيجة غناءً أم تكون موسيقى آلية، واذكر العناصر الموسيقية المهمة للموجز.</p><p>اجعل البنية مناسبة لقِصر المقطع. حدّد الافتتاح والعبارة الموسيقية الرئيسية والنهاية أو نقطة التكرار. وإذا كانت الكلمات مهمة، فقدّم الفكرة الغنائية أو الصياغة المقصودة وافحص النتيجة المغنّاة الفعلية. وينبغي للموجز الموسيقي أن يميّز المحتوى الغنائي عن توجيهات التوزيع.</p><h4>الإلهام من الصور والتوزيع</h4><p>عند تقديم صورة، اشرح المشهد أو المزاج الذي تضيفه إلى طلب الموسيقى. فالمنظر الطبيعي الهادئ والمشهد الليلي المزدحم يوحيان باتجاهين مختلفين، لكن ينبغي أن يظل الدور الشعوري المطلوب صريحًا في النص. واحتفظ بالصورة مع الوصف عند مقارنة المقطع المُعاد بالفكرة المقصودة.</p><p>راجع التوازن بين الغناء والآلات والعبارة الموسيقية الرئيسية. وفي الحلقة، استمع إلى النهاية والبداية معًا؛ وفي المعاينة، تحقّق مما إذا كانت المدة القصيرة توصل الاتجاه المقصود. وينبغي مراجعة المقطع الذي يصاحب مونتاجًا في ضوء ذلك المونتاج، لا بمفرده فقط.</p><h4>احتفظ بالملف الصوتي للاستماع</h4><p>احفظ الصوت الفعلي وأي نص مصاحب مع الموجز. وافحص خصائص ملفه عند تجهيز التشغيل أو استيراده إلى محرّر، واحتفظ بأي معلومات لكلمات الأغنية أو التوقيت أعادها الطلب. والموسيقى هي مخرج النموذج؛ ويمكن ترتيب القصّات والعناوين والانتقالات المرئية والمزيج الإنتاجي النهائي حول هذا الأصل الذي جرى فحصه.</p><p>يناسب ملف Clip Preview المحدد هذا ناتجًا موسيقيًا موجزًا. وحافظ على تمييز دوره في المقاطع القصيرة عند التخطيط لمؤلّفة أطول، واختر المقطع المُعاد بالاستماع إلى العبارة كاملةً والكلمات المغنّاة والنهاية.</p></div></details></section><section class=\"card-section\" data-card-section=\"methods\"><h3 tabindex=\"-1\">متاح في Ailoot · المدخلات والطرائق</h3><details class=\"card-method\" open><summary><b>Ailoot · الموسيقى</b> <code>POST /v1/music/generations</code></summary><dl class=\"method-capabilities\"><div><dt>الإدخال</dt><dd><code>text</code></dd></div><div><dt>الإخراج</dt><dd><code>music</code></dd></div><div><dt>صيغة الإخراج</dt><dd>المقاطع الصوتية الكاملة المملوكة لك / روابط JSON</dd></div></dl><div class=\"tw\" data-card-parameters data-typed-parameters><table><thead><tr><th>الحقل</th><th>النوع</th><th>المتطلب</th><th>القيم والحدود</th><th>القيمة الافتراضية</th></tr></thead><tbody><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>google/lyria-3-clip-preview</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr><tr data-parameter-availability=\"source_interface\"><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">prompt</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span><code>string</code></td><td data-cell-label=\"المتطلب\"><span class=\"card-cell-label\">المتطلب</span>مطلوب</td><td data-cell-label=\"القيم والحدود\"><span class=\"card-cell-label\">القيم والحدود</span><div>الحد الأدنى للطول: ⁦1⁩</div></td><td data-cell-label=\"القيمة الافتراضية\" data-default=\"unspecified\"><span class=\"card-cell-label\">القيمة الافتراضية</span>—</td></tr></tbody></table></div><details class=\"card-about\" data-material-combinations><summary>تركيبات مواد الإدخال</summary><p class=\"note-s\"><b>text_to_music</b> · مطلوب: prompt</p></details><details class=\"note-s\" data-method-contract><summary>معلمات الطريقة ودورة حياتها</summary><div class=\"tw\" data-card-table=\"contract\"><table><thead><tr><th>المعلمة</th><th>المواصفات</th></tr></thead><tbody><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>material_types</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>text</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>required</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>null</td></tr><tr><th data-cell-label=\"المعلمة\" scope=\"row\"><span class=\"card-cell-label\">المعلمة</span><code>optional_controls</code></th><td data-cell-label=\"المواصفات\"><span class=\"card-cell-label\">المواصفات</span>null</td></tr></tbody></table></div><p>دورة الحياة: <code>synchronous_result_then_owned_library</code></p><p class=\"note-s\"><code>GET /v1/media/tasks/{task_id}</code> · قيمة task_id الفعلية المُعادة أو سجل مكتبة الوسائط</p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}/content</code></p><p class=\"note-s\"><code>GET /v1/media/assets</code></p><p class=\"note-s\"><code>GET /v1/media/assets/{asset_id}</code></p><p class=\"note-s\">بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب.</p></details></details></section><section class=\"card-section\" data-card-section=\"pricing\"><h3 tabindex=\"-1\">الباقات</h3><h4>تعرفات طرائق Ailoot</h4><section class=\"meth\" data-route=\"Core\"><header><b><span class=\"alias\">Ailoot</span> الموسيقى</b><code>POST /v1/music/generations</code></header><dl><div><dt>الإخراج</dt><dd>⁦‏0.04 US$⁩ <em>لكل مقطع</em></dd></div><div data-billing-reference=\"not-added\"><dt>مرجع فقط · لا يُضاف</dt><dd>⁦‏0.04 US$⁩ <em>لكل طلب</em></dd></div></dl><div data-music-clip-pricing=\"v1\"><p class=\"note-s\">المقاطع المسلّمة × السعر الأساسي للمقطع. لا يُضاف السعر المرجعي لكل طلب. الأمثلة قبل التعديلات المطبقة.</p><p><code>1 × ⁦‏0.04 US$⁩ = ⁦‏0.04 US$⁩</code></p></div></section><p class=\"note-s\">تحجز Ailoot مبلغًا تقديريًا قبل الطلب. وبعد ظهور النتيجة، تُسوّي الرسوم النهائية بناءً على الاستخدام المقاس. وتستخدم تسوية البث سجل الاستخدام النهائي. <a href=\"/docs/ar/billing/reserve/\">كيفية عمل حجز المبلغ وتسوية الرسوم →</a></p><div data-model-tariff-reference><h4>تفاصيل التعرفة المرجعية</h4><p class=\"note-s\">لا تغيّر جداول التعرفة المرجعية على مستوى النموذج اختيار الطريقة أو عروض الأسعار أو الرسوم. وتستخدم الرسوم الفعلية تعرفات طريقة Ailoot المحددة.</p><details class=\"card-price-reference\" data-profile-scope=\"manufacturer_reference\" data-client-selectable=\"false\"><summary>جداول التعرفة المرجعية للنموذج</summary><h4>الأسعار حسب الإعدادات</h4><div class=\"tw\" data-pricing-profiles><table><thead><tr><th>الإعدادات</th><th>فئة الخدمة</th><th>شرط السياق</th><th>الرسوم</th></tr></thead><tbody><tr><th data-cell-label=\"الإعدادات\" scope=\"row\"><span class=\"card-cell-label\">الإعدادات</span>Ultra</th><td data-cell-label=\"فئة الخدمة\"><span class=\"card-cell-label\">فئة الخدمة</span>standard</td><td data-cell-label=\"شرط السياق\"><span class=\"card-cell-label\">شرط السياق</span>{}</td><td data-cell-label=\"الرسوم\"><span class=\"card-cell-label\">الرسوم</span><div><span>الإخراج · موسيقى</span> <b>⁦‏0.08 US$⁩</b> <span class=\"price-unit\">لكل أغنية</span></div></td></tr></tbody></table></div></details></div></section><section class=\"card-section\" data-card-section=\"examples\"><h3 tabindex=\"-1\">أمثلة للطلبات</h3><h4>Ailoot · الموسيقى</h4><div class=\"code-group\"><div class=\"cg-bar\"><div class=\"cg-tabs\" role=\"tablist\" aria-label=\"خيارات الشيفرة\"><button class=\"cg-tab\" id=\"model-code-355-tab-0\" role=\"tab\" type=\"button\" aria-controls=\"model-code-355-panel-0\" aria-selected=\"true\" tabindex=\"0\">مثال للموسيقى</button></div><div class=\"cg-tools\"><button class=\"cg-btn cg-copy\" type=\"button\" aria-label=\"نسخ الشيفرة\"><svg class=\"cp\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><rect x=\"5.25\" y=\"5.25\" width=\"8.5\" height=\"8.5\" rx=\"1.75\"/><path d=\"M10.75 5.25V3.5a1.25 1.25 0 0 0-1.25-1.25H3.5A1.25 1.25 0 0 0 2.25 3.5v6a1.25 1.25 0 0 0 1.25 1.25h1.75\"/></svg><svg class=\"ok\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\"><path d=\"m3 8.5 3.25 3.25L13 5\"/></svg></button></div></div><div class=\"cg-body\"><div class=\"cg-pane\" id=\"model-code-355-panel-0\" role=\"tabpanel\" aria-labelledby=\"model-code-355-tab-0\"><pre data-lang=\"bash\"><code>set -eu\n: &quot;${AILOOT_API_KEY:?Set your Ailoot API key}&quot;\n: &quot;${AILOOT_PROMPT_FILE:?Set your actual UTF-8 music brief}&quot;\nexport AILOOT_PROMPT_FILE\npython3 - &lt;&lt;&#39;PY_REQUEST&#39;\nimport json,os\nfrom pathlib import Path\np=json.loads(&#39;{&quot;model&quot;: &quot;google/lyria-3-clip-preview&quot;, &quot;prompt&quot;: &quot;&quot;}&#39;)\nf=Path(os.environ[&quot;AILOOT_PROMPT_FILE&quot;])\nif not f.is_file():raise SystemExit(&quot;Choose your actual UTF-8 brief&quot;)\np[&#39;prompt&#39;]=f.read_text(encoding=&quot;utf-8&quot;)\nif not p[&#39;prompt&#39;].strip():raise SystemExit(&quot;Brief must contain text&quot;)\nPath(&quot;request.json&quot;).write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \\\n  -H &quot;Authorization: Bearer $AILOOT_API_KEY&quot; -H &#39;Content-Type: application/json&#39; \\\n  --data-binary @request.json -D response-headers.txt -o result.json\nexport AILOOT_API_KEY\npython3 - &lt;&lt;&#39;PY_RESULT&#39;\nimport json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin, urlparse\nresult=json.loads(Path(&quot;result.json&quot;).read_text(encoding=&quot;utf-8&quot;))\nprint(json.dumps(result,ensure_ascii=False,indent=2))\nfor number,clip in enumerate(result.get(&quot;data&quot;) or []):\n    u=urlparse(urljoin(&quot;https://api.ailoot.ai&quot;,clip[&quot;url&quot;]))\n    if u.scheme!=&quot;https&quot; or not u.hostname or u.username or u.password:\n        raise SystemExit(&quot;Result URL must be HTTPS without embedded credentials&quot;)\n    owned=u.netloc==&quot;api.ailoot.ai&quot; and u.path.startswith(&quot;/v1/media/assets/&quot;) and u.path.endswith(&quot;/content&quot;)\n    args=[&quot;curl&quot;,&quot;--fail-with-body&quot;,&quot;--silent&quot;,&quot;--show-error&quot;,u.geturl()]\n    if owned: args += [&quot;-H&quot;,&quot;Authorization: Bearer &quot;+os.environ[&quot;AILOOT_API_KEY&quot;]]\n    raw=subprocess.check_output(args)\n    ext=&quot;wav&quot; if raw.startswith(b&quot;RIFF&quot;) and raw[8:12]==b&quot;WAVE&quot; else &quot;flac&quot; if raw.startswith(b&quot;fLaC&quot;) else &quot;ogg&quot; if raw.startswith(b&quot;OggS&quot;) else &quot;mp3&quot; if raw.startswith(b&quot;ID3&quot;) or raw[:1]==b&quot;\\xff&quot; else &quot;bin&quot;\n    f=Path(&quot;music-&quot;+str(number)+&quot;.&quot;+ext);f.write_bytes(raw)\n    print(&quot;Saved&quot;,f,clip.get(&quot;asset_id&quot;))\n\nPY_RESULT\n</code></pre></div></div></div></section><section class=\"card-section\" data-card-section=\"results\"><h3 tabindex=\"-1\">استلام النتائج وحفظها</h3><h4>Ailoot · الموسيقى</h4><p class=\"note-s\">المقاطع الصوتية الكاملة المملوكة لك / روابط JSON</p><ul class=\"card-result-paths\"><li><code>GET /v1/media/tasks/{task_id}</code></li><li><code>GET /v1/media/assets/{asset_id}/content</code></li><li><code>GET /v1/media/assets</code></li><li><code>GET /v1/media/assets/{asset_id}</code></li></ul><div class=\"card-result-process\" data-all-results><h5>الاحتفاظ بكل النتائج المكتملة</h5><p class=\"note-s\">احتفظ بكل استجابة كاملة وكل ملف وجزء محتوى تم إرجاعه.</p><p class=\"note-s\">احفظ أو اجلب كل مقطع مُعاد، واحتفظ بالمعرّف الفعلي وMIME والبيانات الوصفية. الطريقة متزامنة؛ ولا يُستحدث عنوان URL منفصل للاستعلام عن حالة توليد الموسيقى في Ailoot.</p></div><div class=\"card-result-process\" data-unknown-recovery><h5>عند الحاجة إلى التحقق من الاستجابة الأصلية</h5><p class=\"note-s\">إذا كانت نتيجة الموسيقى تتطلب التحقق، فاحتفظ بـoperation_id/X-Client-Request-ID الأصليين وبمعلومات المقاطع المُعادة. استعد المقاطع الموجودة المملوكة لك عبر مكتبة الوسائط باستخدام قيم task_id أو asset_id الفعلية. لا تعِد إرسال طلب الموسيقى، ولا تُنشئ عنوان URL للاستعلام عن التوليد انطلاقاً من operation_id.</p></div><details class=\"card-about\" data-output-fields><summary>حقول الاستجابة</summary><div class=\"tw\" data-card-table=\"output\"><table><thead><tr><th>الحقل</th><th>النوع</th></tr></thead><tbody><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">model</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>string</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">response_id</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>string</td></tr><tr><th data-cell-label=\"الحقل\" scope=\"row\"><span class=\"card-cell-label\">الحقل</span><code class=\"card-field-name\">data[]</code></th><td data-cell-label=\"النوع\" data-field-type><span class=\"card-cell-label\">النوع</span>owned clip record</td></tr></tbody></table></div></details><details class=\"card-about\" data-method-errors><summary>الأخطاء والخطوات التالية</summary><div class=\"tw\" data-card-table=\"errors\"><table><thead><tr><th>الاستجابة</th><th>الشرط</th><th>الخطوة التالية</th></tr></thead><tbody><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span>⁦400⁩ · <code>invalid_request_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>صحّح الحقول المحددة قبل طلب إنشاء جديد.</td></tr><tr><th data-cell-label=\"الاستجابة\" scope=\"row\"><span class=\"card-cell-label\">الاستجابة</span><code>server_error</code></th><td data-cell-label=\"الشرط\"><span class=\"card-cell-label\">الشرط</span>تشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحقق</td><td data-cell-label=\"الخطوة التالية\"><span class=\"card-cell-label\">الخطوة التالية</span>احتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.</td></tr></tbody></table></div></details></section><section class=\"card-section\" data-card-section=\"aliases\"><h3 tabindex=\"-1\">الأسماء البديلة</h3><h4>الأسماء البديلة للنموذج</h4><p class=\"note-s\"><span data-model-alias-route=\"Core\"><b>Ailoot</b> <a href=\"#m=google%2Flyria-3-clip-preview&amp;route=Core&amp;caller=google%2Flyria-3-clip-preview&amp;fmt=music\"><code>google/lyria-3-clip-preview</code></a></span></p><h4>الأسماء البديلة لمسارات الطرائق</h4><p class=\"note-s\">استخدم مسارات الطرائق المعروضة أعلاه.</p><h4>معرّفات النماذج ذات الصلة IDs</h4><p class=\"note-s\"><a href=\"#m=google%2Flyria-3-clip-preview&amp;route=Core&amp;caller=google%2Flyria-3-clip-preview&amp;fmt=music\"><code>google/lyria-3-clip-preview</code></a></p></section></div>",
      "method_identity": {
        "effective_request_model_id": "google/lyria-3-clip-preview",
        "fmt": "music",
        "http": "POST",
        "path": "/v1/music/generations",
        "request_model_id": "google/lyria-3-clip-preview",
        "route_label": "Core"
      },
      "method_key": "Core|music|/v1/music/generations|google%2Flyria-3-clip-preview",
      "ordinal": 0,
      "rawMethod": {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Save/fetch every returned clip and preserve actual ID, MIME and metadata. The method is synchronous; no separate Ailoot music generationpollingURL is introduced.",
            "errors": [
              {
                "code": null,
                "condition": "حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة",
                "http_status": 400,
                "recovery": "صحّح الحقول المحددة قبل طلب إنشاء جديد.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "تشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحقق",
                "http_status": null,
                "recovery": "احتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "إذا كانت نتيجة الموسيقى تتطلب التحقق، فاحتفظ بـoperation_id/X-Client-Request-ID الأصليين وبمعلومات المقاطع المُعادة. استعد المقاطع الموجودة المملوكة لك عبر مكتبة الوسائط باستخدام قيم task_id أو asset_id الفعلية. لا تعِد إرسال طلب الموسيقى، ولا تُنشئ عنوان URL للاستعلام عن التوليد انطلاقاً من operation_id."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_music",
                "required": [
                  "prompt"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_music"
            ],
            "outputs": {
              "all_results": "احفظ أو اجلب كل مقطع مُعاد، واحتفظ بالمعرّف الفعلي وMIME والبيانات الوصفية. الطريقة متزامنة؛ ولا يُستحدث عنوان URL منفصل للاستعلام عن حالة توليد الموسيقى في Ailoot.",
              "family": "music",
              "fields": [
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "response_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "owned clip record"
                }
              ],
              "format": "المقاطع الصوتية الكاملة المملوكة لك / روابط JSON"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/lyria-3-clip-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "قيمة task_id الفعلية المُعادة أو سجل مكتبة الوسائط",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "If a music result requires a check, keep the original operation_id/X-Client-Request-ID and returned clip information. Recover existing owned clips through the media library using actual task_id or asset_id values. Do not resubmit the music request or construct a generation polling URL from operation_id."
          },
          "method": {
            "http": "POST",
            "path": "/v1/music/generations"
          },
          "operation_modes": [
            "music"
          ],
          "output": {
            "family": [
              "music"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_PROMPT_FILE:?Set your actual UTF-8 music brief}\"\nexport AILOOT_PROMPT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/lyria-3-clip-preview\", \"prompt\": \"\"}')\nf=Path(os.environ[\"AILOOT_PROMPT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 brief\")\np['prompt']=f.read_text(encoding=\"utf-8\")\nif not p['prompt'].strip():raise SystemExit(\"Brief must contain text\")\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\nexport AILOOT_API_KEY\npython3 - <<'PY_RESULT'\nimport json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin, urlparse\nresult=json.loads(Path(\"result.json\").read_text(encoding=\"utf-8\"))\nprint(json.dumps(result,ensure_ascii=False,indent=2))\nfor number,clip in enumerate(result.get(\"data\") or []):\n    u=urlparse(urljoin(\"https://api.ailoot.ai\",clip[\"url\"]))\n    if u.scheme!=\"https\" or not u.hostname or u.username or u.password:\n        raise SystemExit(\"Result URL must be HTTPS without embedded credentials\")\n    owned=u.netloc==\"api.ailoot.ai\" and u.path.startswith(\"/v1/media/assets/\") and u.path.endswith(\"/content\")\n    args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u.geturl()]\n    if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n    raw=subprocess.check_output(args)\n    ext=\"wav\" if raw.startswith(b\"RIFF\") and raw[8:12]==b\"WAVE\" else \"flac\" if raw.startswith(b\"fLaC\") else \"ogg\" if raw.startswith(b\"OggS\") else \"mp3\" if raw.startswith(b\"ID3\") or raw[:1]==b\"\\xff\" else \"bin\"\n    f=Path(\"music-\"+str(number)+\".\"+ext);f.write_bytes(raw)\n    print(\"Saved\",f,clip.get(\"asset_id\"))\n\nPY_RESULT\n",
            "label": "Compose from your actual music brief",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "music",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "الموسيقى",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "music"
        ],
        "path": "/v1/music/generations",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.04,
                "amount_unit": "usd_per_display_unit",
                "key": "music_output_clip",
                "label": "per clip",
                "side": "out"
              },
              {
                "amount": 0.04,
                "amount_unit": "usd_per_display_unit",
                "key": "per_request",
                "label": "per request",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "google/lyria-3-clip-preview",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "music_output_clip",
        "units": [
          {
            "key": "music_output_clip",
            "label": "per clip",
            "side": "out",
            "usd": 0.04
          },
          {
            "key": "per_request",
            "label": "per request",
            "side": "out",
            "usd": 0.04
          }
        ]
      }
    }
  ],
  "model_id": "google/lyria-3-clip-preview",
  "nativeProvenance": {
    "input_facts_canonical_sha256": "493e5b28a4aad36deafddfc4eddb7f27072a25ab130eaacec534797469a4a673",
    "input_html_sha256": "f7d2ba83ff66973d0c8b898f5a3ebb5fed2de7b303840cc0fc770f17acc97dbd",
    "private_audit_sha256": "2dc4168cfa546d2ebadb11d2c4df7a31689ce3525cce2d08cdf406626b7a4052",
    "role": "historical-normalized-input-audit-hashes",
    "schema": "ailoot-native-model-provenance-v2"
  },
  "page": {
    "canonical": "https://ailoot.ai/models/ar/google-lyria-3-clip-preview/",
    "description": "Lyria 3 Clip Preview هو نموذج الموسيقى من Google للمقاطع القصيرة والحلقات والمعاينات. يستلهم من النص أو الصور، وينتج موسيقى مدتها 30 ثانية بصوت ستيريو بتردد 48 kHz، مع دعم الغناء وكلمات الأغنية الموقّتة والتوزيعات الموسيقية الآلية.",
    "locale": "ar",
    "md_url": "https://ailoot.ai/models/ar/google-lyria-3-clip-preview/index.md",
    "title": "Lyria 3 Clip Preview — Ailoot",
    "url": "https://ailoot.ai/models/ar/google-lyria-3-clip-preview/"
  },
  "rawModel": {
    "about": "Lyria 3 Clip Preview هو ملف توليد الموسيقى من Google للمقاطع القصيرة والحلقات والمعاينات. يقبل وصفًا نصيًا أو صورة للإلهام، ويعيد نصًا وصوتًا. ويصف الملف المنشور مقاطع من 30 ثانية بصوت ستيريو بتردد 48 kHz، تشمل الغناء وكلمات الأغنية الموقّتة والتوزيعات الكاملة للآلات الموسيقية.\n\n### صِف اللحظة الموسيقية\n\nحدّد غرض المقطع والمزاج الذي ينبغي أن يحمله. ويمكن للحن افتتاحي قصير تحديد مقدمة هادئة ولحظة دخول واضحة؛ ويمكن لمقطع خلفية تحديد الإيقاع والملمس الصوتي اللازمين خلف مشهد مرئي. بيّن ما إذا كان ينبغي أن تتضمن النتيجة غناءً أم تكون موسيقى آلية، واذكر العناصر الموسيقية المهمة للموجز.\n\nاجعل البنية مناسبة لقِصر المقطع. حدّد الافتتاح والعبارة الموسيقية الرئيسية والنهاية أو نقطة التكرار. وإذا كانت الكلمات مهمة، فقدّم الفكرة الغنائية أو الصياغة المقصودة وافحص النتيجة المغنّاة الفعلية. وينبغي للموجز الموسيقي أن يميّز المحتوى الغنائي عن توجيهات التوزيع.\n\n### الإلهام من الصور والتوزيع\n\nعند تقديم صورة، اشرح المشهد أو المزاج الذي تضيفه إلى طلب الموسيقى. فالمنظر الطبيعي الهادئ والمشهد الليلي المزدحم يوحيان باتجاهين مختلفين، لكن ينبغي أن يظل الدور الشعوري المطلوب صريحًا في النص. واحتفظ بالصورة مع الوصف عند مقارنة المقطع المُعاد بالفكرة المقصودة.\n\nراجع التوازن بين الغناء والآلات والعبارة الموسيقية الرئيسية. وفي الحلقة، استمع إلى النهاية والبداية معًا؛ وفي المعاينة، تحقّق مما إذا كانت المدة القصيرة توصل الاتجاه المقصود. وينبغي مراجعة المقطع الذي يصاحب مونتاجًا في ضوء ذلك المونتاج، لا بمفرده فقط.\n\n### احتفظ بالملف الصوتي للاستماع\n\nاحفظ الصوت الفعلي وأي نص مصاحب مع الموجز. وافحص خصائص ملفه عند تجهيز التشغيل أو استيراده إلى محرّر، واحتفظ بأي معلومات لكلمات الأغنية أو التوقيت أعادها الطلب. والموسيقى هي مخرج النموذج؛ ويمكن ترتيب القصّات والعناوين والانتقالات المرئية والمزيج الإنتاجي النهائي حول هذا الأصل الذي جرى فحصه.\n\nيناسب ملف Clip Preview المحدد هذا ناتجًا موسيقيًا موجزًا. وحافظ على تمييز دوره في المقاطع القصيرة عند التخطيط لمؤلّفة أطول، واختر المقطع المُعاد بالاستماع إلى العبارة كاملةً والكلمات المغنّاة والنهاية.",
    "alias_of": null,
    "aliases": [],
    "author": "Google",
    "available": null,
    "canonical_model": "google/lyria-3-clip-preview",
    "capabilities": {
      "context_length": 1048576,
      "manufacturer_input": [
        "text",
        "image"
      ],
      "manufacturer_output": [
        "text",
        "audio"
      ]
    },
    "ctx": null,
    "entity_type": "model",
    "formats": [
      "music"
    ],
    "id": "google/lyria-3-clip-preview",
    "input": [
      "text"
    ],
    "kind": "music",
    "max_out": null,
    "methods": [
      {
        "cache_read": null,
        "cache_write": null,
        "cache_write_1h": null,
        "cache_write_5m": null,
        "conditional_meter": null,
        "contract": {
          "data": {
            "all_results": "Save/fetch every returned clip and preserve actual ID, MIME and metadata. The method is synchronous; no separate Ailoot music generationpollingURL is introduced.",
            "errors": [
              {
                "code": null,
                "condition": "حقول مطلوبة أو تمثيل مادة أو قيمة معلمة غير صحيحة",
                "http_status": 400,
                "recovery": "صحّح الحقول المحددة قبل طلب إنشاء جديد.",
                "type": "invalid_request_error"
              },
              {
                "code": null,
                "condition": "تشير الاستجابة المُعادة إلى أن العملية أو النتيجة تتطلب التحقق",
                "http_status": null,
                "recovery": "احتفظ بمعرّف العملية أو المهمة الأصلي المُعاد، وبترويسات الطلب وبالاستجابة؛ وواصل عمليات القراءة المدعومة لتلك العملية الأصلية. لا تُعِد إرسال طلب الإنشاء.",
                "type": "server_error"
              }
            ],
            "hints": [],
            "ignored_fields": [],
            "lifecycle": {
              "all_results": "Follow everyactualreturnedoutputandownedasset; no result is discardedbecauseindex0orcontent_urlalreadyexists.",
              "assets": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets"
                },
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}"
                }
              ],
              "content": [
                {
                  "http": "GET",
                  "path": "/v1/media/assets/{asset_id}/content",
                  "url_source": "exact returned signed URL; never construct token"
                }
              ],
              "mode": "synchronous_result_then_owned_library",
              "operation_id_is_not_task_id": true,
              "status": [
                {
                  "http": "GET",
                  "id_source": "actual returned task_id or media library record",
                  "path": "/v1/media/tasks/{task_id}"
                }
              ],
              "unknown": "إذا كانت نتيجة الموسيقى تتطلب التحقق، فاحتفظ بـoperation_id/X-Client-Request-ID الأصليين وبمعلومات المقاطع المُعادة. استعد المقاطع الموجودة المملوكة لك عبر مكتبة الوسائط باستخدام قيم task_id أو asset_id الفعلية. لا تعِد إرسال طلب الموسيقى، ولا تُنشئ عنوان URL للاستعلام عن التوليد انطلاقاً من operation_id."
            },
            "material_combinations": [
              {
                "content_type": "application/json",
                "mode": "text_to_music",
                "required": [
                  "prompt"
                ]
              }
            ],
            "media_library": {
              "asset": {
                "fields": [
                  {
                    "description": null,
                    "name": "asset_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "task_id",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "output_key",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "family",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "model",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "method",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "status",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "content_type",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "sha256",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "size_bytes",
                    "type": "integer"
                  },
                  {
                    "description": null,
                    "name": "content_url",
                    "type": "string"
                  }
                ],
                "http": "GET",
                "id_source": "actual returned asset_id",
                "path": "/v1/media/assets/{asset_id}"
              },
              "content": {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "range_header_supported": true,
                "url_source": "Use exact returned signed content_url including its token; do not construct a token."
              },
              "expired_link": {
                "code": "link_expired",
                "http_status": 404,
                "recovery": "Read the asset again to obtain its refreshed signed content_url, then fetch that URL. Do not regenerate."
              },
              "list": {
                "all_pages": "Follow every returned next_cursor, then select records by their actual task_id/output_key.",
                "http": "GET",
                "output_fields": [
                  {
                    "description": null,
                    "name": "object",
                    "type": "string"
                  },
                  {
                    "description": null,
                    "name": "data",
                    "type": "asset[]"
                  },
                  {
                    "description": null,
                    "name": "next_cursor",
                    "type": "string|null"
                  }
                ],
                "parameters": [
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "family",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": null,
                    "default_known": false,
                    "enum": null,
                    "enum_known": false,
                    "name": "cursor",
                    "required": false,
                    "type": "string"
                  },
                  {
                    "availability": "source_interface",
                    "default": 20,
                    "default_known": true,
                    "enum": null,
                    "enum_known": false,
                    "maximum": 100,
                    "minimum": 1,
                    "name": "limit",
                    "required": false,
                    "type": "integer"
                  }
                ],
                "path": "/v1/media/assets"
              },
              "revoke": {
                "http": "DELETE",
                "meaning": "Revokes/deletes the existing owned file; this is not generation cancellation.",
                "path": "/v1/media/assets/{asset_id}",
                "pending_status": "revoking",
                "success_statuses": [
                  202,
                  204
                ]
              },
              "task": {
                "http": "GET",
                "id_source": "actual returned task_id or media library record; operation_id is not task_id",
                "path": "/v1/media/tasks/{task_id}"
              }
            },
            "operation_modes": [
              "text_to_music"
            ],
            "outputs": {
              "all_results": "احفظ أو اجلب كل مقطع مُعاد، واحتفظ بالمعرّف الفعلي وMIME والبيانات الوصفية. الطريقة متزامنة؛ ولا يُستحدث عنوان URL منفصل للاستعلام عن حالة توليد الموسيقى في Ailoot.",
              "family": "music",
              "fields": [
                {
                  "description": null,
                  "name": "model",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "response_id",
                  "type": "string"
                },
                {
                  "description": null,
                  "name": "data[]",
                  "type": "owned clip record"
                }
              ],
              "format": "المقاطع الصوتية الكاملة المملوكة لك / روابط JSON"
            },
            "parameters": [
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": [
                  "google/lyria-3-clip-preview"
                ],
                "enum_known": true,
                "name": "model",
                "required": true,
                "type": "string"
              },
              {
                "availability": "source_interface",
                "default": null,
                "default_known": false,
                "enum": null,
                "enum_known": false,
                "min_length": 1,
                "name": "prompt",
                "required": true,
                "type": "string"
              }
            ],
            "profile_binding": "Exact existing Ailoot model and method; interface constraints below do not assert provider qualification.",
            "unsupported": []
          },
          "hints": [
            "بُنى الطرق ومعرّفاتها دقيقة؛ قدرة المورد منفصلة عن السماح بالطلب."
          ],
          "input": {
            "material_types": [
              "text"
            ],
            "optional_controls": null,
            "required": null
          },
          "lifecycle": {
            "assets": [
              {
                "http": "GET",
                "path": "/v1/media/assets"
              },
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}"
              }
            ],
            "content": [
              {
                "http": "GET",
                "path": "/v1/media/assets/{asset_id}/content",
                "url_source": "exact returned signed URL; never construct token"
              }
            ],
            "mode": "synchronous_result_then_owned_library",
            "operation_id_is_not_task_id": true,
            "status": [
              {
                "http": "GET",
                "id_source": "قيمة task_id الفعلية المُعادة أو سجل مكتبة الوسائط",
                "path": "/v1/media/tasks/{task_id}"
              }
            ],
            "unknown": "If a music result requires a check, keep the original operation_id/X-Client-Request-ID and returned clip information. Recover existing owned clips through the media library using actual task_id or asset_id values. Do not resubmit the music request or construct a generation polling URL from operation_id."
          },
          "method": {
            "http": "POST",
            "path": "/v1/music/generations"
          },
          "operation_modes": [
            "music"
          ],
          "output": {
            "family": [
              "music"
            ],
            "format": null,
            "multioutputs": "retain every actual response output"
          }
        },
        "ctx": null,
        "examples": [
          {
            "code": "set -eu\n: \"${AILOOT_API_KEY:?Set your Ailoot API key}\"\n: \"${AILOOT_PROMPT_FILE:?Set your actual UTF-8 music brief}\"\nexport AILOOT_PROMPT_FILE\npython3 - <<'PY_REQUEST'\nimport json,os\nfrom pathlib import Path\np=json.loads('{\"model\": \"google/lyria-3-clip-preview\", \"prompt\": \"\"}')\nf=Path(os.environ[\"AILOOT_PROMPT_FILE\"])\nif not f.is_file():raise SystemExit(\"Choose your actual UTF-8 brief\")\np['prompt']=f.read_text(encoding=\"utf-8\")\nif not p['prompt'].strip():raise SystemExit(\"Brief must contain text\")\nPath(\"request.json\").write_text(json.dumps(p,ensure_ascii=False))\nPY_REQUEST\ncurl --fail-with-body --silent --show-error https://api.ailoot.ai/v1/music/generations \\\n  -H \"Authorization: Bearer $AILOOT_API_KEY\" -H 'Content-Type: application/json' \\\n  --data-binary @request.json -D response-headers.txt -o result.json\nexport AILOOT_API_KEY\npython3 - <<'PY_RESULT'\nimport json, os, subprocess\nfrom pathlib import Path\nfrom urllib.parse import urljoin, urlparse\nresult=json.loads(Path(\"result.json\").read_text(encoding=\"utf-8\"))\nprint(json.dumps(result,ensure_ascii=False,indent=2))\nfor number,clip in enumerate(result.get(\"data\") or []):\n    u=urlparse(urljoin(\"https://api.ailoot.ai\",clip[\"url\"]))\n    if u.scheme!=\"https\" or not u.hostname or u.username or u.password:\n        raise SystemExit(\"Result URL must be HTTPS without embedded credentials\")\n    owned=u.netloc==\"api.ailoot.ai\" and u.path.startswith(\"/v1/media/assets/\") and u.path.endswith(\"/content\")\n    args=[\"curl\",\"--fail-with-body\",\"--silent\",\"--show-error\",u.geturl()]\n    if owned: args += [\"-H\",\"Authorization: Bearer \"+os.environ[\"AILOOT_API_KEY\"]]\n    raw=subprocess.check_output(args)\n    ext=\"wav\" if raw.startswith(b\"RIFF\") and raw[8:12]==b\"WAVE\" else \"flac\" if raw.startswith(b\"fLaC\") else \"ogg\" if raw.startswith(b\"OggS\") else \"mp3\" if raw.startswith(b\"ID3\") or raw[:1]==b\"\\xff\" else \"bin\"\n    f=Path(\"music-\"+str(number)+\".\"+ext);f.write_bytes(raw)\n    print(\"Saved\",f,clip.get(\"asset_id\"))\n\nPY_RESULT\n",
            "label": "Compose from your actual music brief",
            "language": "bash"
          }
        ],
        "family": "openai",
        "fast_multiplier": null,
        "flex_multiplier": null,
        "fmt": "music",
        "http": "POST",
        "img_in": null,
        "img_out": null,
        "in": null,
        "input": [
          "text"
        ],
        "label": "الموسيقى",
        "max_out": null,
        "max_tool_calls": null,
        "out": null,
        "output": [
          "music"
        ],
        "path": "/v1/music/generations",
        "pricing_profiles": [
          {
            "dimensions": {},
            "label": "Core",
            "units": [
              {
                "amount": 0.04,
                "amount_unit": "usd_per_display_unit",
                "key": "music_output_clip",
                "label": "per clip",
                "side": "out"
              },
              {
                "amount": 0.04,
                "amount_unit": "usd_per_display_unit",
                "key": "per_request",
                "label": "per request",
                "side": "out"
              }
            ]
          }
        ],
        "request_model_id": "google/lyria-3-clip-preview",
        "route_label": "Core",
        "status_reads": [],
        "tiers": [],
        "tool_prices": null,
        "unit": "music_output_clip",
        "units": [
          {
            "key": "music_output_clip",
            "label": "per clip",
            "side": "out",
            "usd": 0.04
          },
          {
            "key": "per_request",
            "label": "per request",
            "side": "out",
            "usd": 0.04
          }
        ]
      }
    ],
    "model_aliases": [
      {
        "canonical_model_id": "google/lyria-3-clip-preview",
        "request_model_id": "google/lyria-3-clip-preview",
        "route_label": "Core"
      }
    ],
    "name": "Lyria 3 Clip Preview",
    "price": {
      "in": null,
      "in_label": null,
      "out": 0.04,
      "out_label": "per clip",
      "sort_in": null,
      "sort_out": null,
      "varies": false
    },
    "pricing_profiles": [
      {
        "applicability": {
          "client_selectable": false,
          "native_profile_selection_pending": true,
          "scope": "manufacturer_reference"
        },
        "dimensions": {
          "context_condition": {},
          "service_tier": "standard"
        },
        "label": "Ultra",
        "units": [
          {
            "amount": "0.08",
            "amount_unit": "usd_per_song",
            "conditions": {
              "context_condition": {},
              "service_tier": "standard"
            },
            "key": "music",
            "label": "music",
            "profile_index": 0,
            "quantity": "1",
            "rate_role": "binding_component_rate",
            "side": "out",
            "unit": "song"
          }
        ]
      }
    ],
    "public_id": "google/lyria-3-clip-preview",
    "short": "Lyria 3 Clip Preview هو نموذج الموسيقى من Google للمقاطع القصيرة والحلقات والمعاينات. يستلهم من النص أو الصور، وينتج موسيقى مدتها 30 ثانية بصوت ستيريو بتردد 48 kHz، مع دعم الغناء وكلمات الأغنية الموقّتة والتوزيعات الموسيقية الآلية."
  },
  "renderer_schema": {
    "method_order": "Original DTO methods order; every exact route/format/path/caller survives.",
    "prices": "Original public DTO fields and original native display HTML; no flattened or normalized offers."
  },
  "representation": "exact-public-dto-and-native-renderer-html",
  "representationNotes": {
    "current_reference": {
      "about_json_pointer": "/aboutHtml",
      "methods": [
        {
          "contract_json_pointer": "/methods/0/rawMethod/contract",
          "html_json_pointer": "/methods/0/html",
          "method_ordinal": 0
        }
      ],
      "role": "current-semantic-reference"
    },
    "raw_input": {
      "examples_role": "historical-input-not-current-ready-examples",
      "json_pointers": [
        "/rawModel",
        "/methods/0/rawMethod"
      ],
      "role": "historical-owner-input"
    },
    "schema": "ailoot-native-model-representations-v1"
  },
  "schema": "ailoot-static-model-facts-v1",
  "schema_version": 1,
  "shortText": "Lyria 3 Clip Preview هو نموذج الموسيقى من Google للمقاطع القصيرة والحلقات والمعاينات. يستلهم من النص أو الصور، وينتج موسيقى مدتها 30 ثانية بصوت ستيريو بتردد 48 kHz، مع دعم الغناء وكلمات الأغنية الموقّتة والتوزيعات الموسيقية الآلية.",
  "source": {
    "audit_sha256": "2e00086bcbfc28e64d0cebe97aa47c17d8d5618963027f8ffb9dc6123d7d25b1",
    "bridge_map_sha256": "1125275768b9636fc8461bc7da5061239a81ddfe508e2557843ca42c58ab0036",
    "raw_model_json_sha256": "ee8ca588f4ddc7ccfb40ec18aa571714f43c752a9035b2dc86ed44e63e133b8a",
    "renderer_sha256": "081ee0fd5b6b1b60564b02c52d62547e01e922c8c0a16e91a0d055073e76a10e"
  },
  "sourceRevision": "46c7346209e43296058fe9e48626c3e1a60c1537f16e22acb53bac0dd8c1aa36"
}
