Edited at

Spotify APIで遊んでみる

More than 1 year has passed since last update.


認証設定

Spotify apiを利用するには、アカウント作ってclient_id, client_secretを発行してもらう必要がある。

Spotify Developer


特定アーティスト情報を取得

docのクイックスタートを早速試してみる。

2017/5/29から全てのリクエストに対してアクセストークンが必要になった模様

でもでも今のところリクエストの上限はなさそうです。

client Module一覧はこちら


quick_start.py

import spotipy

from spotipy.oauth2 import SpotifyClientCredentials

client_id = 'xxxxxxxxxxxxxx'
client_secret = 'xxxxxxxxxxxxxx'
client_credentials_manager = spotipy.oauth2.SpotifyClientCredentials(client_id, client_secret)

spotify = spotipy.Spotify(client_credentials_manager=client_credentials_manager)

name = 'rihanna'
result = spotify.search(q='artist:' + name, type='artist')
print(result)


成功したらウジャっと色々jsonで返ってくる

超有名アーティストであっても同名の無名アーティストや類似名のアーティストは多々いるところ。

先ほどの結果をもとに下記"Rihanna"で検索してみると

for i in result['artists']['items']:

print("{0} popularity: {1}".format(i['name'], i['popularity']))


実行結果

Rihanna : 96

Rihanna Johnson : 8
Rihanna Paige : 0
Rihanna Nicole : 0
Rebecca Rihanna : 4
Fran London feat. Rihanna : 2
League of One feat Rihanna Paige : 0
Norty Cotto, League of One feat Rihanna Paige : 0
Made famous by Rihanna : 13
Rihanna Cover Band : 6

同じRihanna1でも沢山出てくる。

右の数値はpopularityで0~100の値が入る

100に近ければ知らない人はいないぐらいのアーティストになる

Rihannaは現時点(2017年11月)で世界ランク22位

1位, 2位, 3位はそれぞれ以下の結果となっている

Ed Sheeran

Maroon 5

Post Malone


類似アーティストの取得

各アーティストには、spotifyで振られている固有idがある

先ほどの取得したjsonの一番最初に出てきたアーティストのidを欲しいなら

result['artists']['items'][0]['id'] # 5pKCCKE2ajJHZ9KAiaK11H

このidを使って類似アーティストの取得も可能。

# popularityが96のRihannaの類似アーティストを取得する

# id: 5pKCCKE2ajJHZ9KAiaK11H
result = spotify.artist_related_artists(artist_id)
for artist in result['artists']:
artist_name = artist['name']
popularity = artist['popularity']
unique_id = artist['id']
print("{0} - popularity: {1}, id: {2}".format(artist_name, popularity, unique_id))


実行結果

The Pussycat Dolls - popularity: 72, id: 6wPhSqRtPu1UhRCDX5yaDJ

Ciara - popularity: 73, id: 2NdeV5rLm47xAvogXrYhJX
Fergie - popularity: 74, id: 3r17AfJCCUqC9Lf0OAc73G
Destiny's Child - popularity: 76, id: 1Y8cdNmUJH7yBTd9yOvr5i
Gwen Stefani - popularity: 77, id: 4yiQZ8tQPux8cPriYMWUFP
Britney Spears - popularity: 81, id: 26dSoYclwsYLMAKD3tpOr4
Beyoncé - popularity: 91, id: 6vWDO969PvNqNYHIOW5v0m
Christina Aguilera - popularity: 81, id: 1l7ZsJRRS8wlW3WfJfPfNS
Jessie J - popularity: 76, id: 2gsggkzM5R49q6jpPvazou
Nicki Minaj - popularity: 93, id: 0hCNtLu0JehylgoiP8L4Gh
Iggy Azalea - popularity: 75, id: 5yG7ZAZafVaAlMTeBybKAL
Ne-Yo - popularity: 81, id: 21E3waRsmPlU7jZsS13rcj
Usher - popularity: 83, id: 23zg3TcAtWQy7J6upgbUnj
Tinashe - popularity: 76, id: 0NIIxcxNHmOoyBx03SfTCD
JoJo - popularity: 71, id: 5xuNBZoM7z1Vv8IQ6uM0p6
Jeremih - popularity: 83, id: 3KV3p5EY4AvKxOlhGHORLg
Jordin Sparks - popularity: 69, id: 2AQjGvtT0pFYfxR3neFcvz
Alicia Keys - popularity: 81, id: 3DiDSECUqqY1AuBP8qtaIa
Lady Gaga - popularity: 84, id: 1HY2Jd0NmPuamShAr6KMms
Ashanti - popularity: 73, id: 5rkVyNGXEgeUqKkB5ccK83

これで色々遊べそう

apiについての詳細はこちらに詳しく載っている





  1. Rihannaにした理由は特にない