使用 Spotipy 将曲目添加到播放列表时出现多个错误

Posted

技术标签:

【中文标题】使用 Spotipy 将曲目添加到播放列表时出现多个错误【英文标题】:Multiple errors when adding tracks to playlist using Spotipy 【发布时间】:2020-09-17 12:53:40 【问题描述】:

我正在尝试将曲目添加到我的 Spotify 播放列表之一,并且我很确定我的所有代码都完全正确,如 Spotipy 文档中所述:

username = '*myusername*'
scope = 'playlist-modify-public'

playlist_id = '*myplaylistid*'
track_ids = *array of track ids*

token = util.prompt_for_user_token(username,
                           scope,
                           client_id='*myclientid*',
                           client_secret='*mysecretclientid*',
                           redirect_uri='http://localhost:8888/callback/')
spotify = spotipy.Spotify(auth=token)

results = spotify.user_playlist_add_tracks(username, playlist_id, track_ids)

但是,无论我尝试什么,我都会收到以下两个错误:

HTTPError: 400 Client Error: Bad Request for url: https://api.spotify.com/v1/users/*myusername*/playlists/*myplaylist*/tracks

During handling of the above exception, another exception occurred:

SpotifyException: http status: 400, code:-1 - https://api.spotify.com/v1/users/*myusername*/playlists/*myplaylist*/tracks:
 Invalid track uri: spotify:track:*trackid*

它指定了无效的曲目 uri,但是对于我列表中的每个曲目,我通过在 Spotify 中搜索 uri 进行了测试,它确实有效。

我尝试过的解决方案无济于事: 1. 播放列表和曲目列表的 ID 和 URI 之间的更改 2. 使用 OAuth 进行身份验证 3. 使用不同的播放列表和曲目 4. 使用不同的redirect_uri

5 个示例轨道 URI 供参考:

spotify:track:1rdHsnsGmleo6MRctkkFmm?si=7R0IKQ9xTgiwfLAJO7eFCw
spotify:track:70CMnzQ3FjMmUk5NPdQJBe?si=qL_WwgWVRTaSZ2oOBg2eCA
spotify:track:6bbx7nYlixYuElKMbYCzMm?si=Wu64S-obRaOOh3mFP3zWwA
spotify:track:6DZNQKNUskiWVSXs3cQPk3?si=SIW3hBU1SiWd_h1gpXwijg
spotify:track:2FMPIU8FdP9kCi5kUCSGnE?si=jtJOkQhsSF6GoD3otgtV3A

不胜感激!谢谢

【问题讨论】:

错误提示轨道 URI 无效。请提供您使用的轨道 URI,以便我们检查它是否有效 嗨@StéphaneBruckert,感谢您的回复。我已使用列表中的 5 个示例轨道 URI 更新了帖子 【参考方案1】:

轨道 URI 不应包含 ?si=,而只能包含之前的内容。见https://developer.spotify.com/documentation/web-api/#spotify-uris-and-ids

您可以修复您的代码以仅保留第一部分:

track_uris = [uri.split("?si=")[0] for uri in track_uris]

【讨论】:

以上是关于使用 Spotipy 将曲目添加到播放列表时出现多个错误的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Spotipy 获取 Spotify 的曲目时长

将多个范围与 spotipy 一起使用

无法在 Spotipy 中获取新令牌

阅读艺术家列表,使用 Spotipy 将热门歌曲添加到播放列表

Spotify API:第一次尝试将曲目添加到播放列表时出错,第二次尝试有效

如何将曲目添加到 Spotify 中的“已加星标”播放列表?