CloudMus — новый кроссплатформенный открытый плеер для Яндекс Музыки и YouTube Music
- CloudMus объединяет Яндекс Музыку, YouTube Music и локальные файлы в общей очереди и истории; работает на Linux и Windows.
- Версия 0.6.1 написана на C++20 и Qt 6, распространяется по лицензии MIT; доступны AppImage и установщик Windows.
- Вход в YouTube Music пока требует копирования заголовков запроса или cURL-команды; поиск по каталогам сервисов ещё не добавлен.
Почему это важно: Раздельные прокси позволяют направлять YouTube Music через прокси, а Яндекс Музыку — напрямую, не включая VPN на всю систему.

Встречайте 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, SMTC (медиаинтеграция с DE), скачивание треков и плейлистов, предзагрузка следующего трека и отдельный прокси для каждого сервиса: например, 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
