Легковесный десктопный клиент YouTube Music для Windows. Написан на .NET 10 и Avalonia UI. Главная цель проекта — экстремальная оптимизация ресурсов (CPU/RAM/Сеть). В отличие от официального PWA и Electron-клиентов, LMP потребляет в среднем 235 МБ RAM (в свернутом виде падает до 180 МБ).
- Свой аудио-пайплайн: Отказ от LibVLC. Используется связка
NAudio+Concentus(Opus) /SharpJaad(AAC) с ручным управлением PCM-буферами. - Умный стриминг: Треки грузятся чанками с упреждающим чтением. Мгновенный старт без ожидания полной загрузки.
- Агрессивный кэш: Двойное кэширование (RAM + Диск) аудио, изображений и результатов поиска.
- YT-Bypass: Встроенные C#-дешифраторы
sigиn-token, обход bot-detection через ротацию клиентов (Android VR, Web, iOS). - Offline-First БД: SQLite + EF Core с поддержкой полнотекстового поиска (FTS5).
Проект в активной разработке. Базовый фундамент готов, идет наращивание UI-фич.
Что уже работает:
- Воспроизведение треков напрямую с серверов YouTube
- Многопоточное кэширование аудио и обложек
- Поиск по базе YT Music и локальной библиотеке
- Управление плейлистами с ютуба и локально
- Авторизация через Google Cookies (SAPISID)
- Двусторонняя синхронизация лайков и плейлистов
- История прослушиваний (Recently Played)
- Мониторинг памяти и управление GC
| Статус | Фича | Описание |
|---|---|---|
| 🔄 | Радио (Mixes) | Генерация бесконечного плейлиста "Похожее" на основе текущего трека. |
| 📅 | Глобальные хоткеи | Управление плеером в фоновом режиме. |
| 🚀 | Эквалайзер | Базовый 5-полосный EQ (интеграция в пайплайн NAudio). |
| 🚀 | Импорт плейлистов | Парсинг и перенос ссылок из Spotify/Apple Music. |
| 🚀 | Главная страница с рекомендациями | Персонализированная подборка треков, альбомов и артистов (Как любимый Youtube Music). |
Требования:
- Windows 10/11 (x64)
- .NET 10.0 SDK
Быстрый старт из консоли:
git clone https://github.com/Scream034/LMP.git
cd LMP
dotnet run --project LMP.csproj -c DebugСкрипты сборки (в корне проекта):
build.bat debug— обычная сборка с Hot Reload.build.bat optimized— Debug-сборка с оптимизациями компилятора (для тестов производительности).build.bat release— релизная сборка.build.bat publish— собирает Portable-версию (Self-Contained) в папкуpublishи пакует в.7z(не требует установленного .NET на ПК).build.bat clean— очисткаbin/obj.
Если вы хотите помочь с разработкой или протестировать аудио-пайплайн:
В Debug конфигурации нажмите F9 для открытия окна отладки (состояние кэшей, принудительный GC) или F10 для запуска интеграционных тестов дешифраторов без UI.