使用Spotipy添加曲目到播放列表时遇Invalid base62 id错误求助
解决Spotipy的Invalid base62 id或URI错误
核心问题
spotipy.Spotify.playlist_add_items()方法的第二个参数必须传入曲目ID/URI的列表,哪怕只添加一首曲目,也不能直接传单个字符串。你的所有错误都是因为第二个参数传了单个值,而非列表。
错误场景拆解
- 直接传单个ID:
sp.playlist_add_items('7AatTbqsTPhQ4bTRDqXaQH', '6nz35DNIzbtj5ztpDEcW1j')
单个字符串会被Spotipy当作可迭代对象遍历每个字符,每个字符被解析成无效的ID片段,触发Invalid base62 id错误。 - 传单个URI:
sp.playlist_add_items('spotify:playlist:7AatTbqsTPhQ4bTRDqXaQH', 'spotify:track:6nz35DNIzbtj5ztpDEcW1j')
同样因为不是列表,Spotipy无法正确解析,返回URI格式错误。 - 取列表单个元素:
sp.playlist_add_items('7AatTbqsTPhQ4bTRDqXaQH', tracks[0])tracks[0]是单个字符串,本质和第一种情况一致,仍会触发错误。
修正后的代码
格式1:传入纯ID列表
import requests import os import spotipy from spotipy.oauth2 import SpotifyOAuth os.environ['SPOTIPY_CLIENT_ID'] = '$MY_CLIENT_ID' os.environ['SPOTIPY_CLIENT_SECRET'] = '$MY_CLIENT_SECRET' os.environ['SPOTIPY_REDIRECT_URI'] = 'http://localhost' scope = "playlist-modify-public playlist-modify-private user-library-modify" sp = spotipy.Spotify(auth_manager=SpotifyOAuth(scope=scope)) # 第二个参数改为列表 sp.playlist_add_items('7AatTbqsTPhQ4bTRDqXaQH', ['6nz35DNIzbtj5ztpDEcW1j'])
格式2:传入带前缀的URI列表
# 播放列表和曲目都用完整URI,第二个参数仍为列表 sp.playlist_add_items('spotify:playlist:7AatTbqsTPhQ4bTRDqXaQH', ['spotify:track:6nz35DNIzbtj5ztpDEcW1j'])
批量添加示例
如果要添加多首曲目,直接扩展列表即可:
track_ids = ['6nz35DNIzbtj5ztpDEcW1j', '其他曲目ID'] sp.playlist_add_items('7AatTbqsTPhQ4bTRDqXaQH', track_ids)
内容的提问来源于stack exchange,提问作者Marc J
相关产品推荐
相关产品推荐

