こんにちは
今日は、JOYSOUNDのWeeklyランキングの曲をSpotifyのWeb APIを叩いて、楽曲情報を取得してみたので、そのお話です。
Google Colaboratory
JOYSOUNDのランキングのJSONデータを用意して、さてどの環境で実行しようか?
と思って、とりあえずSpotify Web APIのページでAppの設定をしてみたのですが、Macのターミナルからはなぜか上手くAPIが叩けなくて、ちょっと困っていました。
いろいろWeb検索したら、Pythonでspotipyというライブラリを使うと簡単にできそうということで、さらに調べると、「Google Colaboratory」というブラウザから無料でPythonの実行環境とテキストの混在したノートを作成する環境が利用できるらしいので、早速サイトに行っていろいろ試してみました。
Google Colab使用にはGoogleアカウントが必要ですが、それは既に持っているので問題なしです。
JOYSOUNDのWeeklyランキングの取得
例によってChromeブラウザのdevツールで、WeeklyランキングのJSONデータをダウンロードして用意は完了です。
Google ColabでPythonプログラムを作る
プログラム作成にあたり、こちらのnoteを参考にしました。
「Spotifyが公開しているAPIを使ってみた話」
まずは、spotipyのinstallと、IDを設定
その後、Googleドライブをマウントして、GoogleドライブからJSONデータを読み込んで、必要なランキングの部分だけのデータフレームを作ります。
次に、ランキングの曲名とアーティスト名で、APIでsearchして、取得したexternal_urlで再度APIを叩いて曲情報を得ます。
(この場合、Lemonのように米津さんのバージョンはSpotifyに配信されていない場合や、千本桜のようにSpotifyにバージョン違いやオルゴールすら配信されていない場合もありますが、今回はとりあえずSpotifyのAPIから、楽曲情報を得るのが目的なので深く考えないことにします)
得られたデータ
以下が得られたデータの一部です
この表の
「danceability、energy、key、loudness、mode、speechiness、acousticness、instrumentalness、liveness、valence、tempo」
の情報が欲しかったので、とりあえず満足です。
これらの情報の意味は、こちらのnoteを参考にしてください
「Spotifyの楽曲に埋め込まれている情報がハンパない話」
今後は、今回得られた楽曲情報と、同じ日に取得したSpotify Weekly Chartのデータから取得した楽曲情報を比較して、グラフなどに表示してみてカラオケランキングとSpotifyランキングとの間に有意な差がないかなども調べてみようかなと思いました。
みなさんも、Google Colabで、Python環境を無料で使ってデータ分析などにチャレンジしてみてはいかがでしょうか