0

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

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

有什么方法可以检索这幅画(或者没有找到本地文件的路径,所以我可以自己从 Python 服务器获取它?)谢谢。

-杰里米

4

2 回答 2

1

我想是这样的。

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

(我更新了这个以反映我今天花了一些时间了解更多关于数组后所做的一些简化)

function getLocalArt() {
    sp.core.library.createPlaylist("tempPL");
    var mosaicURI;
    var trackURI = player.track.uri;
    sp.core.library.getPlaylistsUri().forEach(function (p) {
        if (p.name == "tempPL") {
            p.add(trackURI);
            mosaicURI = p.cover;
            sp.core.library.removePlaylist(p.uri);
        }
    });
    return mosaicURI;  
}

这对我的目的非常有效,并返回一个如下所示的字符串:

spotify:mosaic:localfileimage%3AZ%253A%255CiTunes%255CiTunes%2520Media%255CMusic%255CBroken%2520Social%2520Scene%255CEarCande.com%255CAll%2520To%2520All%2520(Skeet%2520Skeet%2520Remix).mp3

这样做的一个附带好处是为我提供了文件系统中曲目的完整路径,我可以将其传递到我的服务器,这样我就可以使用它来提取专辑封面以显示在我的 Web 遥控器中。我知道sp.core对于分发给公众的应用程序的使用是禁止的,但它适用于我的小项目。谢谢。

于 2013-11-11T20:13:07.790 回答
0

简而言之:不 - 本地文件的专辑封面不存储在后端,客户端不公开本地数据。

于 2013-11-11T08:59:00.320 回答