【问题标题】:Get current user's starred playlist or library and tracks/artists获取当前用户加星标的播放列表或库和曲目/艺术家
【发布时间】:2014-07-05 07:00:34
【问题描述】:

我对此进行了相当多的研究,但找不到任何解决这个特定主题的内容。

我想获取当前用户库中的所有艺术家,甚至只是从特定播放列表中获取所有艺术家,例如“已加星标”播放列表。

当我尝试进入播放列表中的艺术家或曲目时,我会收到'undefined' 回复。

我做错了吗?

这是我用来显示库对象的一些基本 javascript,我得到的只是图像中的内容,但我不知道如何进入各个曲目和艺术家。有什么帮助吗?

require(['$api/models','$api/library'], function(models, library){
    'use strict';
    var Library = library.Library.forCurrentUser();
    console.log(Library.starred);
});

这是我要返回的模型的图像:http://i.imgur.com/ERo0Cx9.png

【问题讨论】:

    标签: javascript spotify spotify-app


    【解决方案1】:

    比这稍微复杂一些。 Library.starred 是一个延迟加载属性的 Playlist 对象。因此,您需要传递要加载的属性,在本例中为 tracks。由于轨道是Collection,因此您需要执行Snapshot,一旦您拥有轨道,您需要指定要从轨道加载的属性。

    这是从您的已加星标播放列表中获取所有曲目并打印出它们的名称和 uri 的代码:

    require(['$api/models','$api/library'], function(models, library){
        'use strict';
        var Library = library.Library.forCurrentUser();
        Library.starred.load('tracks').done(function(playlist) {
            playlist.tracks.snapshot().done(function(tracks) {
                var promises = [];
                // we fetch all the tracks
                for (var i = 0, l = tracks.length; i < l; i++) {
                    var track = tracks.get(i);
                    // fetch the information we need from the tracks
                    // e.g. uri and name
                    promises.push(track.load('uri', 'name'));
                }
    
                models.Promise.join(promises).done(function(tracksPromises) {
                    tracksPromises.forEach(function(tp) {
                        console.log(tp.uri + ' - ' + tp.name);
                    });
                });
            });
        });
    });
    

    【讨论】:

    • 非常感谢! Spotify API 文档让我很困惑。我使用过其他 API,但并不清楚很多方法和东西是如何联系在一起的,而快照是我想寻找的最后一个地方。无论如何,非常感谢您的帮助(会支持您,但我需要更多代表,呵呵)
    • 我最困惑的最后一件事是如何获得一张或一组专辑的“发行”年份。我已经能够获得我图书馆中所有专辑的所有 URI,但我主要只想要专辑的发行年份。我知道查找请求是这样做的,但是在 spotify 桌面客户端 API 中呢?
    • 发行年份本身并未公开。一种解决方法是获取copyrights 属性并尝试从那里提取一年。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多