PythonでSpotify API [とにかく使ってみる編]

音楽ストリーミングサービスもたくさん出てきていますがぼくは[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を使うにはアプリケーション登録が必要なので、やっておきましょう。
アカウントを持ってない方は[ここ](https://www.spotify.com/jp/)から登録してください。

アプリケーション登録をするには[ここ](https://developer.spotify.com/my-applications/)にログインして、大体案内どおりでわかると思うので適当にまぁやってください。
APIとか全然わからんぼくでもまぁなんとかできたので皆さんはもっと大丈夫だと思います。
**Client ID**と**Client Secret**は必要なので控えておいてくださいね。後からでも見れますが。

# 使ってみる！

んじゃ使ってみましょう。
とりあえずリファレンス([Welcome to Spotipy] (https://spotipy.readthedocs.io/en/latest/))にそって使っていきましょう。

インストールはこれでいけるらしいな。ふむ。
Python開発環境を作成済みの方は以下のコマンドでAPIを使えるようにします。
`pip install spotipy`
環境によってはyumとか使って、まぁ`spotipy`ってのを適当にインストールしてください。

どうでもいいけど、Python系のライブラリとかはみんな「py」って付けますね。
すぽちぱいってかわいいですね。発音するのはちょっと恥ずかしい。

リファレンスにあった以下のコードを書いてみます。

```python
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**を使って以下のように書き換えます。

```python
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 [アルバム情報編]](https://qiita.com/EkatoPgm/items/8505a882e4c65ed7b715)（2019.05.02）
[PythonでSpotify API [情報の文字列検索]](https://qiita.com/EkatoPgm/items/289b2efcdb5af49843c1)（2019.05.04）
[PythonでSpotify API [audio_features編]](https://qiita.com/EkatoPgm/items/f88b6f002fd15defce71)（2019.06.01）