Слушаем Google Play Music через MPD с помощью Mopidy
Содержание
Google Play Music — замечательный музыкальный сервис, но у него есть серьёзная проблема, которая заключается в отсутствии дестктопного клиента.
Эту проблему можно решить, если воспользоваться решениями, которые используют неофициальный API, предоставляющий доступ к сервису. Одно из таких решений — плагин gmusic к MPD-серверу Mopidy.
Инструкции в данной статье применимы к Fedora 24.
Сервер
Mopidy — это музыкальный сервер, написанный на Python. Он включает в себя собственную реализацию MPD, совместимую с существующими клиентами.
Для установки и работы Modipy необходимо установить следующие зависимости:
$ sudo dnf install gcc python-devel python-pip \
python-gstreamer1 gstreamer1-plugins-good \
gstreamer1-plugins-ugly
Установим Mopidy и плагин gmusic для проигрываним музыки из Google Music:
$ sudo pip install Mopidy Mopidy-GMusic
Для того, чтобы Mopidy отображал информацию о проигрываемом треке при переключении, установим плагин для отправки системных уведомлений:
$ sudo pip install Mopidy-Notifier
Отредактируем настройки: зададим параметры плагина gmusic
, отвечающего за соединение
с сервером Google Music, и отключим индексацию локальной музыки (я ей не пользуюсь).
Значения <USERNAME>
и <PASSWORD>
необходимо заменить на соответствующие
параметры Google-аккаунта.
Создадим systemd-сервис, который будет запускать Mopidy:
Включим этот сервис:
$ systemctl --user start mopidy
$ systemctl --user enable mopidy
Консольный клиент
Один из самых популярных клиентов для MPD — консольный ncurses-клиент ncmpcpp.
Для установки ncmpcpp в Fedora нужно выполнить следующую команду:
$ sudo dnf install ncmpcpp
Настроим Emacs-like клавиатурные сочетания:
Укажем ncmpcpp, где искать определённый выше файл с клавиатурными сочетаниями:
Интеграция с Emacs
Так как я достаточно большое количество времени провожу в Emacs OS, то имеет смысл настроить управление прогрыванием музыки из Emacs. Для этого воспользуемся пакетом mingus, который предоставляет из себя клиент к MPD с похожим на ncmpc(pp) интерфейсом.
Установим mingus и определим некоторые глобальные сочетания клавиш для управления воспроизведением:
(require 'req-package)
(req-package mingus-stays-home
:ensure mingus
:bind (("C-c m >" . mingus-next)
("C-c m <" . mingus-prev)
("C-c m p" . mingus)
("C-c m b" . mingus-browse)
("C-c m t" . mingus-toggle)))