使用Python中的Spotify API在设备上播放歌曲而无需用户登录



我正在创建一个程序,在我的Amazon Echo上播放音乐。我只想要一个脚本——给定曲目的URI——将开始在我的设备上播放它。

我一直在使用Spotipy库来做这件事。然而,我遇到了一个问题。当我使用SpotifyClientCredentials:设置凭据时

spotify = spotipy.Spotify(auth_manager=SpotifyClientCredentials(client_id=client_id, client_secret=client_secret))

我得到一个错误Player command failed: Premium required, reason: PREMIUM_REQUIRED

在做了一些研究之后,我似乎需要使用OAuth登录并执行此操作,因为该设备是特定于我的帐户的。

所以,我有这样的代码:

spotify = spotipy.Spotify(auth_manager=SpotifyOAuth(client_id=client_id,
client_secret=client_secret,
redirect_uri='https://localhost:8080/',
scope='user-library-read'))

然而,即使我这样做了,我的浏览器也不会在URL中提供任何密钥,窗口只显示INVALID_CLIENT: Invalid redirect URI

此外,这是一个更大的脚本的一部分,该脚本将从NFC标签中读取Spotify URL并开始播放歌曲。我不想在程序创建后手动登录或让用户手动做任何事情。

既然这不是一个公共网络应用程序,而且只是为我准备的,有没有办法让这样的脚本只播放给定客户端id/secret或用户登录信息的歌曲?如果没有,我可以放什么重定向URI来实现这一点?

我只是在播放这首歌:

spotify.start_playback(device_id=echo_id, uris=[test_track_uri])

非常感谢。

我发现我只需要将回调URI添加到Spotify设置中,一切都成功了。它还保存了凭据,所以我只需要登录一次。

最新更新