Python Spotipy用户播放列表删除曲目问题
我试图使用Spotipy方法删除轨迹的重复出现(因此删除重复)。但是这个功能似乎不起作用;Spotify API调用返回一个错误,即没有授权令牌。Python Spotipy用户播放列表删除曲目问题,python,json,spotify,spotipy,Python,Json,Spotify,Spotipy,我试图使用Spotipy方法删除轨迹的重复出现(因此删除重复)。但是这个功能似乎不起作用;Spotify API调用返回一个错误,即没有授权令牌。 Spotify API返回错误: { “错误”:{ “状态”:401, “消息”:“未提供令牌” } } Python的错误: File "C:\Users\Dylan\Documents\PythonProjects\PlaylistTransfer\Spotify.py", line 87, in remove_all_duplicate_
Spotify API返回错误:
{
“错误”:{
“状态”:401,
“消息”:“未提供令牌”
}
}
Python的错误:
File "C:\Users\Dylan\Documents\PythonProjects\PlaylistTransfer\Spotify.py", line 87, in remove_all_duplicate_tracks
sp.user_playlist_remove_specific_occurrences_of_tracks(username, playlist_id, tracks)
File "C:\Users\Dylan\Documents\PythonProjects\PlaylistTransfer\venv\lib\site-packages\spotipy\client.py", line 539, in user_playlist_remove_specific_occurrences_of_tracks
payload=payload)
File "C:\Users\Dylan\Documents\PythonProjects\PlaylistTransfer\venv\lib\site-packages\spotipy\client.py", line 183, in _delete
return self._internal_call('DELETE', url, payload, kwargs)
File "C:\Users\Dylan\Documents\PythonProjects\PlaylistTransfer\venv\lib\site-packages\spotipy\client.py", line 124, in _internal_call
headers=r.headers)
spotipy.client.SpotifyException: http status: 400, code:-1 - https://api.spotify.com/v1/___________________________/tracks:
Could not remove tracks, please check parameters.
这是我的密码:
def删除所有重复曲目(播放列表id、令牌):
sp=spotipy.Spotify(令牌)
用户名=获取用户名(令牌)
现有\u曲目=获取\u曲目\u URI\u用于\u播放列表(播放列表\u id,令牌)
重复\u计数器=计数器(现有\u轨道)
曲目=[]
对于uri,计数重复的\u计数器项()
计数=计数-1
如果计数>0:
#硬编码位置为1,用于测试。。。
职位=[1]
#位置=[x代表范围内的x(1,计数+1)]
track_dict={“uri”:uri,“positions”:positions}
tracks.append(track\u dict)
sp.user\u playlist\u删除特定的\u曲目(用户名、播放列表\u id、曲目)
这就是“轨迹”包含的内容:
我测试了其他方法get\u username()
和get\u track\u uris\u for\u playlist
,它们会返回您期望的结果并正常工作。您正在尝试更改用户数据:
无法删除曲目,请检查参数。
传递有效的作用域,例如:
播放列表修改公共
播放列表修改专用
有关作用域的更多信息:
虽然这个答案来得很晚,但它是必要的,因为1)这个问题还没有解决,2)我相信它会对有类似问题的人有所帮助
首先,您应该将问题限制在特定的问题上,这是通过调用sp.user\u playlist\u remove\u specific\u employments\u of_tracks()
函数产生的授权错误。这将使问题更加清楚。(用这种方式说,你必须挖掘代码才能找到“热点”!关于曲目的细节也增加了混乱。)
因此,我将仅限于回答这个问题,并建议使用以下代码作为基础:
# Data
username = (your username)
playlist_id = (playlist id) # The ID of the playlist containing the tracks to be deleted
track_ids = [(track_id), (track_id), ...] # List of track IDs to delete
# Authorization process
scope = "playlist-read-private"
token = spotipy.util.prompt_for_user_token(username, scope=scope)
sp = spotipy.Spotify(auth=token)
# Call the track deletion function
sp.user_playlist_remove_all_occurrences_of_tracks(username, playlist_id, track_ids)
我自己也在使用这个过程。我刚刚用我的数据尝试了上面的代码,它应该也适用于你
# Data
username = (your username)
playlist_id = (playlist id) # The ID of the playlist containing the tracks to be deleted
track_ids = [(track_id), (track_id), ...] # List of track IDs to delete
# Authorization process
scope = "playlist-read-private"
token = spotipy.util.prompt_for_user_token(username, scope=scope)
sp = spotipy.Spotify(auth=token)
# Call the track deletion function
sp.user_playlist_remove_all_occurrences_of_tracks(username, playlist_id, track_ids)