2021.10.25 コラム
- API
- API・データ検証奮闘記
- Python
【API・データ検証奮闘記】#12.Spotify API(Audio Features)やってみた
本コラムでは、APIやデータに関連する言語などを無邪気に触ってみた備忘録として、ライトに記載していきます!(連載記事はこちら)
「ちょっと違くない」「他にいい方法あるのに」といったご意見もあるかと思いますが、何卒お手柔らかに!!
<プロフィール>
富松 良介
2017年、株式会社サイバー・コミュニケーションズ(CCI)入社。Oracle Bluekai・Treasure Data等のDMPや、AWS・GCP等のPublicCloud領域を担務。2019年6月よりデータの利活用を推進するコンサルティング会社「株式会社DataCurrent」に出向し、事業会社の基盤構築・運用や自社ソリューション開発を担当。
●Spotify API(Audio Features)データ取得やってみた

ボス
SpotifyのAudioFeatures(楽曲詳細)データが欲しい。

モブ
かしこまり!!
Spotifyの Audio Features (楽曲詳細)データ取得の手順から取得した結果までをご紹介致します。
対象 | Spotify Audio Features (楽曲詳細)データ URL: https://developer.spotify.com/console/get-audio-features-track/ |
●ステップ1. どうやって取得できるか調査してみた

モブ1
API!!

モブ2
手動!!

モブ3
ツール!!

モブ
APIで取得することにしよう!!

ボス
それでやってくれ。
●ステップ2. データ取得してみた
早速Pythonでデータを取得してみる。
pip install spotipy==2.17.1
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import os, sys
import pandas as pd
uri = ['spotify:track:***********************','spotify:track:***********************','spotify:track:***********************','spotify:track:***********************','spotify:track:***********************','spotify:track:***********************','spotify:track:***********************','spotify:track:***********************','spotify:track:***********************']
client_id = '********************************'
client_secret = '********************************'
class SpotifyAPI(object):
def __init__(self, client_id, client_secret):
self.client_credentials_manager = spotipy.oauth2.SpotifyClientCredentials(client_id, client_secret)
self.spotify_instance = spotipy.Spotify(client_credentials_manager=self.client_credentials_manager)
def get_audio_features(self, uri):
results = self.spotify_instance.audio_features(uri)
audio_features_list = []
for audio_features in results:
audio_features_list.append([
audio_features.get('danceability'),
audio_features.get('energy'),
audio_features.get('key'),
audio_features.get('loudness'),
audio_features.get('mode'),
audio_features.get('speechiness'),
audio_features.get('acousticness'),
audio_features.get('instrumentalness'),
audio_features.get('liveness'),
audio_features.get('valence'),
audio_features.get('tempo'),
audio_features.get('type'),
audio_features.get('id'),
audio_features.get('uri'),
audio_features.get('track_href'),
audio_features.get('analysis_url'),
audio_features.get('duration_ms'),
audio_features.get('time_signature')
])
result_df = pd.DataFrame(
audio_features_list,
index=None,
columns=['danceability',
'energy',
'key',
'loudness',
'mode',
'speechiness',
'acousticness',
'instrumentalness',
'liveness',
'valence',
'tempo',
'type',
'id',
'uri',
'track_href',
'analysis_url',
'duration_ms',
'time_signature']
)
return result_df
def main():
spotify = SpotifyAPI(client_id, client_secret)
df = spotify.get_audio_features(uri)
if __name__ == '__main__':
main()
●ステップ3. 取得結果


意識高いモブ
ちなみに、client_id、client_secretはSpotifyにログインして管理画面から取得する必要があるよ!
●最後に
弊社では、定点的なリサーチやトレンドの分析をおこなっています。性別や年代等の属性や検索トレンドのダッシュボード提供等様々なパッケージをご用意しておりますので、お気軽にお問い合わせください。
本データに関するお問い合わせは下記にて承ります。
株式会社DataCurrent
info@datacurrent.co.jp