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)))