-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgetPlaylist.py
35 lines (25 loc) · 1.25 KB
/
getPlaylist.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
import Data.Input.myKeys as myKeys
import util, json
import pandas as pd
import spotipy
from spotipy.oauth2 import SpotifyClientCredentials
# set Client ID and Secret
cid = myKeys.clientID
secret = myKeys.secret
# spotipy credentials manager
client_credentials_manager = SpotifyClientCredentials(client_id=cid, client_secret=secret)
sp = spotipy.Spotify(client_credentials_manager = client_credentials_manager)
username = myKeys.userName # username of playlist's user (numeric in this case)
playlist_id = myKeys.playlistId # playlist id (can be pulled from playlist url)
results = sp.user_playlist_tracks(username,playlist_id)['tracks'] # returns json object
tracks = results['items']
while results['next']:
results = sp.next(results) # next if paginated results
tracks.extend(results['items']) # extend list
playlistSongs = pd.DataFrame() # create empty dataframe
playlistSongs['artistName'] = None;playlistSongs['trackName'] = None
for i in range(len(tracks)):
song = tracks[i]
playlistSongs.loc[i, 'artistName'] = str(song['track']['artists'][0]['name']) # select artist name
playlistSongs.loc[i, 'trackName'] = str(song['track']['name']) # select track name
playlistSongs.to_csv(r'Data\Input\retrievedPlaylist.csv', index=False) # save to csv