Spotify API から解析情報をとる

# はじめに 
ID取得とかSpotify APIを使うのに必要なことは既に理解している前提で話していきます。 
まだの方は[Spotify API をPythonでちょっと遊ぶ](https://qiita.com/supertower/items/2f6da271cf16389d6e58)からどうぞ 
あとはノート代わりと自分のモチベ維持のために書いてるのでそんなことわかってるよ！っていう場所もあると思います。 
ではスタート
# artist_URL取得
今回はspotifyが楽曲の解析情報を提供してくれているとのことなのでそれをみていきたいと思います。そのためにはまず対象となるアーティストが必要です。誰でもいいんですけど個人的に大好きなポルノグラフィティを選びました。そしたらブラウザ版spotifyを立ち上げて、そこの検索ボックスにポルノグラフィティと入力します。ポルノのアーティスト画面が表示されるのでそこのURLを控えます。そのURL`https://open.spotify.com/artist/5jQa0f5MIMPEK7udL7UpI6`の末尾`5jQa0f5MIMPEK7udL7UpI6`を使います。これで前準備オッケー!! 
# 楽曲IDを取得 
では、楽曲解析を行う対象のtrackidを取ります。前回のプログラムをちょっといじって 
```python: 
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import sys
import pprint
import spotify_id as si

rank = 0
client_id = si.id()
client_secret = si.secret()
client_credentials_manager = spotipy.oauth2.SpotifyClientCredentials(client_id, client_secret)
porno_id = '5jQa0f5MIMPEK7udL7UpI6'

sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)

result = sp.artist_top_tracks(porno_id)
#result = sp.audio_features('6KDmk0EF3Qk7zJfDDtRoF2')
pprint.pprint('name     : ' +result['tracks'][rank]['name'])
pprint.pprint('trackID  : ' +result['tracks'][rank]['id'])
```
これでresultの中のtracknameとtrackIDだけ出力されます。 
```text:
'name     : THE DAY'
'trackID  : 1tjOClAkdMxDfYPO0xvGbG'
```
こんな感じにね
THE DAY!名曲だねえ これが人気一位らしいです。他にもrank変数の中身を変えたら 
```text:
'name     : サウダージ'
'trackID  : 26OxcplUEuMjoqkjwVLcPq'
```
人気◯位の楽曲idも取れます。ただ、上位10位までしか取れないので自分の好きな曲はspotifyの検索ページのURLから取らないといけない...
プログラム上でやる方法もあるんでしょうけどそれはまた別の回で!
# 本題 
では、本題の解析情報をみていこうと思います。でもここまできたら特に難しいところもなく関数にぶっ込んで終わりです。
```python:
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import sys
import pprint
import spotify_id as si

rank = 0 
client_id = si.id()
client_secret = si.secret()
client_credentials_manager = spotipy.oauth2.SpotifyClientCredentials(client_id, client_secret)
porno_id = '5jQa0f5MIMPEK7udL7UpI6'

sp = spotipy.Spotify(client_credentials_manager=client_credentials_manager)

tracks = sp.artist_top_tracks(porno_id)
track_id = tracks['tracks'][rank]['id']
result = sp.audio_features(track_id)
pprint.pprint('name     : ' +tracks['tracks'][rank]['name'])
pprint.pprint(result)
```
これでTHE DAYの楽曲情報が取れました 
```text:
'name     : THE DAY'
[{'acousticness': 0.000761,
  'analysis_url': 'https://api.spotify.com/v1/audio-analysis/1tjOClAkdMxDfYPO0xvGbG',
  'danceability': 0.512,
  'duration_ms': 241627,
  'energy': 0.933,
  'id': '1tjOClAkdMxDfYPO0xvGbG',
  'instrumentalness': 0,
  'key': 1,
  'liveness': 0.342,
  'loudness': -4.759,
  'mode': 0,
  'speechiness': 0.0738,
  'tempo': 92.998,
  'time_signature': 4,
  'track_href': 'https://api.spotify.com/v1/tracks/1tjOClAkdMxDfYPO0xvGbG',
  'type': 'audio_features',
  'uri': 'spotify:track:1tjOClAkdMxDfYPO0xvGbG',
  'valence': 0.465}]
```
各パラメータの説明は公式リファレンス参考　
細かく設定されてて壮観ですね 
このパラメータを使って自作レコメンド機能を作るのを最終目標として勉強していきます。 
というわけで今回はここまで 
やることがいっぱい...

### 参考 
[PythonでSpotify API [audio_features編]](https://qiita.com/EkatoPgm/items/f88b6f002fd15defce71)
[Spotify API公式リファレンス](https://developer.spotify.com/documentation/web-api/reference/#/)
[Spotipy リファレンス](https://spotipy.readthedocs.io/en/latest/?highlight=tracks)