Spotify API:搜索中的随机性

Posted

技术标签:

【中文标题】Spotify API:搜索中的随机性【英文标题】:Spotify API: Randomness in search 【发布时间】: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 错误有什么建议吗?

非常感谢您!

【问题讨论】:

【参考方案1】:

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

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

【讨论】:

以上是关于Spotify API:搜索中的随机性的主要内容,如果未能解决你的问题,请参考以下文章

Spotify API,预加载封面艺术

使用 Spotify webAPI 播放艺术家(ID)的随机专辑

如何使用我的 spotify api 令牌?

Spotify API:如何仅为我自己获取访问令牌

spotify api 获取用户的播放列表

Spotify 公共搜索 API