当前位置: 首页 > 知识库问答 >
问题:

Spotify预览API搜索曲目和专辑

谭志用
2023-03-14

我目前正在尝试将Spotify应用程序迁移到api的新1.0版本。

我在搜索方面有问题。我想用搜索字符串搜索目录,并从搜索结果中获取所有曲目信息、艺术家姓名和专辑名称。但是,搜索结果中似乎不包括唱片集名称(仅URI:s)。

之后我是否必须异步加载所有结果曲目的所有唱片集名称?如果可能的话,我想避免这种情况。

我正在这样寻找

var search = Search.search(searchString);
search.tracks.snapshot().done(function(snapshot) {
    var results = snapshot.toArray();
    // no album names in the results tracks
}).fail(function() {
    console.error('Error retrieving snapshot');
});

共有1个答案

史昊焱
2023-03-14

在API 1.0中,有些数据不会自动检索。这意味着,理想情况下,您将只获取所需的数据,从而减少数据流量并提高性能。缺点是,您将需要自己编写曲目数组和专辑名称,以异步方式获取数据。

对于每个要获取其唱片集名称的曲目。这就是你要做的:

var maxTracks = 15;
var search = Search.search(searchString);
search.tracks.snapshot(0, maxTracks).done(function(snapshot) {
  snapshot.toArray().forEach(function(result) {
    result.album.load('name').done(function(album) {
      // here you have access to the album.name attribute
    });
  });
}).fail(function() {
  console.error('Error retrieving snapshot');
});

这种方法的问题是,您将以不同于轨道出现的顺序显示数据。如果您需要保持订单,您可以使用Promise对象:

var maxTracks = 15;
var search = Search.search(searchString);
search.tracks.snapshot(0, maxTracks).done(function(snapshot) {
  var promises = [];
  snapshot.toArray().forEach(function(result) {
    promises.push(result.album.load('name'));
  });
  models.Promise.join(promises)
    .done(function(albums) { console.log('Loaded all albums.', albums); })
    .fail(function(albums) { console.log('Failed to load at least one album.', albums); });
}).fail(function() {
    console.error('Error retrieving snapshot');
});

使用Promises数组将保持与曲目相同的顺序。

 类似资料:
  • API流改变了吗? 我再也不能为搜索曲目或艺术家进行简单的公共API调用了? 此外,我在Spotify文档中看到,如果查询字符串中提供了market=from_token,则需要授权。否则,可选。

  • 我正在学习node,我正在尝试使用spotifyapi搜索并返回一个艺术家。页面加载了所有内容,但是当我尝试搜索时,我得到了这个错误 经过一番挖掘,我发现我出现这个错误的原因是: 在中,chunk正在返回 请求的路径(假定)是api.spotify.com/v1/search?q=sam

  • 我将LastFM API中的艺术家、曲目和专辑存储在一个小部件中。我想在用户单击play时播放Spotify歌曲的30秒片段。有可能这样做吗?我正在努力寻找一种方法。。尤其是在没有用户身份验证/权限的情况下。 Spotify应用程序API:播放专辑中的特定曲目 这看起来很有希望,但我不确定这是否是我所说的。。。 如果有人能给我指出正确的方向(使用什么样的API调用),那就太好了!我可以从那里找到剩

  • 我正在创建音乐应用程序。应用程序需要检索有关曲目、专辑和艺术家的信息。它当前显示的是atm。我用的是最后一台调频收音机。不过,我想添加Spotify,这样它就可以检索曲目进行播放。 我想添加一个曲目的预览,所以当用户点击应用程序上的曲目,他们点击播放,它播放歌曲(预览)。我想打开另一个xib,它将有这首歌的预览。我已经为我的应用程序提供了代码。截图来显示它是如何流动的。 这是我第一次申请,请帮忙。

  • 我正在尝试搜索Spotify中的曲目元数据。我想看看Spotify是否有一首来自YouTube视频的歌曲。这是我用于进行搜索的URL模板: 由于很难确定搜索查询的哪一部分是艺术家还是曲目,因此我将这两种类型添加为搜索查询的类型。 然而,当我得到一个YouTube的视频,标题是这样的:“凯蒂·佩里——我们是这样做的(官方视频)[·莱特拉·西班牙语——歌词英语”,并将其用作我的搜索词时,我得到了0个结

  • 最初的计划是把这写成一篇博客文章,标题是“Spotify元数据应用编程接口的低效:或者,杰克逊5是如何杀死我的浏览器的”,但在最后一刻改变了主意,因为我有一个习惯,就是错过留档中显而易见的东西,也许是一个未记录的功能可能存在,我错过了,或者其他人已经解决了这个问题-因此这个问题有一定的博客帖子语气! 我正在开发一个小型网络应用程序,主要是为一小群人开发的,它允许任何人更新Spotify播放列表。因