def get_releases(track): """Retrieve musicbrainz release info from a track by fingerprinting Produces an iterable of possible releases in Album format from a Track. Queries the AcoustID database by finding the given Track's musicbrainz release ID, and then querying musicbrainz for that release. Uses the resulting information to construct an Album object for comparison. """ url = _build_query_url(track, 'releaseids') results = _build_results(url) print results for match in results['results']: for release in match['releases']: print(release) musicbrainz_album = musicbrainz._lookup_release_id(release['id']) tags_dict = musicbrainz.album_tags(musicbrainz_album) yield(Album(tags_dict))
def test_album_tags(self, album, responses): # Get a release object ident = ('http://musicbrainz.org/release/' 'b52a8f31-b5ab-34e9-92f4-f5b7110220f0') album = responses[ident] response = {'artist': u"Nirvana", 'album': u"Nevermind", 'date': u"1991", 'tracks': [u'Smells Like Teen Spirit', u'In Bloom', u'Come as You Are', u'Breed', u'Lithium', u'Polly', u'Territorial Pissings', u'Drain You', u'Lounge Act', u'Stay Away', u'On a Plain', u'Something in the Way / Endless, Nameless'] } assert musicbrainz.album_tags(album) == response