Spotify APIを使って曲の分析をできることを知りました
特に業務で使うものではなかったのですが、音楽好きなものとして使ってみたくつかってみることにしました
事前準備
APIを使用するには、Spotifyでアプリを作成する必要があります
- Spotify developerページにアクセスしログイン
- 右上のユーザー名クリックでメニューを開き[Dashboard]からダッシュボードに移動
- [Create App]からアプリを作成します、入力欄にそって必要なものを入力
- 作成できたらアプリ名をクリックし、settingから設定に移動します
- Client ID とClient secretは実装時使用するのでメモしておいてください
データ取得して
楽曲のデータを取得してみます
Spotifyを開いて曲検索すると、URLの末尾がランダムな文字列になっております
こちらを使用します、今回私が大好きなBUMP OF CHICKENの天体観測を使います
api.py
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
my_id = 'API Client ID'
my_secret = 'API Client secret'
ccm = SpotifyClientCredentials(client_id = my_id, client_secret = my_secret)
sp = spotipy.Spotify(client_credentials_manager = ccm)
music_id = "3hRRYgBeunE3PTmnzATTS0" # 天体観測のmusic_id
result = sp.audio_features(music_id)
print(result)
返り値
[
{
"danceability": 0.366,
"energy": 0.949,
"key": 1,
"loudness": -3.552,
"mode": 1,
"speechiness": 0.11,
"acousticness": 0.381,
"instrumentalness": 0,
"liveness": 0.0902,
"valence": 0.467,
"tempo": 164.979,
"type": "audio_features",
"id": "3hRRYgBeunE3PTmnzATTS0",
"uri": "spotify:track:3hRRYgBeunE3PTmnzATTS0",
"track_href": "https://api.spotify.com/v1/tracks/3hRRYgBeunE3PTmnzATTS0",
"analysis_url": "https://api.spotify.com/v1/audio-analysis/3hRRYgBeunE3PTmnzATTS0",
"duration_ms": 263600,
"time_signature": 4
}
]
パラメータ | 説明 |
---|---|
danceability | ダンスに適しているか |
acousticness | アコースティック感 |
popularity | 相対的人気度 |
energy | エネルギッシュ度 |
instrumentalness | インスト感(歌声がない割合) |
liveness | ライブ感(聴衆がいるか) |
valence | 曲の陽性度 |
tempo | テンポ |
応用
Spotifyでは1曲単位でなく、プレイリスト、または、アルバムのURLから曲一覧を取得することができます。
アルバムから曲一覧を取得し、分析データをCSVに出力するサンプルを作成しました
※ソース内の#プレイリストからに切り替えたら、プレイリストからも作成できます
感想
思いの外手軽に楽曲情報を取得できて驚いた
こういう情報をもとに、Spotify側で自身の好みなどに合わせておすすめ出してくれてるんだろうか?
これをどう使うか、活用事例が浮かんだらまたやってみようと思います