首页 文章

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

提问于
浏览
0

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

在Spotify应用程序中,遇到 local file (player.track.local = true)时, player.track.image returns an empty string . 播放Spotify托管轨道时,player.track.image始终以"spotify:image:..."的形式返回URI . 我知道Spotify Desktop应用程序可以看到专辑封面,因为它显示在左下方的播放器中 . 我只是无法访问它在我的应用程序中使用 .

Is there any way to retrieve this art (或者没有通过本地文件的路径,所以我可以自己从Python服务器上获取它?)谢谢 .

-Jeremy

2 回答

  • 0

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

  • 0

    我认为就是这样 .

    由于我遇到了新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 的使用对于分发给公众的应用程序是禁止的,但它适用于我的小项目 . 谢谢 .

相关问题