我试图获得用户的前50首歌曲,以及每首歌曲的艺术家和流派。如何执行此操作并将其存储为json/csv文件?我想根据用户最常播放的歌曲来分析其音乐品味。我需要在python中实现这一点的帮助
import spotipy
from spotipy.oauth2 import *
CLIENT_ID="1415a876b86b41f6a43539db41fd****"
CLIENT_SECRET="fa1abef4174e47a9b14b8dedd4e8****"
REDIRECT_URI="http://127.0.0.1:5000/"
scopes=[
"user-top-read",
]
scopes=" ".join(scopes)
class Track:
def __init__(self,track):
self.name=track['track']['name']
self.image_url=track['track']['album']['images'][1]['url']
artists=track['track']['artists']
self.artists=", ".join(list(artists[i]['name'] for i in range(len(artists))))
dur=track['track']['duration_ms']//1000
self.duration=":".join([str(dur//60),"0"*(dur%60<10)+str(dur%60)])
self.preview_url=track['track']['preview_url']
def __str__(self):
return f"{self.name}-{self.artists}-{self.duration}\n{self.preview_url}\n{self.image_url}"
sp = spotipy.Spotify(
auth_manager=SpotifyOAuth(client_id=CLIENT_ID,
client_secret=CLIENT_SECRET,
redirect_uri=REDIRECT_URI,
scope=scopes))
results = sp.current_user_playlists()
item=results['items'][0]
image_url=item['images'][1]['url']
name=item['name']
owner=item['owner']['display_name']
tracks=sp.playlist_items(item['uri'])
final_tracks=[]
for track in tracks['items']:
final_tracks.append(Track(track))
print(name,owner,image_url)
for track in final_tracks:
print(track)
目前没有回答
相关问题 更多 >
编程相关推荐