You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 00:20:30