প্রকল্প সম্পর্কে

Limusic হল YouTube Music-এর জন্য একটি নেটিভ ডেস্কটপ ক্লায়েন্ট, যা Tauri 2, Rust এবং একটি SvelteKit সিঙ্গেল-পেজ UI দিয়ে নির্মিত। এটি সরাসরি YouTube-এর অভ্যন্তরীণ API-এর সাথে যোগাযোগ করে এবং libmpv-এর মাধ্যমে অডিও চালায়, তাই কোনো বান্ডেল করা ব্রাউজার রানটাইম, কোনো ব্যাকএন্ড সার্ভার এবং কোনো Electron নেই। প্রকল্পটি শুরু হয়েছিল Metrolist-এর পেছনের প্লেব্যাক ইঞ্জিনের একটি ডেস্কটপ পুনর্নির্মাণ হিসেবে, যা একটি Android YouTube Music ক্লায়েন্ট। প্লেব্যাক এবং লাইব্রেরি স্ট্রিমগুলো YouTube-এর API থেকে আসে এবং বিজ্ঞাপন চালানো হয় না। সার্চ এবং ব্রাউজিং গান, অ্যালবাম, শিল্পী, প্লেলিস্ট এবং YouTube Music হোম ফিড কভার করে, টাইপ করার সাথে সাথে ফলাফল প্রিভিউ হয়। ব্যবহারকারীরা অ্যাপ-মধ্যস্থ Google লগইন বা কুকি পেস্ট করে YouTube Music অ্যাকাউন্ট দিয়ে সাইন ইন করতে পারেন এবং একসাথে একাধিক অ্যাকাউন্ট রাখতে পারেন সুইচিংসহ। লাইব্রেরি ভিউ প্লেলিস্ট, পছন্দ করা গান, সংরক্ষিত অ্যালবাম ও শিল্পী, আপলোড এবং লেখার কাজ যেমন লাইক দেওয়া, প্লেলিস্টে যোগ করা, কভার আর্টসহ প্লেলিস্ট তৈরি, সম্পাদনা ও মুছে ফেলা, সাবস্ক্রাইব করা এবং লাইব্রেরিতে সংরক্ষণ করা দেখায়। প্লে হিস্ট্রি YouTube Music-এর নিজস্ব দিন-ভিত্তিক বাকেটে রাখা হয়। লাউডনেস নরমালাইজেশনসহ গ্যাপলেস প্লেব্যাক libmpv দ্বারা পরিচালিত হয় এবং কিউ রেডিও/অটোমিক্স ধারাবাহিকতা, ড্র্যাগ-টু-রিঅর্ডার এবং রিস্টার্টের পর পুনরুদ্ধার সমর্থন করে। স্থানীয় অডিও ফাইলও তাদের মেটাডেটা অক্ষত রেখে চালানো যায়। ইন্টারফেস এবং ইন্টিগ্রেশন সিঙ্ক করা লিরিক্স একটি সাইড প্যানেলে অটো-স্ক্রল এবং ক্লিক-টু-জাম্পসহ দেখা যায়, যেখানে উৎস টাইমিং প্রদান করলে শব্দে শব্দে, প্রতিটি লাইনের নিচে অনুবাদসহ। লিরিক্স প্রথমে Boidu থেকে আনা হয়, তারপর LRCLIB, YouTube Music-এর টাইম করা লিরিক্স, Netease, QQ Music এবং Kugou থেকে, সাধারণ টেক্সটে ফলব্যাক করে এবং ফলাফল স্থানীয়ভাবে ক্যাশ করা হয়। ঐচ্ছিক মিউজিক ভিডিও আর্টওয়ার্কের জায়গায় চলে। একটি মিনি প্লেয়ার এবং থিয়েটার মোড উপলব্ধ। Last.fm স্ক্রোবলিং টাইটেল বার থেকে সংযুক্ত হয় এবং অর্ধেক পয়েন্ট বা চার মিনিটে, যেটি আগে আসে, স্ক্রোবল করে। Discord Rich Presence ট্র্যাক, শিল্পী, আর্টওয়ার্ক এবং একটি প্রগ্রেস বার দেখায়। OS মিডিয়া কী এবং নাউ-প্লেয়িং ইন্টিগ্রেশন Linux-এ MPRIS এবং Windows-এ SMTC-এর মাধ্যমে সমর্থিত, সাথে টাস্কবার প্রিভিউ বাটন। একটি সিস্টেম ট্রে উইন্ডো বন্ধ হলে প্লেব্যাক চালু রাখে, প্লে/পজ এবং স্কিপ কন্ট্রোল এবং ঐচ্ছিক স্টার্ট-অন-লগইনসহ। Listen Together একটি ছোট সেলফ-হোস্টেড রিলের মাধ্যমে সিঙ্ক করা শোনার রুম প্রদান করে; প্রতিটি অংশগ্রহণকারী নিজের অডিও স্ট্রিম করে যখন রুম প্লে/পজ, সিক, ট্র্যাক পরিবর্তন এবং কিউ রিলে করে, জয়েন কোড এবং হোস্ট অনুমোদনসহ। কীবোর্ড শর্টকাটে সার্চের জন্য Ctrl+K এবং শর্টকাট তালিকার জন্য Ctrl+H অন্তর্ভুক্ত, এবং Ctrl প্লাস হুইল ইন্টারফেস জুম করে। কাস্টমাইজেশন এবং ভাষা অ্যাপটি অ্যাকসেন্ট প্যালেট, কাস্টম রং, কাস্টম ফন্ট, কোণার গোলাকারতা, একটি কাস্টম অ্যাপ আইকন এবং একটি অ্যাডাপ্টিভ থিম অফার করে যা চলমান কভার থেকে রং পরিবর্তন করে। বর্তমানে ছয়টি ভাষা শিপ করা হয়: ইংরেজি, স্প্যানিশ, ফরাসি, তুর্কি, ব্রাজিলীয় পর্তুগিজ এবং ইন্দোনেশিয়ান, আরও ভাষা প্রক্রিয়াধীন। অনুবাদগুলো পুল রিকোয়েস্টের পরিবর্তে Weblate-এ পরিচালিত হয়। প্ল্যাটফর্ম এবং প্যাকেজিং Windows (সেলফ-আপডেটসহ setup.exe, বা .msi), Linux (বান্ডেল করা libmpvসহ সেলফ-আপডেটিং AppImage, .deb, .rpm) এবং macOS Apple Silicon (.dmg, আনসাইনড)-এর জন্য বিল্ড উপলব্ধ। Intel macOS বিল্ড সোর্স থেকে করা হয়। Arch AUR, Fedora COPR এবং openSUSE Tumbleweed-এর জন্য কমিউনিটি-রক্ষণাবেক্ষণ করা প্যাকেজ বিদ্যমান। সোর্স থেকে বিল্ড করতে libmpv এবং webkit2gtk ডেভেলপমেন্ট প্যাকেজ, UI-এর জন্য pnpm এবং Rust সাইডের জন্য Cargo/Tauri প্রয়োজন। সোর্স থেকে বিল্ড করার সময় Last.fm ইন্টিগ্রেশনের জন্য ডেভেলপারের নিজস্ব API কী এবং সিক্রেট src-tauri/lastfm.keys-এ প্রয়োজন; সেই ফাইল ছাড়া বাকি অংশ এখনও বিল্ড ও চলে। আর্কিটেকচার নোট একটি বিশুদ্ধ Rust ক্রেট YouTube-এর InnerTube API-তে কথা বলে, একাধিক অফিসিয়াল ক্লায়েন্ট আইডেন্টিটি নকল করে এবং তাদের মধ্যে ফলব্যাক করে। স্ট্রিম URLগুলো অস্পষ্ট JavaScript (সিগনেচার সাইফার এবং n প্যারামিটার) এবং BotGuard অ্যাটেস্টেশন দ্বারা সুরক্ষিত; Limusic সেই JavaScript একটি লুকানো বাস্তব ওয়েবভিউতে চালায় যা UI প্রক্রিয়া থেকে বিচ্ছিন্ন। অডিও libmpv-এর মাধ্যমে একটি অন-ডিস্ক ক্যাশসহ যায়। SvelteKit UI শুধুমাত্র Rust কোরের সাথে কথা বলে এবং কখনো সরাসরি YouTube-এর সাথে যোগাযোগ করে না। প্রকল্পটি GPL-3.0 লাইসেন্সপ্রাপ্ত এবং বলে যে এটি YouTube বা Google-এর সাথে সম্পর্কিত নয়।