音楽ストリーミングサービスもたくさん出てきていますがぼくは[Spotify] (https://itunes.apple.com/jp/app/spotify-%E9%9F%B3%E6%A5%BD%E3%82%B9%E3%83%88%E3%83%AA%E3%83%BC%E3%83%9F%E3%83%B3%E3%82%B0%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9/id324684580?mt=8)を使っています。
まぁ聴きたい曲なんでも、とまではいきませんが曲のレパートリーも凄まじいし、アーティスト作成のプレイリストが楽しめることやオススメ楽曲の精度みたいのも気に入っているので。
して、そのSpotifyがAPIを出していると聞いて興味が湧きました。
楽曲ごとの解析データも観れるとか、再生方法をいじれるとか、プレイリストをいじる機能もあるとか、これは(とくにどうしようとかいうビジョンがあるわけではないが)使ってみるしかない!
で、本記事(色々やってみてシリーズっぽくしたい)は、
###「別にこれといってやりたいことあるわけじゃないけどSpotifyのAPIとか聞いたら使ってみたいじゃん?」
という人向けだと思ってください。実際ぼくがそうなので。
登録
Spotify APIを使うにはアプリケーション登録が必要なので、やっておきましょう。
アカウントを持ってない方はここから登録してください。
アプリケーション登録をするにはここにログインして、大体案内どおりでわかると思うので適当にまぁやってください。
APIとか全然わからんぼくでもまぁなんとかできたので皆さんはもっと大丈夫だと思います。
Client IDとClient Secretは必要なので控えておいてくださいね。後からでも見れますが。
使ってみる!
んじゃ使ってみましょう。
とりあえずリファレンス([Welcome to Spotipy] (https://spotipy.readthedocs.io/en/latest/))にそって使っていきましょう。
インストールはこれでいけるらしいな。ふむ。
Python開発環境を作成済みの方は以下のコマンドでAPIを使えるようにします。
pip install spotipy
環境によってはyumとか使って、まぁspotipy
ってのを適当にインストールしてください。
どうでもいいけど、Python系のライブラリとかはみんな「py」って付けますね。
すぽちぱいってかわいいですね。発音するのはちょっと恥ずかしい。
リファレンスにあった以下のコードを書いてみます。
import spotipy
lz_uri = 'spotify:artist:36QJpDe2go2KgaRleHCDTp'
spotify = spotipy.Spotify()
results = spotify.artist_top_tracks(lz_uri)
for track in results['tracks'][:10]:
print 'track : ' + track['name']
print 'audio : ' + track['preview_url']
print 'cover art: ' + track['album']['images'][0]['url']
print
実行ドン
spotipy.client.SpotifyException: http status: 401, code:-1 - https://api.spotify.com/v1/artists/36QJpDe2go2KgaRleHCDTp/top-tracks?country=US:
No token provided
###エラーじゃねぇか。
調べてみるとどうも、いつだかから全てのAPI呼び出しにトークンが必要な様子。
spotipyのAPIには「Non-Authorized requests」って書いてあるんだけど、古いのかな。
アプリケーション登録で使ったClient IDとClient Secretを使って以下のように書き換えます。
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import sys
lz_uri = 'spotify:artist:36QJpDe2go2KgaRleHCDTp'
client_id = 'Client IDの値'
client_secret = 'Client Secretの値'
client_credentials_manager = spotipy.oauth2.SpotifyClientCredentials(client_id, client_secret)
spotify = spotipy.Spotify(client_credentials_manager=client_credentials_manager)
results = spotify.artist_top_tracks(lz_uri)
for track in results['tracks'][:10]:
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=575190b52c754debad7825f97cf4cfec
cover art: https://i.scdn.co/image/557a6058e3de72bf37ffcd2c12dd5932276df344
track : Immigrant Song - Remaster
...
###とれたっぽいぞ
表示は長いので割愛してます。
ともかく、APIを使ってデータを取得することができました!
いろいろ取得してみて、また記事書いてみたいと思います!!
[追記]
いろいろやってみた記事は以下に追記していきます。
興味が出てきたなって方は、拙い記事ですがぜひご一緒にどうぞ!
PythonでSpotify API [アルバム情報編](2019.05.02)
PythonでSpotify API [情報の文字列検索](2019.05.04)
PythonでSpotify API [audio_features編](2019.06.01)