Слушаем 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, и отключим индексацию локальной музыки (я ей не пользуюсь).
[gmusic]
enabled = true
username = <USERNAME>
password = <PASSWORD>
bitrate = 320
all_access = true
[local]
enabled = false
~/.config/mopidy/mopidy.conf
Значения <USERNAME>
и <PASSWORD>
необходимо заменить на соответствующие
параметры Google-аккаунта.
Создадим systemd-сервис, который будет запускать Mopidy:
[Unit]
Description=Mopidy music server
After=avahi-daemon.service
After=dbus.service
After=network.target
After=nss-lookup.target
After=pulseaudio.service
After=remote-fs.target
After=sound.target
[Service]
ExecStart=/usr/bin/mopidy
[Install]
WantedBy=multi-user.target
~/.config/systemd/user/mopidy.service
Включим этот сервис:
$ systemctl --user start mopidy
$ systemctl --user enable mopidy
Консольный клиент
Один из самых популярных клиентов для MPD — консольный ncurses-клиент ncmpcpp.
Для установки ncmpcpp в Fedora нужно выполнить следующую команду:
$ sudo dnf install ncmpcpp
Настроим Emacs-like клавиатурные сочетания:
### Unset default bindings
## Navigation
def_key "page_up"
dummy
def_key "page_down"
dummy
def_key "home"
dummy
def_key "end"
dummy
def_key "f1"
dummy
## Searching
def_key "/"
dummy
def_key "?"
dummy
### Emacs-like bindings
## Navigation
def_key "alt-v"
page_up
def_key "ctrl-v"
page_down
def_key "alt-<"
move_home
def_key "alt->"
move_end
def_key "n"
scroll_down
def_key "ctrl-n"
scroll_down
def_key "p"
scroll_up
def_key "ctrl-p"
scroll_up
def_key "ctrl-h"
show_help
## Selection
def_key "space"
select_item
scroll_down
## Searching
def_key "ctrl-s"
find
def_key "ctrl-s"
find_item_forward
def_key "ctrl-r"
find
def_key "ctrl-r"
find_item_backward
## Playback
def_key "t"
pause
~/.config/ncmpcpp/bindings
Укажем ncmpcpp, где искать определённый выше файл с клавиатурными сочетаниями:
ncmpcpp_directory = ~/.config/ncmpcpp
~/.config/ncmpcpp/config
Интеграция с 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)))