如何通过Spotify API自动获取专辑URI?
解决方案
一、通过专辑名称自动获取URI
- 调用Spotify Search API,指定搜索类型为
album,传入专辑名称即可返回匹配结果,从中提取专辑URI。 - 代码示例(基于spotipy库):
import spotipy from spotipy.oauth2 import SpotifyClientCredentials # 初始化客户端 client_id = "你的Client ID" client_secret = "你的Client Secret" sp = spotipy.Spotify(auth_manager=SpotifyClientCredentials(client_id=client_id, client_secret=client_secret)) def get_album_uri(album_name): # 搜索专辑,返回最匹配的1个结果 results = sp.search(q=album_name, type='album', limit=1) if results['albums']['items']: return results['albums']['items'][0]['uri'] else: return None # 调用示例 album_uri = get_album_uri("目标专辑名称") if album_uri: print(f"专辑URI: {album_uri}") else: print("未找到匹配的专辑")
- 优化建议:如果存在同名专辑,可在搜索关键词中加入艺术家名称(格式:
q=f"{album_name} artist:目标艺术家名"),或调整limit参数返回更多结果后手动筛选,提升匹配准确性。
二、直接通过曲目名称获取音频特征
- 无需先获取专辑URI,直接调用Search API搜索曲目,拿到曲目ID后调用
audio_features接口即可提取特征。 - 代码示例:
def get_track_features(track_name): # 搜索曲目,返回最匹配的1个结果 results = sp.search(q=track_name, type='track', limit=1) if results['tracks']['items']: track_id = results['tracks']['items'][0]['id'] features = sp.audio_features(track_id)[0] return features else: return None # 调用示例 track_features = get_track_features("目标曲目名称") if track_features: print(f"曲目特征: {track_features}") else: print("未找到匹配的曲目")
- 优化建议:同样可加入艺术家名称缩小搜索范围,避免同名曲目干扰。
批量处理注意事项
- 将需要处理的专辑名/曲目名存入JSON或CSV文件,通过循环遍历调用上述函数,完全替代手动操作。
- Spotify API有请求频率限制,批量处理时可加入
time.sleep(1)这类延时逻辑,避免触发限流。
内容的提问来源于stack exchange,提问作者TF7
相关产品推荐
相关产品推荐

