给定歌曲名称和艺术家姓名,我尝试使用 Spotipy 找到正确的歌曲。但是,我看不到同时按歌曲名称和艺术家进行搜索的方法:要么是一个,要么是另一个:
sp.search(q="Money", type="track", limit=10)
sp.search(q="Pink Floyd", type="artist", limit=10)
这个问题是我得到了一堆不相关的结果,特别是如果我按轨道搜索(例如:金钱的最高结果是 Future 的“Rent Money”而不是 Pink Floyd 的“Money”)。我可以扩展限制并过滤掉不相关的结果,但考虑到我将大规模执行此操作,我宁愿只正确查询 Spotify,获取第一个结果,然后继续。有没有办法使用 Spotipy 同时查询轨道名称和艺术家?
最佳答案
尝试查看 https://developer.spotify.com/web-api/search-item/
我认为您误解了类型。我总是想返回一个轨道列表,所以类型是 track
。换句话说,这定义了要返回的实体的类型。
查询过滤器可以是完全通用的,如 Money
,也可以专注于某些参数,如 artist:Floyd track:Money
。这可能非常强大,因为您可以查看相册、日期字段、受欢迎程度等等。
我常用
let q = String.init(format:"artist:%@ track:%@",artistName,trackName)
不要忘记对字符串进行 %-encode!
关于spotify - Spotipy:如何同时按艺术家和歌曲进行搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42766000/