عن المشروع

Limusic هو عميل سطح مكتب أصلي لـ YouTube Music، مبني باستخدام Tauri 2 وRust وواجهة SvelteKit أحادية الصفحة. يتواصل مباشرةً مع واجهة YouTube الداخلية ويشغّل الصوت عبر libmpv، لذا لا توجد بيئة متصفح مضمّنة، ولا خادم خلفي، ولا Electron. بدأ المشروع كإعادة بناء لسطح المكتب لمحرك التشغيل وراء Metrolist، وهو عميل YouTube Music لنظام Android. التشغيل والمكتبة تأتي التدفقات من واجهة YouTube ولا يتم تشغيل الإعلانات. يغطي البحث والتصفح الأغاني والألبومات والفنانين وقوائم التشغيل وموجز YouTube Music الرئيسي، مع معاينة النتائج أثناء الكتابة. يمكن للمستخدمين تسجيل الدخول بحساب YouTube Music عبر تسجيل دخول Google داخل التطبيق أو بلصق ملفات تعريف الارتباط، ويمكنهم الاحتفاظ بعدة حسابات في وقت واحد مع التبديل بينها. يعرض قسم المكتبة قوائم التشغيل والأغاني التي أعجبتك والألبومات والفنانين المحفوظين والتحميلات، وإجراءات الكتابة مثل الإعجاب والإضافة إلى قوائم التشغيل وإنشاء قوائم التشغيل وتحريرها وحذفها بما في ذلك صورة الغلاف والاشتراك والحفظ في المكتبة. يُحتفظ بسجل التشغيل في مجموعات YouTube Music اليومية الخاصة به. يتولى libmpv التشغيل دون فواصل مع تسوية مستوى الصوت، وتدعم قائمة الانتظار استمرار الراديو/المزيج التلقائي وإعادة الترتيب بالسحب والاستعادة عبر عمليات إعادة التشغيل. يمكن أيضًا تشغيل ملفات صوتية محلية مع الحفاظ على بياناتها الوصفية. الواجهة والتكاملات تظهر كلمات الأغاني المتزامنة في لوحة جانبية مع تمرير تلقائي والنقر للانتقال، كلمة بكلمة حيث يوفر المصدر التوقيتات، مع ترجمات تحت كل سطر. يتم جلب كلمات الأغاني من Boidu أولاً، ثم LRCLIB، وكلمات YouTube Music الموقوتة، وNetease، وQQ Music، وKugou، مع الرجوع إلى نص عادي، وتُخزَّن النتائج مؤقتًا محليًا. تُشغَّل فيديوهات موسيقية اختيارية حيث يظهر الغلاف. يتوفر مشغل مصغّر ووضع المسرح. يتصل Last.fm scrobbling من شريط العنوان ويسجّل عند منتصف المدة أو أربع دقائق، أيهما يأتي أولاً. يعرض Discord Rich Presence المقطع والفنان والغلاف وشريط تقدم. تُدعم مفاتيح الوسائط في نظام التشغيل وتكامل الآن قيد التشغيل عبر MPRIS على Linux وSMTC على Windows، بالإضافة إلى أزرار معاينة شريط المهام. يحافظ رمز شريط النظام على التشغيل عند إغلاق النافذة، مع عناصر تحكم التشغيل/الإيقاف والتخطي وخيار بدء التشغيل عند تسجيل الدخول. يوفر Listen Together غرف استماع متزامنة عبر مرحّل صغير مستضاف ذاتيًا؛ يبث كل مشارك صوته الخاص بينما ينقل المرحّل التشغيل/الإيقاف والانتقالات وتغييرات المقاطع وقائمة الانتظار، مع رموز الانضمام وموافقة المضيف. تشمل اختصارات لوحة المفاتيح Ctrl+K للبحث وCtrl+H لقائمة الاختصارات، وCtrl مع عجلة التمرير لتكبير الواجهة. التخصيص واللغات يوفر التطبيق لوحات ألوان مميزة وألوانًا مخصصة وخطوطًا مخصصة واستدارة الزوايا وأيقونة تطبيق مخصصة وسمة تكيفية تعيد التلوين من غلاف التشغيل. تتوفر ست لغات اليوم: الإنجليزية والإسبانية والفرنسية والتركية والبرتغالية البرازيلية والإندونيسية، مع المزيد قيد الإنجاز. تُدار الترجمات على Weblate بدلاً من طلبات السحب. المنصات والتغليف تتوفر إصدارات لـ Windows (setup.exe مع التحديث الذاتي، أو .msi)، وLinux (AppImage ذاتي التحديث مع libmpv مضمّن، و.deb، و.rpm)، وmacOS Apple Silicon (.dmg، غير موقّع). إصدارات Intel macOS تُبنى من المصدر. توجد حزم يحتفظ بها المجتمع لـ Arch AUR وFedora COPR وopenSUSE Tumbleweed. يتطلب البناء من المصدر حزم تطوير libmpv وwebkit2gtk، وpnpm للواجهة، وCargo/Tauri لجانب Rust. يحتاج تكامل Last.fm عند البناء من المصدر إلى مفتاح API وسر المطوّر الخاصين به في src-tauri/lastfm.keys؛ وبدون هذا الملف يظل الباقي يُبنى ويعمل. ملاحظات معمارية تتحدث حزمة Rust خالصة مع واجهة InnerTube الخاصة بـ YouTube، وتنتحل هوية عدة عملاء رسميين وتتنقل بينهم. تتم حماية عناوين URL للتدفق عبر JavaScript مشوّش (شفرة التوقيع ومعامل n) وتصديق BotGuard؛ يشغّل Limusic هذا JavaScript في webview حقيقي مخفي معزول عن عملية الواجهة. يمر الصوت عبر libmpv مع ذاكرة تخزين مؤقت على القرص. تتحدث واجهة SvelteKit فقط مع نواة Rust ولا تتصل بـ YouTube مباشرة. المشروع مرخّص بموجب GPL-3.0 ويذكر أنه غير تابع لـ YouTube أو Google.