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

在OpenMediaVault上运行含OAuth2.0的Python Spotify脚本遇阻求助

无浏览器环境下Spotify OAuth授权解决方案

你的问题核心是:需要用户授权的OAuth流程(Authorization Code Flow)依赖浏览器交互,但NAS没有图形界面;而Client Credentials Flow是无用户上下文的,无法访问用户私有数据。解决思路是在有浏览器的机器上预获取刷新令牌,之后NAS端用这个刷新令牌自动续期访问令牌,全程无需浏览器。

1. 在本地电脑预生成刷新令牌缓存

修改脚本,让它在本地生成包含刷新令牌的缓存文件,第一次运行时完成浏览器认证即可:

import spotipy
from spotipy.oauth2 import SpotifyOAuth

CLIENT_ID = "你的client_id"
CLIENT_SECRET = "你的client_secret"
REDIRECT_URI = "http://localhost:8888/callback"
USER_ID = "你的user_id"
SCOPE = "user-read-private user-read-email"

# 初始化OAuth客户端,指定缓存文件路径
sp_oauth = SpotifyOAuth(
    client_id=CLIENT_ID,
    client_secret=CLIENT_SECRET,
    redirect_uri=REDIRECT_URI,
    scope=SCOPE,
    username=USER_ID,
    cache_path=".cache-spotify"
)

# 触发认证(第一次会弹浏览器,之后直接读缓存)
token_info = sp_oauth.get_access_token()
print(f"缓存文件已生成:{sp_oauth.cache_path}")

运行这个脚本,在本地完成Spotify账号授权,会在当前目录生成.cache-spotify文件,里面存着刷新令牌。

2. 部署到NAS并修改脚本

把.cache-spotify文件复制到NAS上脚本所在的目录,然后替换NAS上的脚本为以下内容:

import spotipy
from spotipy.oauth2 import SpotifyOAuth

CLIENT_ID = "你的client_id"
CLIENT_SECRET = "你的client_secret"
REDIRECT_URI = "http://localhost:8888/callback"
USER_ID = "你的user_id"
SCOPE = "user-read-private user-read-email"

# 加载本地生成的缓存文件
sp_oauth = SpotifyOAuth(
    client_id=CLIENT_ID,
    client_secret=CLIENT_SECRET,
    redirect_uri=REDIRECT_URI,
    scope=SCOPE,
    username=USER_ID,
    cache_path=".cache-spotify"
)

# 自动检查令牌是否过期,过期则用刷新令牌续期
token_info = sp_oauth.get_access_token()
if sp_oauth.is_token_expired(token_info):
    token_info = sp_oauth.refresh_access_token(token_info["refresh_token"])

# 初始化Spotify客户端并测试
sp = spotipy.Spotify(auth=token_info["access_token"])
user_data = sp.current_user()
print(f"用户ID:{user_data['id']},邮箱:{user_data['email']}")

这个脚本运行时会自动读取缓存里的刷新令牌,无需任何交互,就能获取有效的访问令牌来读取用户信息。

注意事项

  • 缓存文件里的刷新令牌长期有效,除非你在Spotify账号的“已授权应用”里撤销了这个应用的权限。
  • 确保NAS上的Python环境安装了spotipy:pip install spotipy
  • 如果后续需要修改授权范围(SCOPE),需要删除缓存文件,回到本地电脑重新运行第一步的脚本生成新缓存。

内容的提问来源于stack exchange,提问作者PapierFlieger

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 03:01:10