-
Notifications
You must be signed in to change notification settings - Fork 0
/
get_spotify_data.py
46 lines (33 loc) · 1.08 KB
/
get_spotify_data.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
from requests.models import HTTPError
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
from dotenv import load_dotenv
import os
load_dotenv()
CLIENT_ID = os.getenv('CLIENT_ID')
CLIENT_SECRET= os.getenv('CLIENT_SECERET')
auth_manager = SpotifyClientCredentials(
client_id=CLIENT_ID,
client_secret=CLIENT_SECRET
)
spot = spotipy.Spotify(auth_manager=auth_manager)
def get_songs_in_playlist(user, playlist_uri):
'''
Returns a list of songs from the specified playlist URI.
:param playlist_uri: The Spotify playlist URL.
:returns: A dict of song objects.
'''
tracks = 'tracks'
track = 'track'
items = 'items'
name = 'name'
artists = 'artists'
playlist_songs = {}
playlist = spot.user_playlist(user, playlist_uri)
playlist_name = playlist['name']
for item in playlist[tracks][items]:
title = item[track][name]
artist = item[track][artists][0][name]
playlist_songs[title] = artist
print(f"Playlist {playlist_name} songs: {playlist_songs}")
return playlist_songs