Об этом проекте

LastWave — это открытый нативный музыкальный клиент для Android, который осуществляет потоковую передачу из публичного каталога YouTube Music. Он построен на Kotlin и Jetpack Compose с использованием дизайна Material 3 Expressive, а в его README указано, что проект предназначен для исследовательских и образовательных целей. Основные возможности, описанные в README: - Клиент YouTube Music: просмотр и потоковая передача треков, альбомов, исполнителей и публичных плейлистов, с фоновым воспроизведением и без рекламы. - Генератор умных плейлистов: алгоритмические миксы по вкусам и радио по настроению на основе истории прослушиваний, исполнителей-ориентиров, любимых треков и топ-жанров. - Универсальный скробблер Last.fm: отслеживает воспроизведение в таких приложениях, как YouTube Music, Spotify, Apple Music и локальных плеерах, используя нативное отслеживание медиасессий ОС. - Синхронизированные тексты в реальном времени: анимированные караоке-тексты с миллисекундной синхронизацией из LRCLIB, с несколькими настраиваемыми стилями анимации. - Офлайн-загрузчик: загрузки в одно касание сохраняются в локальное хранилище в папке Music/LastWave, с обложками и текстами в формате .lrc. - Лента открытий и жанровая ДНК: персонализированные рекомендации, разбивка по жанрам, еженедельные итоги прослушивания и мгновенные радио-миксы. - Кроссплатформенный импорт плейлистов: импорт публичных плейлистов из Spotify и Apple Music. - Социальная лента: отслеживание активности друзей через Last.fm, просмотр недавних скробблов и топ-треков. - Темы оформления: динамические темы на основе обоев, собственный движок палитры HSL, извлечение цветов из обложек альбомов, анимации и тактильная отдача. Технический стек: 100% Kotlin с Jetpack Compose; AndroidX Media3 ExoPlayer для аудио с управлением с экрана блокировки и Android Auto; потоковая передача аудио Opus; API Last.fm; LRCLIB для текстов; MVVM с Clean Architecture, Room, Jetpack DataStore, Dagger Hilt, Coroutines и Flow. Начало работы: скачайте последний APK со вкладки Releases или Actions, установите на Android 7.0+ и при желании подключите аккаунт Last.fm в настройках, чтобы включить скробблинг, миксы по вкусам и радар открытий. Сборка из исходного кода выполняется стандартной командой Gradle (./gradlew assembleRelease). README содержит отказ от ответственности: проект независим и не связан с Google, YouTube, YouTube Music, Spotify, Apple или Last.fm, а также не размещает и не распространяет защищённый авторским правом контент; доступ к контенту осуществляется через публичные конечные точки.