2021.10.25 コラム
【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