隅田川沿いを歩きつつ

歩きながら考えたことや感じたこと

Spotifyプレイリストの曲のIDを取得する

f:id:chapone:20220403222752p:plain

Spotifyのプレイリストを分析したいと思っています。

今回は、分析するために必要になる曲のIDを取得したいと思います。

Spotifyからspotipyを使ってプレイリスト内の曲のIDを取得する

まずは、コードの全体です。

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import pandas as pd

client_id='CLIENT_ID'
client_secret='CLIENT_SECRET'

client_id_and_secret = SpotifyClientCredentials(client_id, client_secret)
sp = spotipy.Spotify(client_credentials_manager=client_id_and_secret)

user='USER_NAME'
playlist_id = '7qKwh074Msa1UMgsvsZeF1'

playlist_data = sp.user_playlist(user, playlist_id)
tracks = playlist_data['tracks']
items = tracks['items']

for i in range(len(items)):
    print('---------------')
    print(i)
    id = items[i]['track']['album']['id']
    print(id)

コードの説明

まず、Spotifyのライブラリである「spotipy」をインポートして、認証します。

読み込んだデータを確認する用のPandasもインポートします。

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
import pandas as pd

次に、IDとSECRETを読み込んでSpotifyを認証します。

client_id='CLIENT_ID'
client_secret='CLIENT_SECRET'

client_id_and_secret=SpotifyClientCredentials(client_id,client_secret)
sp=spotipy.Spotify(client_credentials_manager=client_id_and_secret)

自分のUSER_NAMEとプレイリストIDを読み込みます。

user='USER_NAME'
playlist_id='7qKwh074Msa1UMgsvsZeF1'

そして、プレイリストデータを取得します。

playlist_data=sp.user_playlist(user,playlist_id)

このままだとわかりずらいので、PandasのDataFrameで表示してみます。

df=pd.DataFrame.from_dict([playlist_data])

「tracks」にデータがありそうです。

f:id:chapone:20220403221300p:plain

「tracks」を見てみます。

tracks=playlist_data['tracks']

Pandasで確認します。

f:id:chapone:20220403221725p:plain

「items」にデータがありそうです。

items=tracks['items']

「items」をPandasで見てみます。

f:id:chapone:20220403222320p:plain

やっと曲のデータを確認できました。

このデータから曲のIDを取り出します。

for i in range(len(items)):
    print('---------------')
    print(i)
    id=items[i]['track']['album']['id']
    print(id)

取り出せました。

---------------
0
7L3eq511jN3Avxa2W4KLzP
---------------
1
55xoykmEm4wOYczA7oWhHI
---------------
2
4D39jrL55p5sgjoUmc1Cer
---------------
3
3iW7B6SbU5wPWX7qKl9Xpc
---------------
4
2A9Tx0DE0z8VHXea0XYnLb

次は、このデータを利用して、曲ごとの分析データを取得したいと思います。