如何从Spotify API访问本地音乐中的曲目/专辑艺术?

如何从Spotify API访问本地音乐中的曲目/专辑艺术?,api,spotify,Api,Spotify,我正在使用Spotify API构建一个应用程序,作为我自己的学习项目。 该应用程序的目的是为Spotify提供基于web的远程控制,以便我可以使用手机或平板电脑控制桌面上正在运行的Spotify实例。Spotify应用程序使用websockets与我的PythonWeb服务器对话,因此我的核心远程控制功能运行良好,但我遇到了另一个问题 在Spotify应用程序中,当遇到本地文件时(player.track.local=true),player.track.image返回空字符串。播放Spoti

我正在使用Spotify API构建一个应用程序,作为我自己的学习项目。 该应用程序的目的是为Spotify提供基于web的远程控制,以便我可以使用手机或平板电脑控制桌面上正在运行的Spotify实例。Spotify应用程序使用websockets与我的PythonWeb服务器对话,因此我的核心远程控制功能运行良好,但我遇到了另一个问题

在Spotify应用程序中,当遇到本地文件时(player.track.local=true),player.track.image返回空字符串。播放Spotify托管的曲目时,player.track.image始终以“Spotify:image:…”的形式返回URI。我知道Spotify桌面应用程序可以看到相册艺术,因为它显示在左下角的播放器中。我只是无法在我的应用程序中使用它

是否有任何方法可以检索此艺术作品(或者没有找到本地文件的路径,因此我可以自己从Python服务器获取它?)谢谢


-Jeremy

简言之:没有-本地文件的相册艺术不存储在后端,客户端不公开本地数据。

我想是这样的

由于我在使用新的API时遇到了其他问题(例如不再允许访问现在正在播放的信息),我决定坚持使用旧的API,并且我能够从那里开始工作。我利用了播放列表从其内容生成封面图像这一事实,因此我只做了以下工作:

(今天我花了一些时间学习了更多关于阵列的知识,我对其进行了更新,以反映我所做的一些简化)

函数getLocalArt(){ sp.core.library.createPlaylist(“tempPL”); 马赛库里变种; var trackURI=player.track.uri; sp.core.library.getPlaySuri().forEach(函数(p){ 如果(p.name==“tempPL”){ p、 添加(trackURI); 镶嵌=p.覆盖; sp.core.library.removePlaylist(p.uri); } }); 返回马赛库里; } 这对于我来说效果相当好,并返回一个如下所示的字符串:

spotify:mosaic:localfileimage%3AZ%253A%255CiTunes%255CiTunes%2520Media%255music%255cracked%2520Social%2520Scene%255CEarCande.com%255CAll%2520至%2520All%2520(Skeet%2520Skeet%2520Remix)。mp3


这有一个附带的好处,就是为我提供了文件系统中曲目的完整路径,我可以将其传递到我的服务器,这样我就可以使用它来提取相册艺术,以便在我的web remote中显示。我知道
sp.core
不适用于向公众发布的应用程序,但它适用于我的小项目。谢谢。

“这有一个附带的好处,就是为我提供了文件系统中曲目的完整路径”:Yikes,谢谢你的报告。我会把它交给安全小组,这样就可以解决这个问题了。