PythonでSpotify APIを使って邦楽情報を抽出します.
Spotify APIの導入
Spotify APIの導入は下記のサイトを参考にしてください.
()
楽曲情報の抽出
楽曲情報の抽出は下記のサイトを参考にしてください.
()
邦楽の指定
邦楽かどうかは,楽曲情報の中のexternal_ids
を見たらわかります.
external_ids
中にJAとあれば邦楽です.
邦楽情報の抽出
下記のコードで邦楽情報の抽出を実行します.
工程は下記の通りです.
- SpotifyAPIの起動
- 2000年の楽曲で検索
- 楽曲IDを取得
meta
に楽曲情報を格納external_ids
より邦楽か判定するspotify.audio_features()
で楽曲特徴を抽出getTrackFeatures
で楽曲情報と特徴をリスト化- リストからデータフレームへ変換
python
import time
import spotipy
import pprint
import pandas as pd
from spotipy.oauth2 import SpotifyClientCredentials
# APIのIDとキー
MyID = "****************" #client ID
MySecret= "****************" #client secret
# 工程1_spotifyAPI起動
ccm = SpotifyClientCredentials(client_id = MyID, client_secret = MySecret)
spotify = spotipy.Spotify(client_credentials_manager = ccm)
# 工程2_検索実行
year = 2000
result = spotify.search(q=f'year:{year}', limit=50, offset=0, type='track', market='JP')
tracks =
for track in result['tracks']['items']:
# 工程3_楽曲IDを取得
track_id = track['id']
time.sleep(0.5)
# 工程4_楽曲情報の抽出
meta = spotify.track(track_id)
# 工程5_邦楽判定
if not meta['external_ids']['isrc'][0:2] == 'JP':
continue
# 工程6_楽曲特徴の抽出
features = spotify.audio_features(track_id)
# 工程7_楽曲情報と特徴をリスト化
track_info = getTrackFeatures(track_id, meta, features)
tracks.append(track_info)
# 工程8_リスト→データフレーム&csv出力
# データフレームに格納
df = pd.DataFrame(tracks, columns = ['track_id', 'name', 'album', 'artist', 'release_date', 'country', 'length', 'popularity', 'key', 'mode', 'danceability', 'acousticness', 'energy', 'instrumentalness', 'liveness', 'loudness', 'speechiness', 'tempo', 'time_signature', 'valence'])
# お気に入り降順にソート
df.sort_values('popularity', ascending=False, inplace=True)
display(df.head())
まとめ
ここまでで,PythonでSpotify APIを使って邦楽情報を抽出しました.
次回から,無料枠で縛られている50曲以上の抽出を実行します.
参考サイト
PythonでSpotify APIを使ってみる ~全ての音楽愛好家のためのSpotify API ep 1~
Spotify Web APIから分析用データセットをつくる