Однако многим это не подходит, к примеру мне. Поэтому в данной статье рассмотрим возможные «неофициальные» способы прослушивания музыки из Google Play Music.
Итак, в наличии имеем Raspberry Pi с установленным сервером MPD. Хотим получить возможность проигрывать удалённо любую музыку из своей фонотеки в Google Play Music на этом Raspberry Pi.
Вариант с запуском vnc-сервера с запущенным браузером не рассматриваем. Пробовал запускать chromium и midori без X-сервера и оконного менеджера, всё равно это дело очень сильно тормозит. Веб-приложение music.google.com всё таки достаточно «тяжёлое».
Официальный API для Google Play Music отсутствует, но на github’е имеется отличный Unofficial-Google-Music-API, написанный на Python. Автор этого API Simon Weber советует несколько проектов, использующих его API. Рассмотрим заинтересовавшие меня:
Помимо этих проектов можно также найти:
Стоит отметить, что все проекты написаны на Python. Ниже опишу свой опыт работы с каждым из этих проектов.
thunner
Curses-клиент. Запускает музыку через mplayer. Звучит здорово, однако не работает. Для начала пришлось переключиться на ветку, в которую внесены изменения для работы с последней версией API, версия из master неработоспособна. Но музыка всё равно играет лишь секунду, затем переключается на следующую песню. Собственно можем наблюдать следующую нерешённую проблему All-Access Songs Not Playing, значит это не только у меня.
GMusicFS
FUSE файловая система. При монтировании получаем иерархию директорий своей фонотеки из Google Play Music в формате
artists/<name of artist>/<albums>/<tracks>
плюс загружается cover.jpg. Что же, возможность иметь всю фонотеку в формате mp3 в директории — это просто отлично, но есть ряд печальных ограничений.
Как пишет автор, данное решение подходит только для копирования файлов себе на компьютер либо для воспроизведения простым проигрывателем, таким как mplayer. При попытке воспроизведения в более продвинутых проигрывателях могут возникать проблемы. И действительно, при попытке открыть коллекцию даже в простом mocp он начинает сильно подвисать, музыку слушать невозможно. При попытке указать директорию в качестве библиотеки для MPD получаем возможность слушать музыку, однако тэги у меня не загружались, а слушать песни с одинаковым названием «Unknown» конечно не вариант. Ещё автор отмечает отсутствие возможности воспроизвести песню с определённой позиции.
Установить GMusicFS можно при помощи pip, предварительно установив зависимости:
pip install https://github.com/terencehonles/fusepy/tarball/master
pip install https://github.com/simon-weber/Unofficial-Google-Music-API/tarball/develop
pip install https://github.com/EnigmaCurry/GMusicFS/tarball/master
Затем необходимо создать конфигурационный файл ~/.gmusicfs со следующим содержимым:
[credentials]
username = your_username@gmail.com
password = your_password
И можно монтировать:
mkdir -p $HOME/google_music
gmusicfs $HOME/google_music
Для размонтирования:
fusermount -u $HOME/google_music
При копировании музыки себе на компьютер все тэги корректно загружаются. Воспроизведение с помощью mplayer также работает отлично. После обновления фонотеки необходимо перемонтировать файловую систему.
GMusicProxy
В описании проекта говорится следующее: «Let’s stream Google Play Music using any media-player».
Этот скрипт позволяет получать m3u-плейлисты либо mp3-файлы путём отправки специально сформированных GET-запросов.
Установить можно следующей командой:
pip install https://github.com/diraimondo/gmusicproxy/tarball/master
Для работы необходим device-id одного из зарегистрированных устройств. Получить список этих устройств можно следующим образом:
GMusicProxy --email <адрес> --password <пароль> --list-devices
Создаём конфиг ~/.config/gmusicproxy.cfg:
email = my.email@gmail.com
password = my-secret-password
device-id = 54bbd32a309a34ef
Запускаем:
GMusicProxy
curl -s 'http://localhost:9999/get_by_search?type=album&artist=Queen&title=Greatest%20Hits' > /var/lib/mpd/playlists/queen.m3u
mpc load queen
mpc play</blockquote>
mpc clear
curl -s 'http://localhost:9999/get_new_station_by_search?type=artist&artist=Queen&num_tracks=100' |
grep -v ^# | while read url; do mpc add "$url"; done
mpc play
vlc 'http://localhost:9999/get_by_search?type=album&artist=Rolling%20Stones&title=tattoo&exact=no'
curl -s 'http://localhost:9999/get_all_stations?format=text&only_url=yes' | sort -R | head -n1 | vlc -
Поддерживаются самые различные запросы: получение песен, радиостанций, плейлистов,…
Из минусов стоит отметить, что все эти запросы необходимо составлять самому, а также, что тэги загружаются только при воспроизведении конкретной песни.
play-pi
Web-фронтенд на Django для доступа к фонотеке с интеграцией в MPD. Скажу лишь, что у меня возникла такая же проблема, как и с thunner’ом — воспроизводится лишь секунда.
Mopidy
Mopidy представляет из себя музыкальный сервер, который умеет «притворяться» MPD. Но самое интересное — для него есть расширение Mopidy-GMusic.
Установить Mopidy можно с помощью пакетного менеджера, а расширение следующей командой:
pip install mopidy-gmusic
Для работы понадобится опять же device-id, который можно получить либо набрав *#*#8255#*#*, либо установив приложение.
В конфиг Mopidy необходимо дописать:
[gmusic]
username = alice
password = secret
deviceid = 0123456789abcdef
После дальнейшего конфигурирования (документация здесь) получим MPD-совместимый сервер с музыкой из Google Play Music, а также с локальной коллекцией. Из MPD-клиентов без проблем заработали GMPC, Ario и pympd. Мой любимый Cantata к сожалению не подключается.
Выводы
Для копирования музыки из Google Play Music в формате mp3 отлично подойдёт GMusicFS. Для воспроизведения можно использовать Mopidy с плагином.
Я остановился на том, что запускаю одновременно MPD и Mopidy на разных портах и подключаюсь разными клиентами (Cantata и GMPC). MPD для локальной коллекции, Mopidy для Google Play Music.
Не стоит забывать, что при использовании двухфакторной аутентификации необходимо создавать пароли приложений в настройках аккаунта Google.
ссылка на оригинал статьи http://habrahabr.ru/post/198062/
Добавить комментарий