隅田川沿いを歩きつつ

Manual & Tips for me

spotipyでSpotifyプレイリストのデータを取る

音楽が好きで、Spotifyで新しい曲を探してます。

良い曲はプレイリストにして、まとめています。

そのプレイリストを分析して、自分の好きな音楽を知れないかな、と思っています。

Spotifyで分析するためには、データが必要です。

spotipyというライブラリを利用して、データを取ります。

以下の記事を参考にさせていただきました。

knowledge.insight-lab.co.jp

spotipyライブラリを使う手順

ざっくり手順を確認します。

  1. spotipyをインポート
  2. 認証をインポート
  3. idとsecretを変数に入れる
  4. spotipyを読み込む
  5. ユーザー名とプレイリストIDを設定する
  6. プレイリストデータを取得する

詳細

spotipyをインストールします。

pip install spotipy

まず、spotipyと認証ライブラリ(?)をインポートします。

import spotipy
from spotipy.oauth2 import SpotifyClientCredentials

そして、idを設定します。
idはSpotifyDashboardで取得します。

developer.spotify.com

取得したIDとSECRETを設定します。
IDとSECRETは32桁くらいの文字列です。

client_id='ここに取得したIDを入れる'
client_secret='ここに取得したSECRETを入れる'

IDとSECRETを認証(?)したものを変数に入れます。

client_id_secret = SpotifyClientCredentials(client_id, client_secret)

次に、spotipyを読み込んで、変数spに入れます。

sp = spotipy.Spotify(client_credentials_manager=client_id_secret)

次に、ユーザー名と取得したいプレイリストを設定します。

user = 'Spotifyのユーザー名を入れてください'
playlist_id = '59aGQ5CfHNPhLe0OzbvBDD'

最後に、プレイリストデータを取得します。

playlist_data = sp.user_playlist(user, playlist_id)

確認します。

{'collaborative': False,
 'description': '2022年11週目のプレイリスト',
 'external_urls': {'spotify': 'https://open.spotify.com/playlist/7qKwh074Msa1UMgsvsZeF1'},
 'followers': {'href': None, 'total': 0},
 'href': 'https://api.spotify.com/v1/playlists/7qKwh074Msa1UMgsvsZeF1?additional_types=track',
 'id': '7qKwh074Msa1UMgsvsZeF1',
 'images': [{'height': 640,
   'url': 'https://mosaic.scdn.co/640/ab67616d0000b27365134bf14c71182753b148acab67616d0000b27395d8c3f4c8b1eba5ad67c910ab67616d0000b273b52af5dbb146e83899a351a4ab67616d0000b273e9f07089161121bb12051264',
   'width': 640},
  {'height': 300,
   'url': 'https://mosaic.scdn.co/300/ab67616d0000b27365134bf14c71182753b148acab67616d0000b27395d8c3f4c8b1eba5ad67c910ab67616d0000b273b52af5dbb146e83899a351a4ab67616d0000b273e9f07089161121bb12051264',
   'width': 300},
  {'height': 60,
   'url': 'https://mosaic.scdn.co/60/ab67616d0000b27365134bf14c71182753b148acab67616d0000b27395d8c3f4c8b1eba5ad67c910ab67616d0000b273b52af5dbb146e83899a351a4ab67616d0000b273e9f07089161121bb12051264',
   'width': 60}],
 'name': '11weeks2022',
 'owner': {'display_name': 'yusakuhamajima',
  'external_urls': {'spotify': 'https://open.spotify.com/user/yusakuhamajima'},
  'href': 'https://api.spotify.com/v1/users/yusakuhamajima',
  'id': 'yusakuhamajima',
  'type': 'user',
  'uri': 'spotify:user:yusakuhamajima'},
 'primary_color': None,
 'public': True,
 'snapshot_id': 'NDEsNjc4MWI1ODEyNTJlOWNkODkxOTJmY2Y3ZjBjOGI0ZmQ1YTUwYjAxNg==',
...
  'offset': 0,
  'previous': None,
  'total': 5},
 'type': 'playlist',
 'uri': 'spotify:playlist:7qKwh074Msa1UMgsvsZeF1'}

無事にプレイリストデータを取得できました。