【问题标题】:Spotify API: Randomness in searchSpotify API:搜索中的随机性
【发布时间】:2021-09-01 11:48:56
【问题描述】:

对于我的论文,我正在尝试从 API 中抓取随机 Spotify 数据。

我正在寻找特定年份和流派的美国音乐,这些在我的 API 搜索中定义。

但是,为了进一步扩展我的数据集,我想在 API 中为我的搜索添加随机性,例如通过添加随机通配符(基于这篇文章:Spotify API: get random songs)。

这是我没有通配符的代码:

for(j in 1:length(YEAR)){
for(h in 1:length(shortlist)){
for (i in 1:100){
  temporary_url[i] = paste0("https://api.spotify.com/v1/search?query=", 
                          "year:", YEAR[j], "+", # I'm looking for 2014:2019 tracks
                          "genre:", shortlist[h], # list of 6 genres that I'm interested in
                          "&type=", TYPE, # tracks instead of artists
                          "&market=", MARKET,  # US Market
                          "&limit=", LIMIT, # maximum allowed tracks per request
                          "&offset=", sample(c(1:999), 1), # create random offset for a little bit randomness
                          "&include_external=audio")
}
  df_url <- c(df_url, temporary_url)
  temporary_url <- NA
}
}

到目前为止,我还没有成功添加随机性。一旦我在搜索中使用随机元音添加随机数。当我这样做时,API 返回 404 错误。如果我不这样做,我会收到 200 OK 消息,表明我的搜索成功。

到目前为止,我的方法是存储一个向量(例如 %25a%25'、'a%25'、...)并使用示例函数将其中一个字符串添加到 URL。这在“年份:”之前是我的功能的一部分。这将返回错误。

有人对我如何改进我当前的 API URL 以使其具有随机性而不返回 404 错误有什么建议吗?

非常感谢您!

【问题讨论】:

    标签: r api spotify


    【解决方案1】:

    几个月前我在开发 Randify(一个随机 Spotify 播放列表生成器)之前也有同样的问题。为了获得随机歌曲,我尝试了多种方法,其中一些可以正常工作的地方如下:

    • 使用带有 q 参数“%25a%25”的 API 函数搜索或使用任何其他随机字母代替 a。这将为您提供名称中带有 a 的歌曲。然后,您可以将偏移参数设置为随机数,您将获得使用搜索功能获得的 1000 首歌曲中的一首。这样做的问题是,搜索功能会根据听歌曲的人数对音乐进行排序,并且只会显示流行音乐。
    • 为了解决“流行音乐”问题,我认为最好的选择是获取歌曲数据库并使用相同的搜索功能,将歌曲名称添加为 q 参数,因此搜索会更具体,并且会找到不受欢迎的结果。我使用的数据库是MusicBrainz,其中有多达3000万首歌曲。我仍然使用随机偏移参数,并且在将歌曲添加到播放列表之前,必须检查歌曲是否在 Spotify 中(并非数据库中的所有歌曲都在 Spotify 中)。效果很好,我为结果感到非常自豪。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-04
      • 2018-10-27
      • 2018-09-09
      • 2018-06-12
      • 2015-11-13
      • 1970-01-01
      • 2017-09-19
      • 2019-09-10
      相关资源
      最近更新 更多