我想开发一个应用程序来提取我们查询的任何歌曲的歌手。因此,如果有人输入《Some Nights》专辑中的《Carry On》,应用程序就会找出所有演唱这首歌的人。谢谢。
最佳答案
您可以使用 Freebase Search API 搜索此内容和 Search Metaschema像这样:
https://www.googleapis.com/freebase/v1/search?query=Carry+On&filter=(all+/music/release_track/release:"Some+Nights")&output=(/music/release_track/release+/music/release_track/recording./music/recording/artist)
此 API 请求分为三个部分:查询、过滤器和输出参数。查询只是您要查找的轨道的名称:
query=Carry+On
过滤器参数将结果限制为仅包含名为“Some Nights”的专辑发行的一部分的轨道
filter=(all+/music/release_track/release:"Some+Nights")
输出参数告诉 API 在响应中返回哪些属性。在本例中,我们想知道该轨道属于哪个版本以及哪位艺术家录制了该轨道。
output=(/music/release_track/release+/music/release_track/recording./music/recording/artist)
您会注意到此查询现在实际上返回 8 个匹配的轨道。这是因为该专辑有许多不同版本,其中都包含该轨道的录音(不一定是完全相同的录音)。
对于您正在构建的内容,听起来您应该能够只获取第一个结果。您可以通过向请求添加限制参数来限制搜索 API 仅返回第一个结果:
limit=1
关于Freebase 从歌曲中获取歌手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19722128/