Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/291.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Spotipy用户播放列表删除曲目问题_Python_Json_Spotify_Spotipy - Fatal编程技术网

Python Spotipy用户播放列表删除曲目问题

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_

我试图使用Spotipy方法删除轨迹的重复出现(因此删除重复)。但是这个功能似乎不起作用;Spotify API调用返回一个错误,即没有授权令牌。
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)