You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 17:54:33