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

使用Spotify API添加曲目至播放列表时出现400 Bad Request错误

嘿,我之前在对接Spotify API的时候也踩过类似的坑,结合官方文档和实际排查经验,给你梳理几个最可能的问题点,你可以逐一检查:

一、权限范围(Scope)是否足够

你提到已经授权了创建公开播放列表的权限,但添加曲目需要的是专门的修改权限:如果是公开播放列表,需要playlist-modify-public;如果是私有播放列表,需要playlist-modify-private。

  • 先确认你的scope列表里包含对应的权限,比如:
    let scopes = 'playlist-modify-public playlist-modify-private';
    
  • 划重点:如果之前已经用旧的scope授权过,必须让用户重新授权(可以在授权URL里加show_dialog=true强制弹出授权窗口),否则新的权限不会生效。
二、请求格式是否符合要求

向播放列表添加曲目是POST请求,几个容易出错的细节:

  1. 请求头必须携带有效的Access Token:
    确保Authorization字段格式是Bearer {你的access_token},而且token不能过期(Spotify的access token默认有效期1小时,过期后需要用refresh token刷新)。
  2. 请求体的格式不能错:
    必须是JSON格式,且uris字段是包含完整曲目URI的数组,示例代码如下:
    fetch(`https://api.spotify.com/v1/playlists/${playlistId}/tracks`, {
      method: 'POST',
      headers: {
        'Authorization': `Bearer ${accessToken}`,
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        uris: ['spotify:track:4iV5W9uYEdYUVa79Axb7Rh', 'spotify:track:1301WleyT98MSxVHPZCA6M']
      })
    })
    
    • 注意:曲目URI必须是spotify:track:{track_id}的完整格式,不能只传track_id。
  3. 确认playlistId的正确性:
    检查你拿到的playlistId是否是目标播放列表的正确ID,避免把用户ID或其他参数当成了播放列表ID。
三、播放列表的权限归属问题

如果这个播放列表不是当前授权用户创建的,而是用户关注的他人播放列表,需要确认该播放列表是否开启了协作编辑权限。如果是私有播放列表且不属于当前用户,你是没有权限修改它的。

四、查看具体的错误响应信息

Spotify API的错误提示非常明确,建议在请求里捕获错误并打印,比如:

.then(response => {
  if (!response.ok) {
    return response.json().then(err => { throw err; });
  }
  return response.json();
})
.catch(error => {
  console.error('添加曲目失败详情:', error);
});

根据错误信息就能快速定位问题:比如403是权限不足,404是播放列表不存在,400是请求格式错误,error.message里会有更具体的说明。

内容的提问来源于stack exchange,提问作者maxccpage

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 07:56:23