2016-12-30 2 views
1

내가 검색 쿼리로만 작가와 제목 사용, 뮤직 브레인 API의 트랙 정보를 검색하기 위해 노력하고있어 결과 정렬하는 방법 :이 노래의 모든 버전을 반환합니다뮤직 브레인 검색 API

http://musicbrainz.org/ws/2/recording/?query=artist:Coldplay+AND+recording:The+Scientist 

을 '베스트 오브'앨범과 라이브 레코딩을 포함한 아티스트의 발표. 나는 원래 출시 된 버전을 찾아야한다.

모든 단일 결과를 검색하지 않고 (단일 요청으로는 가능하지 않을 수도 있음)이를 수행하는 확실한 방법은 응답 날짜를 오름차순으로 정렬하여 첫 번째 결과가 항상 하나가되도록하는 것입니다 후.

API documentation에는 정렬 결과는 나타나지 않는 것으로 보이므로 가능한가요?

답변

3

나는 분류가 가능하지 않다고 생각합니다.

모든 문제가 해결되지 않을 수도 있습니다. 많은 녹음 자료는 1 년으로 만 기록됩니다. 따라서 릴리스 날짜가 "1989-01"인 녹음은 보다 먼저 버전으로 간주되며 실제로는 그렇지 않을 수도 있습니다.

또한 많은 릴리스의 날짜가 동일합니다. 특히 날짜가 1 년인 경우 특히 그 중 일부는 "원본"일 수 있으며 나머지는 그렇지 않을 수 있습니다. 이 릴리즈의 모든 레코딩은 동일한 출시일 (예 : "1989")을 갖습니다.

정확도가 중요한 경우 라이브 또는 편집으로 표시되지 않은 가장 빠른 공식 릴리스를 찾아야 할 수 있습니다. 이 릴리스.

0

그것은 당신을위한 해결책이 될 수 없습니다, 그러나 저 앨범의 가장 오래된 년 얻을에 대해 다음 bash는 한 줄 작동 :

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이 설치되어 있어야합니다.

나는 더 좋은 해결책이있을 것이라고 확신한다. 하지만 이걸로 충분 해.