LINUX.ORG.RU

CloudMus — новый кроссплатформенный открытый плеер для Яндекс Музыки и YouTube Music

 , yandex music, youtube music,


6

3

Встречайте CloudMus. Это музыкальный проигрыватель для Linux и Windows, который собирает в одном окне Яндекс Музыку, YouTube Music и музыку из локальной папки. У всех источников одна очередь, одна история и одинаковое управление.

Автора замучили плееры-обёртки сайтов на Electron, которые тормозят, выжирают память и батарею ноутбука, автор вынашивал эту идею 10 лет, теперь с Клодом может себе это позволить ). Плеер написан на C++20/Qt 6, звук играет через libmpv, распространяется под лицензией MIT. Для Linux есть AppImage, для Windows – инсталлятор.

Кроме привычных функций плеера, сделан максимальный упор на визуал, в нём есть стеклянный интерфейс с настоящим размытием фона на KDE Plasma, Wayland-композиторах и Windows 11, своя визуальная тема, плавные анимации для поддержки мониторов >60Hz, а также глобальные хоткеи на все основные действия, включая лайк, дизлайк и скачивание трека. Хоткеи работают в KDE, GNOME 48+, на X11 и в Windows. Ещё есть полноценная поддержка MPRIS (Linux) и SMTC (Windows), скачивание треков и плейлистов, предзагрузка следующего трека и отдельный прокси для каждого сервиса: например, YouTube Music через прокси, а Яндекс Музыка напрямую.

Текущая версия проекта — 0.6.1.

Источники

  • Яндекс Музыка: вход по коду на сайте Яндекса. Доступны библиотека, лайки, плейлисты с редактированием, «Моя волна» и станции, а также персональные подборки: «Плейлист дня», «Дежавю», «Премьера», «Тайник».
  • YouTube Music: библиотека, лайки, плейлисты, миксы (My Supermix, My Mix 1–7, Discover, Replay) и радио от трека. Вход пока неудобный: нужно вставить заголовки запроса или cURL-команду из залогиненной сессии браузера, потому что штатный вход Google через устройство сейчас сломан в ytmusicapi. Это временное решение, см. планы.
  • Локальная папка: по умолчанию xdg-user-dir MUSIC. Подпапки и M3U показываются как плейлисты, обложки и теги читаются из файлов.

Возможности

  • стеклянный фон: настоящее размытие на KDE Plasma и Wayland-композиторах со стандартным протоколом blur, акрил на Windows 11, на GNOME — прозрачность с расширением вроде Blur my Shell;
  • настраиваемые глобальные хоткеи на воспроизведение, переключение треков, перемотку, громкость, лайк, дизлайк, скачивание, показ окна плеера и тихий режим;
  • общая очередь и история для треков из разных источников;
  • настройка уникальности проигрывания, борется с частыми повторами одного и того же трека в радио плейлистах;
  • лайки и дизлайки синхронизируются с аккаунтом сервиса, трек можно добавить в свои плейлисты или убрать из них;
  • предзагрузка нескольких следующих треков в кэш, без паузы при переключении;
  • скачивание треков и целых плейлистов в локальную папку с тегами, с раскладкой по источнику, исполнителю или альбому. Для копирастов скачивание по умолчанию отключено и включить её пользователь может только подтвердив, что он не будет пиратить;
  • MPRIS (Linux) и SMTC (Windows) с перемоткой, громкостью, shuffle и repeat;
  • трей, уведомления с обложкой, автозапуск, автопроигрывание с места последней остановки;
  • отдельный HTTP/SOCKS5-прокси для каждого источника, через прокси идут и потоки, и обложки. В России это особенно полезно: YouTube Music можно пустить через прокси, а Яндекс Музыку оставить напрямую, и не придётся включать VPN на всю систему или переключать его туда-сюда;
  • тихий режим с хоткеем: громкость плавно опускается до заданного уровня без паузы, удобно для звонков и игр;
  • восстановление последнего плейлиста и трека при запуске;
  • светлая и тёмная темы, интерфейс на русском, английском, немецком, французском, испанском, итальянском и белорусском.
  • удобная система обновлений, сама проверяет новую версию при старте, скачивает, ставит и перезапускает, при этом музыка продолжит играть с того места где остановилась. Конечно, апдейт можно пропустить;
  • терминальный фронтенд плеера (без Qt), можно гонять в консольке (но пока он не сильно развит).

Поиска по каталогам сервисов пока нет.

Архитектура

Каждый музыкальный сервис подключается через бэкенд, который работает в отдельном процессе и общается с интерфейсом по JSON-RPC через stdin/stdout. Сейчас все бэкенды написаны на Python.

Это не окончательная архитектура. Сторонний бэкенд сейчас выполняется с правами пользователя, а значит, для конечных пользователей такая схема небезопасна. Паланируется, что бэкенды будут переведены на JavaScript и станут работать в песочнице на QuickJS. Появится онлайн-каталог, из которого бэкенды можно будет ставить прямо из приложения.

Планы

Помимо бэкендов для других сервисов (SoundCloud, VK Музыка, Spotify, Deezer, Bandcamp, Apple Music, TuneIn, Звук), запланировано:

  • удобная авторизация через встроенный браузер: обычный вход в аккаунт сервиса в окне плеера, без копирования заголовков и cURL-команд;
  • полноценный офлайн-режим: без интернета плеер будет быстро стартовать и работать с тем, что есть в кэше. Это важно для использования в машине. Сейчас режим реализован, но частично;
  • версия для macOS;
  • фронтенд на QML для Android и Android TV, плюс отдельная адаптация интерфейса под автомобильные магнитолы на Android. Порт на iOS пока не планируется: писать и публиковать под неё слишком хлопотно. Проект открытый, так что если кто-то захочет портировать, буду рад;
  • обнаружение и пропуск музыки, сгенерированной ИИ (реально задолбала уже всех вокруг);
  • поддержка радиосервисов с нарезкой эфира на треки и их сохранением;
  • визуализации MilkDrop из Winamp через projectM, чтобы можно было устроить крутую домашнюю дискотеку под винишко;
  • конечно же, больше красивых анимаций и автоматический режим экономии батареи, который их будет душить.

Телеметрия

В плеере есть анонимная телеметрия: Google Analytics и Sentry для отчётов о падениях. Мне она нужна, чтобы находить и исправлять ошибки, видеть, что люди пользуются плеером, и радоваться этому. Если вам это не нравится, отключите её в настройках.

Установка

Нужен x86_64 и glibc 2.31 или новее, то есть Debian 11, Ubuntu 20.04, Fedora 32, openSUSE Leap 15.3 и более свежие. AppImage скачивается со страницы релизов:

chmod +x CloudMus-*-x86_64.AppImage
./CloudMus-*-x86_64.AppImage

При первом запуске плеер добавляет себя в меню приложений. Если AppImage ругается на FUSE, поставьте libfuse2 (на Ubuntu 24.04+ это libfuse2t64) или запустите с ключом --appimage-extract-and-run. Обновления ставятся из самого приложения.

Пакетов для дистрибутивов пока нет. Если кто-то возьмётся собрать пакет, помогу. Для сборки из исходников нужны Qt 6, CMake ≥ 3.21, компилятор с поддержкой C++20, libmpv и Python ≥ 3.11. Подробности в руководстве разработчика.

>>> CloudMus — новый кроссплатформенный открытый плеер для Яндекс Музыки и YouTube Music

★★

Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 13)
Ответ на: комментарий от GPFault

Разница в том что слоп закладывает массивный технический долг, причем долг который ты не можешь контролировать и контекстом которого ты не владеешь. Если отдать на откуп ЛЛМ всю цепочку проектирования, кодирования, тестирования и принимать результат в слепую, то в конечном результате ты получешь черный ящик который по end-user функционалу возможно и будет удволетворять пользователя (что мало вероятно) то вот в long-term перспективе окажется что дальнешие развитие просто не возможно. Именно это я и вижу во всех проектах которые были инициированы AI интузиастами. И мне честно наплевать на то будет ли ПО удволеворять 100% конечных пользователей, в целом это некогда не было возможным и я не знаю никого ктобы всерьез ставил такую цель. А вот тот факт будет ли автор несмотря на потенциальную потерю помогатора в лице ЛЛМ продолжать своими силами поддерживать проект и развивать его это важно. Так же важно чобы его по не снесло мне нахрен всю систму или не добавило иных проблем всилу того что автор понятия не имеет о том что его по вообще делает.

И того - СЛОП, это не про продуманност с точки зрения UI/UX (хотя это и учитывается), а скорее про общий уровень доверия пользователя к автору, его компетенции и его способности нести ответсвенность за то что он выпускает. Тоесть вопрос не в абстрактном нравится/не нравится, а в полне конкретных метриках.

Valor ★
()
Ответ на: комментарий от Valor

Разница в том что слоп закладывает массивный технический долг

А если LLM всё ближе к тому чтобы писать код как хороший программист?

дальнешие развитие просто не возможно

Для дальнейшего развития, как мы видим - LLM может и бинарные файлы редактировать, что я уже и делал - просил в игру добавить разрешение которого не было - он ковырялся в exe без исходников.

общий уровень доверия пользователя

https://ru.wikipedia.org/wiki/Катастрофа_A320_под_Динь-ле-Беном

vitaly-zdanevich
()
Ответ на: комментарий от vitaly-zdanevich

А если LLM всё ближе к тому чтобы писать код как хороший программист?

Мне кажется уже она пишет лучше меня 😬 Ну да проверять конечно надо, как и любого другого разраба, так как телепатией пока не обладает и кое-что сама додумывает.

navrocky ★★
() автор топика
Последнее исправление: navrocky (всего исправлений: 1)

Тут вот так пишут и про говнокод, и про тех. долг.. Как-будто мясные кодеры только хороший код пишут и тех.долг не плодят… Но я на такого насмотрелся в проектах, которые писали «крутые сеньоры» порой, чего видеть никогда не хотелось бы и что мне ни одна LLM пока ни разу не показала.

По-моему LLM позволяет именно уменьшить обе вышеописанные проблемы. Тех.долг плодится в разработке либо от нехватки времени, либо от лени. И вот проблему нехватки времени LLM решает - разработчик может больше времени уделить проектированию и продумыванию, а не самому кодингу. Я с агентами большую часть времени трачу на проработку фичей, создание ADR и спецификаций, а потом, когда меня всё устраивает, говорю «делай» и агент делает, так, как мы с ним договорились, находит в процессе неучтённые моменты, правит сам, если может, или сообщает о них и предлагает проработать их отдельно. Да и с говнокодом - дай LLM чёткие правила как не говнокодить и она ответственнее любого живого разработчика будет следовать этим правилам.

Если кодить по принципу «эй, машина, сделай такую штуку!», то да, будет говнокод. Точно так же как если ты разраба рандомного попросишь так же что-то написать. А если ты опишешь, что и как тебе надо, обсудишь с ним варианты и проблемы, на выходе получишь качественный и понятный код.

der_fenix ★
()
Ответ на: комментарий от der_fenix

дай LLM чёткие правила как не говнокодить

Это да, иногда слышу как люди критикуют LLM - хочется ответить - так напиши в AGENTS.md - чего не делать в каких случаях - и как делать.

vitaly-zdanevich
()
Ответ на: комментарий от vitaly-zdanevich

Сейчас LLM делает ebuild для вашего CloudMus - дал ему AGENTS.md

Круть! Я сам в этом не шарю (gentoo, ebuild). Я домохозяйка в мире Linux, люблю OpenSuse за настройки через GUI )

navrocky ★★
() автор топика

О, наконец-то нормальный плеер для yt music. Сколько не пробовал другие плеер - они либо кривущие, либо вообще не работают.

Nightwing
()

Лол, гляньте что нашел - https://yaamp.ru/. У меня много конкурентов 😊

navrocky ★★
() автор топика
Последнее исправление: navrocky (всего исправлений: 1)

А скачать трек с Ютуба можно с помощью этого плеера?

Return
()
Последнее исправление: Return (всего исправлений: 1)
Ответ на: комментарий от Return

А скачать трек с Ютуба можно с помощью этого плеера?

Конечно, в настройках скачивание надо включить. Ещё и плейлист целиком можно скачать.

navrocky ★★
() автор топика
Последнее исправление: navrocky (всего исправлений: 1)
Ответ на: комментарий от No_signal

А вот на linux Mint также будет он работать?

Если он не старше 5 лет, то будет. Сис. требования: x86_64, glibc 2.31+

navrocky ★★
() автор топика
Последнее исправление: navrocky (всего исправлений: 1)
Ответ на: комментарий от navrocky

Круто, правда. Если честно мне больше нравятся амарокоподобные плееры, возможно когда-нибудь притащу твою реализацию yt music им.

Nightwing
()
Ответ на: комментарий от Nightwing

А что именно в амарокоподобных нравится?

navrocky ★★
() автор топика
Ответ на: комментарий от Nightwing

Я в своё время от amarok тащился именно из-за его каталогизатора встроенного. Один раз настроил, потом новое музло затаскивается в библиотеку одним кликом, разложенное по полочкам даже из самой убого оформленной раздачи. Ну и потом из библиотеки составлять плейлисты свои. А сейчас уже и не так часто музыку альбомами и дискографиями затаскиваю, и всё больше в онлайне музыку слушаю, уже и не надо как-то… Но Amarok до сих пор считаю лучшим плеером своего времени.

der_fenix ★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.