如何用Python开发Spotify歌曲抓取机器人并批量添加歌曲至播放列表?
用Python批量添加歌曲到Spotify播放列表的实现方案
完全可以用Python实现这个需求,核心是借助Spotify官方API,配合第三方库spotipy简化开发流程,以下是具体实现步骤:
1. 准备工作
- 注册Spotify开发者账号,进入开发者控制台创建新应用,获取Client ID和Client Secret。
- 在应用设置里添加重定向URI(比如
http://localhost:8080,后续授权会用到)。 - 安装
spotipy库:pip install spotipy
2. 核心代码实现
授权与初始化
先完成API授权,获取操作播放列表的权限:
import spotipy from spotipy.oauth2 import SpotifyOAuth # 替换成你的信息 CLIENT_ID = "你的Client ID" CLIENT_SECRET = "你的Client Secret" REDIRECT_URI = "http://localhost:8080" PLAYLIST_ID = "目标播放列表的ID" # 从播放列表URL中提取 # 初始化Spotify客户端,请求必要权限 sp = spotipy.Spotify( auth_manager=SpotifyOAuth( client_id=CLIENT_ID, client_secret=CLIENT_SECRET, redirect_uri=REDIRECT_URI, scope="playlist-modify-public playlist-modify-private" ) )
批量搜索并添加歌曲
假设你的歌曲列表是「歌曲名 - 歌手名」格式的列表,编写函数处理搜索和添加:
def add_songs_to_playlist(song_list, playlist_id): track_uris = [] for song in song_list: # 搜索歌曲,优先匹配标题+歌手 result = sp.search(q=song, type="track", limit=1) if result["tracks"]["items"]: track_uri = result["tracks"]["items"][0]["uri"] track_uris.append(track_uri) print(f"找到歌曲:{song},已加入待添加列表") else: print(f"未找到歌曲:{song}") # 批量添加到播放列表(API支持一次最多添加100首) if track_uris: sp.playlist_add_items(playlist_id=playlist_id, items=track_uris) print(f"成功添加{len(track_uris)}首歌曲到播放列表") # 示例歌曲列表 my_songs = [ "Blinding Lights - The Weeknd", "Levitating - Dua Lipa", "As It Was - Harry Styles" ] # 执行添加 add_songs_to_playlist(my_songs, PLAYLIST_ID)
3. 注意事项
- 播放列表ID获取:打开Spotify网页版,进入目标播放列表,URL中
playlist/后面的字符串就是ID。 - 权限范围:私有播放列表需确保
scope包含playlist-modify-private;公开列表用playlist-modify-public。 - API调用限制:Spotify API有请求频率限制,批量处理大量歌曲时可添加
time.sleep(1)避免限流。 - 搜索准确性:统一用「歌曲名 - 歌手名」格式的列表,能提升匹配准确率,减少找不到的情况。
内容的提问来源于stack exchange,提问作者shge
相关产品推荐
相关产品推荐

