我试图从MusicBrainz API检索跟踪信息,只使用艺术家和标题作为搜索查询:
http://musicbrainz.org/ws/2/recording/?query=artist:Coldplay+AND+recording:The+Scientist这将返回每一个版本的歌曲,艺术家发布,包括编译,‘最好的’专辑和现场录音。我想找到‘原始’版本,这应该是第一个发布。
如果不检索每个结果(在单个请求中可能是不可能的),那么很明显的方法就是按照升序发布日期对响应进行排序,因此第一个结果总是我想要的结果。
API文档似乎没有提到排序结果,所以这有可能吗?
发布于 2016-12-30 11:29:55
我认为分类是不可能的。
它也可能解决不了所有问题。许多唱片的日期仅为一年。因此,带有发行日期"1989“的录音将被视为比发行日期为"1989-01-01”的录音更早的版本,而事实上,这种情况可能是也可能不是。
另外,许多版本都有相同的日期,特别是如果日期仅为一年,其中一些版本可能是“原始版”,而另一些版本则不是。这些版本的所有录音将有相同的发布日期(例如“1989年”)
如果准确性是重要的,你可能必须找到最早的官方版本,没有标记为实时或汇编,然后从这个版本中选择一个记录。
发布于 2017-10-22 23:04:05
这可能不是您的解决方案,但是下面的bash liner可以帮助我获得专辑中最古老的年份:
curl -s 'http://musicbrainz.org/ws/2/release/?query=artist:%22The%20Beatles%22%20AND%20release:%22Abbey%20Road%22%20AND%20status:Official&fmt=json' | jq -r '.releases[] | .date' | sort | head -n 1 | sed 's/-.*//'它将查询和获取所有日期字段,对它们进行排序,得到最低的日期字段。最后,它在该年之后删除可能的日期值。
对于你的具体问题,这是不够的。但也许这个答案对某些人有帮助。
您需要安装jq才能使其工作。
我相信有更好的解决办法。但这个对我来说已经足够好了。
https://stackoverflow.com/questions/41395057
复制相似问题