Spotify 创建播放列表并添加曲目

Posted

技术标签:

【中文标题】Spotify 创建播放列表并添加曲目【英文标题】:Spotify create playlist and add tracks 【发布时间】:2014-01-28 10:34:09 【问题描述】:

我正在尝试向我的应用 API 1.0 添加“另存为播放列表”按钮。

谁能帮我弄清楚这里出了什么问题?

var player_obj = models.Album.fromURI('spotify:album:7o7UHh5PfO1kY4YoxqrwN7');
player_obj.load('tracks').done(function(a)
    var saved_playlist = new models.Playlist.create(player_obj.name);
    console.log(saved_playlist);
    a.tracks.snapshot().done(function(snapshot)
        for (var i = 0, l = snapshot.length; i < l; i++) 
            var track = snapshot.get(i);
            saved_playlist.add(track);
        
    );
);

得到错误: Uncaught TypeError: Object # has no method 'add'

播放列表已创建,但它是空的。

当 player_obj 是播放列表时,我会遇到同样的错误,但播放列表的创建部分是使用“正在加载...”,其中名称位于左侧。

var player_obj = models.Playlist.fromURI('spotify:user:diannallm:playlist:7A5y9BA7dxQfOdEoN8igbY');

【问题讨论】:

你在哪一行得到这个错误? 【参考方案1】:

终于想通了。

player_obj.load('tracks').done(function(po)
    models.Playlist.create(player_obj.name).done(function(new_playlist) 
        new_playlist.load('tracks').done(function(new_playlist_tracks) 
            po.tracks.snapshot().done(function(tracksnapshot)
                new_playlist_tracks.tracks.add(tracksnapshot.toArray());
                /*
                //This also works, but is less efficient and tracks may be entered out of order
                for (var i=0; i<tracksnapshot.length; i++)
                    var track = tracksnapshot.get(i);
                    new_playlist_tracks.tracks.add(track);
                
                */
            );
        );
    );
);

【讨论】:

以上是关于Spotify 创建播放列表并添加曲目的主要内容,如果未能解决你的问题,请参考以下文章

使用 spotify-api-server 添加曲目到 Spotify 播放列表

如何将曲目添加到 Spotify 中的“已加星标”播放列表?

Spotify Web API 播放端点 - 播放曲目

Spotify + AppleScript:将当前曲目添加到播放列表

如何在 Spotify 中自动播放热门曲目?

使用 Spotify iOS SDK 关注播放列表