TVに反応するスマートスピーカー

テックポエム

20181012

はじめに

前回の続きです。

また、都度都度MP3をアップロードしなければ不便。
GMusicProxyを使えばGoogle Play Musicのプレイリストを参照できそうなので、
これを使えば幸せになれそう。

というわけで、今回はGMusicProxyを設定&利用してみようと思います。

環境

Linux Mint 19 x64

準備~設定

GMusicProxyをセットアップします。

$ git clone https://github.com/diraimondo/gmusicproxy.git $ cd gmusicproxy/ $ sudo apt-get install build-essential python2.7-dev $ sudo apt-get install libffi-dev libssl-dev $ sudo apt-get install python-pip $ sudo pip install --upgrade protobuf $ sudo pip install -r requirements.txt 

続いて設定ファイルへGoogle Play Musicに接続Googleアカウントの接続情報を設定します。

$ vi ~/.config/gmusicproxy.cfg email = hogehoge@example.com password = P@SSW0RD 

GMusicProxyを起動して、Google Play Musicを利用可能なデバイスの一覧を取得します。

$ GMusicProxy --list-devices - No carrier HUAWEI VNS-L22 --> device-id=xxxxxxxxxxxxxxxx 

取得したdevice-idをconfigファイルに追記します。

$ vi ~/.config/gmusicproxy.cfg email = hogehoge@example.com password = P@SSW0RD device-id = xxxxxxxxxxxxxxxx 

GMusicProxyを起動します。

$ GMusicProxy Pre-fetching list of songs in collection Listening on 0.0.0.0:9999... 

データへのアクセス

前手順でGMusicProxyのセットアップが完了したので、
試しにプレイリストから音源を取得してみます。

curlでプレイリストの情報を取得する。
(プレイリストはM3U形式のようです。)

$ curl http://localhost:9999/get_all_playlists #EXTM3U #EXTINF:-1,XXXXXXXXXXXXX http://localhost:9999/get_playlist?id=3a05af76-2710-4181-939e-5284b2b3f2e5 (省略) 

プレイリストの内容を取得する。
各URLが音源の実体のようです。

$ curl http://localhost:9999/get_playlist?id=3a05af76-2710-4181-939e-5284b2b3f2e5 #EXTM3U #EXTINF:205,XXXX - XXXXXXX http://localhost:9999/get_song?id=d591f1f5-1f78-3cac-9f9a-c2610a769530 #EXTINF:242,,XXXX - XXXXXXX http://localhost:9999/get_song?id=73a6179f-7388-3f79-b81f-f175fa5c38a1 (省略) 

wgetでファイル取得するとローカルへの保存もできそうです。

$ wget http://localhost:9999/get_song?id=61ab166d-1493-3f68-adb2-8bae04eb9676 -O test.mp3 

こんな感じでアーティストの検索もできそう。

$ curl http://localhost:9999/get_by_search\?type\=matches\&artist\=xxxxxxx #EXTM3U #EXTINF:141,xxxxx - xxxxxxx http://172.17.0.1:9999/get_song?id=Tf7mtyb55fwpbfzfn4gxtblabza (省略) 

終わり

これでGoogle Play Musicのライブラリへ自由にアクセスできるようになりそうです。
// 今更ですがGoogle Homeでアクセスできるか確認し忘れていた・・・

次は音楽再生をタイマーで再生させる箇所を作ります。

参考

https://github.com/diraimondo/gmusicproxy
http://gmusicproxy.net/

ESP32でGoogle Play Musicを再生する
https://qiita.com/odetarou/items/0f37ed2eeeb9bd051c0c