Google Playミュージックの音楽を聴く

少し前、ロシアでGoogle Playミュージックサービスが利用可能なりました。 月に169ルーブルの場合、フルアクセスを取得できます。 問題は、モバイルデバイスまたはブラウザを介してのみGoogleが音楽を聴くことができることです。
ただし、これは、たとえば、私にはあまり適していません。 したがって、この記事では、Google Playミュージックの音楽を聴くための「非公式」な方法を検討します。

したがって、MPDサーバーがインストールされたRaspberry Piがあります。 このRaspberry PiでGoogle Playミュージックのライブラリから音楽をリモートで再生できるようにしたいと考えています。

ブラウザを実行した状態でvncサーバーを起動するオプションは検討していません。 Xサーバーとウィンドウマネージャーなしで、chromiumとmidoriを実行しようとしましたが、とにかくこれは非常に遅いです。 music.google.com Webアプリケーションはまだかなり重いです。

Google Playミュージックには公式のAPIはありませんが、githubにはPythonで書かれた優れたUnofficial-Google-Music-APIがあります 。 このAPIの作成者であるSimon Weberは、そのAPIを使用するいくつかのプロジェクトに助言しています。 私に興味がある人を考えてみましょう:

これらのプロジェクトに加えて、次のものも見つけることができます。

すべてのプロジェクトがPythonで作成されていることは注目に値します。 以下では、これらの各プロジェクトでの私の経験を説明します。


雷鳴


呪いクライアント。 mplayerを介して音楽を起動します。 素晴らしく聞こえますが、動作しません。 最初に、APIの最新バージョンで動作するように変更されたブランチに切り替える必要がありました;マスターからのバージョンは動作しません。 ただし、音楽はまだ1秒しか再生されず、次の曲に切り替わります。 実際、以下のオールアクセスソングが再生されないという未解決の問題を確認できます。これは、私だけではないことを意味します。

画像


GMusicFS


FUSEファイルシステム。 マウントすると、Google Playミュージックから音楽ライブラリのディレクトリ階層が次の形式で取得されます
 アーティスト/ <アーティスト名> / <アルバム> / <トラック> 
さらに、cover.jpgをロードします。 さて、mp3形式の音楽ライブラリ全体をディレクトリに保存する機能は問題ありませんが、いくつかの悲しい制限があります。
著者によると、このソリューションは、ファイルをコンピューターにコピーするか、mplayerなどの単純なプレーヤーで再生する場合にのみ適しています。 より高度なプレーヤーでプレイしようとすると、問題が発生する場合があります。 実際、単純なmocpでもコレクションを開こうとすると、非常にハングし始め、音楽を聴くことができなくなります。 ディレクトリをMPDのライブラリとして指定しようとすると、音楽を聴く機会が得られますが、タグが読み込まれず、「Unknown」という同じ名前の曲を聴くことはオプションではありません。 著者はまた、特定の位置から曲を再生する能力の欠如に注目しています。

pipを使用してGMusicFSをインストールし、依存関係を事前インストールできます。
pip install github.com/terencehonles/fusepy/tarball/master
pip install github.com/simon-weber/Unofficial-Google-Music-API/tarball/develop
pip install 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


プロジェクトの説明には、「メディアプレーヤーを使用してGoogle Playミュージックをストリーミングしましょう」とあります。
このスクリプトを使用すると、特別に形成されたGETリクエストを送信して、m3uプレイリストまたはmp3ファイルを受信できます。

次のコマンドをインストールできます。
pip install github.com/diraimondo/gmusicproxy/tarball/master


動作するには、登録済みデバイスの1つのデバイスIDが必要です。 次のようにして、これらのデバイスのリストを取得できます。
GMusicProxy --email <> --password <> --list-devices


〜/ .config / gmusicproxy.cfg configを作成します。
email = my.email@gmail.com
password = my-secret-password
device-id = 54bbd32a309a34ef


以下を開始します。
GMusicProxy


mpc consoleクライアントを使用した使用例
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


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を使用したケーススタディ
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 -


さまざまなクエリがサポートされています:曲の受信、ラジオ局、プレイリスト、...
マイナスのうち、これらのリクエストはすべて自分で作成する必要があり、タグは特定の曲を再生するときにのみロードされることに注意してください。


プレイパイ


MPD統合により音楽ライブラリにアクセスするためのDjango Webフロントエンド。 私はthunnerの場合と同じ問題を抱えているとしか言えません-1秒だけが再現されます。


モピディ


Mopidyは、MPDになりすますことができる音楽サーバーです。 しかし、最も興味深いのは、彼にとってMopidy-GMusicの拡張機能です
パッケージマネージャーを使用してMopidyをインストールし、次のコマンドで拡張機能をインストールできます。
pip install mopidy-gmusic

動作するには、もう一度device-idが必要になります。これは、*#*#8255#*#*を入力するか、 アプリケーションをインストールすることで取得できます
Mopidyの設定で次を追加する必要があります:
[gmusic]
username = alice
password = secret
deviceid = 0123456789abcdef


さらに設定を行うと( ここにドキュメントがあります )、Google Playミュージックの音楽とローカルコレクションを備えたMPD互換サーバーを取得します。 MPDクライアントのうち、 GMPCArio、およびpympdは問題ありません。 私のお気に入りのCantataは残念ながら接続しません。




結論


GMusicFSは 、mp3形式でGoogle Playミュージックから音楽をコピーするのに最適です。 再生には、プラグインでMopidyを使用できます。

MPDとMopidyを異なるポートで同時に実行し、異なるクライアント(CantataとGMPC)に接続することに決めました。 ローカルコレクションのMPD、Google PlayミュージックのMopidy。

二要素認証を使用する場合、Googleアカウントの設定でアプリケーションパスワードを作成する必要があることを忘れないでください。

Source: https://habr.com/ru/post/J198062/


All Articles