如何使用Spotify API向播放列表批量添加歌曲?
Spotify批量添加歌曲到播放列表问题及修改尝试
我在调用Spotify API向播放列表批量添加歌曲时遇到了问题,目前的实现代码如下:
def add_selected_songs(songs, playlist_id): ACCESS_TOKEN = input('Provide Access Token: ') request_data = json.dumps(songs) URL = f'https://api.spotify.com/v1/playlists/{playlist_id}/tracks' response = requests.post( URL, data=request_data, headers={ "Content-Type": "application/json", "Authorization": f"Bearer {ACCESS_TOKEN}" }) response_json = response.json() return response_json
其中songs变量是从另一个播放列表获取的歌曲URI数组,格式示例如下:
['spotify:track:75s1b4uRCk6UPOPBLNdDIA', 'spotify:track:3hqJdqziOPbu422kXaOyII', 'spotify:track:6rdKHwxWa9aqWyoGf1r20v', 'spotify:track:6xQdHOX1Tq3IrKsQdLs0nc', 'spotify:track:66g4mn8jSks0Hu1zEcc81G']
我怀疑问题出在URI的处理或者requests.post()的调用方式上,我对JSON和Spotify API的了解不多,都是从YouTube视频学的。目前我能正常获取播放列表信息,也能单独添加单首歌曲,但批量添加就是不成功,希望有人能帮我找出问题所在!
编辑:
感谢大家的反馈,我修改了代码,现在版本如下:
def add_selected_songs(songs, playlist_id): ACCESS_TOKEN = input('Provide Access Token: ') songList = '%2C'.join(songs) while(songList.find(':') != -1): songList = songList.replace(':','%3A') URL = BASE_URL + f'/playlists/{playlist_id}/tracks?uris={songList}' #之前居然忘了加uris参数,哈哈 response = requests.post( URL, headers={ "Accept": "application/json", "Content-Type": "application/json", "Authorization": f"Bearer {ACCESS_TOKEN}" }) response_json = response.json() return response_json
内容的提问来源于stack exchange,提问作者Grace Metri
相关产品推荐
相关产品推荐

