PythonでSpotify APIを使ってみます.
APIの登録とキーの取得
Spotifyの公式サイトに登録してAPIのキーを取得します.
python
# APIのIDとキー
MyID = "****************"
MySecret= "****************"
ライブラリのインストール
APIの登録が済みましたら,Spotify APIを使用するためのライブラリをインストールします.
python
!pip install spotipy
デモの実行
下記のコードでデモを実行し,Spotify APIが正常に使用できるかを確認します.
下記のコードでは,特定のアーティストの曲を検索しています.この際,アーティストIDを事前に調べる必要があります.
アーティストIDはSpotifyでアーティスト名前で検索した時のURLに記載されています.
python
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
# APIのIDとキー
MyID = "****************" #client ID
MySecret= "****************" #client secret
# APIの起動
ccm = SpotifyClientCredentials(client_id = MyID, client_secret = MySecret)
spotify = spotipy.Spotify(client_credentials_manager = ccm)
# spotifyの検索キー
lz_uri = 'spotify:artist:36QJpDe2go2KgaRleHCDTp'
# アーティストIDが36QJpDe2go2KgaRleHCDTpの曲を検索
results = spotify.artist_top_tracks(lz_uri)
for track in results['tracks'][:1]:
print('track : ' + track['name'])
print('audio : ' + track['preview_url'])
print('cover art: ' + track['album']['images'][0]['url'])
print()
# 出力結果
# track : Stairway to Heaven - Remaster
# audio : https://p.scdn.co/mp3-preview/8226164717312bc411f8635580562d67e191a754?cid=166c222168b241028889782d08d8071e
# cover art: https://i.scdn.co/image/ab67616d0000b273c8a11e48c91a982d086afc69
SpotifyAPIの検索機能
spotify.search()
を使用することで,アーティスト・曲のIDがわからなくてもSpotifyで検索することができます.
spotify.search()
の引数は下記の通りです.
- q - 検索項目.ここでは2000年の曲を知りたいので,
year:2000
とします. - limit - 抽出する情報の上限値です.無料枠だと,50が最大値です.
- offset - 抽出する情報で最初の何個をとばすか指定します.
- type - 抽出する情報のタイプを指定します.タイプは下記の通りです.
- artist:アーティスト
- album:アルバム
- track:曲
- playlist:プレイリスト
- market - 検索する音楽市場の国をIDで指定します.IDはISO 3166-1 alpha-2 wikiで確認できます.
さらに,詳細が知りたい場合は,公式ドキュメントを参照してください.
python
import spotipy
import pprint
from spotipy.oauth2 import SpotifyClientCredentials
# APIのIDとキー
MyID = "****************" #client ID
MySecret= "****************" #client secret
# spotifyAPI起動
ccm = SpotifyClientCredentials(client_id = MyID, client_secret = MySecret)
spotify = spotipy.Spotify(client_credentials_manager = ccm)
# 検索実行
result = spotify.search(q='year:2000', limit=10, offset=0, type='track', market=None)
id_list =
for track in result['tracks']['items']:
id = track['id']
id_list.append(id)
# 曲の特徴リスト
features = spotify.audio_features(id_list)
pprint.pprint(features)
# 出力結果
# {'acousticness': 0.00239,
# 'analysis_url': 'https://api.spotify.com/v1/audio-analysis/3AJwUDP919kvQ9QcozQPxg',
# 'danceability': 0.429,
# 'duration_ms': 266773,
# 'energy': 0.661,
# 'id': '3AJwUDP919kvQ9QcozQPxg',
# 'instrumentalness': 0.000121,
# 'key': 11,
# 'liveness': 0.234,
# 'loudness': -7.227,
# 'mode': 1,
# 'speechiness': 0.0281,
# 'tempo': 173.372,
# 'time_signature': 4,
# 'track_href': 'https://api.spotify.com/v1/tracks/3AJwUDP919kvQ9QcozQPxg',
# 'type': 'audio_features',
# 'uri': 'spotify:track:3AJwUDP919kvQ9QcozQPxg',
# 'valence': 0.285},
まとめ
ここまでで,PythonでSpotify APIを使ってみました.
次回から,曲の特徴の抽出等を実行します.
参考サイト
PythonでSpotify APIを使ってみる ~全ての音楽愛好家のためのSpotify API ep 1~
Spotify Web APIから分析用データセットをつくる