#はじめに
Spotify APIを使い、日本のトップチャートの楽曲情報をCSVに出力する方法を紹介します。
今回はGoogle ColaboratoryでSpotify APIを使い、日本のトップチャートの分析を行いました。
Google ColaboratoryはJupyter notebookを基盤としたオープンソースプロジェクトで、Chromeのデスクトップ版で動作します。
Colaboratoryを使えば、Chromeブラウザ上で簡単にPythonの実行環境を作ることができます。
#APIキーの取得
こちらは前回の記事で紹介しているのでそちらを参考にしてみてください。
Spotify APIで楽曲情報やアーティスト情報を取得してみた
#準備
まずはSpotifyのAPIを扱うためのライブラリである「spotipy」をインストール。
ドキュメントはこちらにあるみたいです。
!pip install spotipy
「pandas」をインポートします。
「spotipy」や「json」もインポートしOAuth2で通信できる状態にします。
import pandas as pd
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import json
client_id = '発行したCLIANT ID'
client_secret = '発行したCLIANT SECRET'
client_credentials_manager = spotipy.oauth2.SpotifyClientCredentials(client_id, client_secret)
spotify = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
次にSpotify ChartsからインポートするCSVをダウンロードしておきます。
今回は日本のDairy TOP200のデータを使用しました。
#CSV読み込み
ダウンロードしたCSVをGoogle Colaboratoryにアップロードし、Pandasでファイルを読み込んでいきます。
以下の記事を参考にさせていただきました。
google Colaboratoryでファイルを読み込む方法
pandasでcsv/tsvファイル読み込み(read_csv, read_table)
# google Colaboratoryでファイルを読み込む
from google.colab import files
uploaded = files.upload()
# PandasでCSVを読み込む、最初の行は省略
songs = pd.read_csv("regional-jp-daily-latest.csv", index_col = 0, header = 1)
songs.head(10)
# インデックスをリセットし、振り直す
songs = songs.reset_index()
songs.head(10)
コードを実行すると、ファイルを選択できるので先ほどダウンロードしたregional-jp-daily-latest.csv
を読み込むと以下の結果が返ってきます。
#楽曲情報取得
まずデータを格納するためのPandasのDataFrameを作ります。
そのあとに、楽曲数分の情報をSpotifyのaudio_featuresを使って読み込んでいます。
pandas.DataFrame.from_dict
pandas.DataFrame, Seriesのインデックスを振り直すreset_index
# PandasのDataFrame作成
song_info = pd.DataFrame()
# 楽曲数分の情報を取得
for url in songs["URL"]:
df = pd.DataFrame.from_dict(spotify.audio_features(url))
song_info = song_info.append(df)
song_info.head(10)
# song_infoのインデックスを振り直す
song_info = song_info.reset_index(drop = True)
song_info.head(10)
実行結果がこちら
楽曲の「アコースティック感」や「曲の過激さ」、「踊りやすさ」、「テンポ」など詳細な情報を取得することができました。
#CSVファイルに出力
先ほど楽曲の基本情報(songs)と楽曲の詳細情報(song_info)を結合して、CSVファイルに出力していきます。
pd.concat([songs, song_info], axis = 1).to_csv("songs.csv")
files.download('songs.csv')
実行すると以下のCSVファイルをダウンロードすることができました。
#さいごに
今回Spotify APIを使い、日本のトップチャートの楽曲情報をCSVに出力することができ、Spotifyの楽曲にはたくさんの情報が付加されていて、楽曲の研究のすごさに驚きました。
自分的にも今どのようなジャンルの楽曲の人気があるのか、その楽曲はどんな情報をもった楽曲なのかということを知ることができ、満足しています。
また、Spotify APIを使い何かやってみたいと思います。
Spotify APIに興味がある方は良ければ、以下の記事も読んでみてください。
Spotify APIで楽曲情報やアーティスト情報を取得してみた
#参考
こちらの記事を参考にさせていただきました。
Spotifyでトップチャートの曲(と自分の曲)の分析