認証設定
Spotify apiを利用するには、アカウント作ってclient_id, client_secretを発行してもらう必要がある。
Spotify Developer
特定アーティスト情報を取得
docのクイックスタートを早速試してみる。
2017/5/29から全てのリクエストに対してアクセストークンが必要になった模様※
でもでも今のところリクエストの上限はなさそうです。
client Module一覧はこちら
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についての詳細はこちらに詳しく載っている
-
Rihannaにした理由は特にない ↩