def _get_recording_info_for_mbid(mbid): try: recording = musicbrainz.get_recording_by_id(mbid) return jsonify(recording={ "title": recording["title"], "artist": recording["artist-credit-phrase"], }) except musicbrainz.DataUnavailable as e: return jsonify(error=str(e)), 404
def recording_info(mbid): """Endpoint for getting information about recordings (title and artist).""" try: recording = musicbrainz.get_recording_by_id(mbid) return jsonify(recording={ "title": recording["title"], "artist": recording["artist-credit-phrase"], }) except musicbrainz.DataUnavailable as e: return jsonify(error=str(e)), 404
def _get_recording_info(mbid, metadata): info = { 'mbid': mbid, } # Getting good metadata from MusicBrainz try: good_metadata = musicbrainz.get_recording_by_id(mbid) except musicbrainz.DataUnavailable: good_metadata = None if good_metadata: info['title'] = good_metadata['title'] info['artist_id'] = good_metadata['artist-credit'][0]['artist']['id'] info['artist'] = good_metadata['artist-credit-phrase'] if good_metadata['release-list']: release = good_metadata['release-list'][0] info['release_id'] = release['id'] info['release'] = release['title'] info['track_id'] = release['medium-list'][0]['track-list'][0]['id'] info['track_number'] = \ '%s / %s' % (release['medium-list'][0]['track-list'][0]['number'], release['medium-list'][0]['track-count']) if 'length' in good_metadata: info['length'] = time.strftime( "%M:%S", time.gmtime(float(good_metadata['length']) / 1000)) return info elif metadata: def get_tag(name): if name in metadata['tags'] and metadata['tags'][name]: return metadata['tags'][name][0] else: return '' info['length'] = metadata['audio_properties']['length_formatted'] info['title'] = get_tag('title') info['artist_id'] = get_tag('musicbrainz_artistid') info['artist'] = get_tag('artist') info['release_id'] = get_tag('musicbrainz_albumid') info['release'] = get_tag('album') info['track_id'] = get_tag('musicbrainz_releasetrackid') if 'tracktotal' in metadata['tags']: info['track_number'] = '%s / %s' % (get_tag('tracknumber'), get_tag('tracktotal')) else: info['track_number'] = get_tag('tracknumber') return info else: return {}
def _get_recording_info(mbid, metadata): info = { 'mbid': mbid, } # Getting good metadata from MusicBrainz try: good_metadata = musicbrainz.get_recording_by_id(mbid) except musicbrainz.DataUnavailable: good_metadata = None if good_metadata: info['title'] = good_metadata['title'] info['artist_id'] = good_metadata['artist-credit'][0]['artist']['id'] info['artist'] = good_metadata['artist-credit-phrase'] if good_metadata['release-list']: release = good_metadata['release-list'][0] info['release_id'] = release['id'] info['release'] = release['title'] info['track_id'] = release['medium-list'][0]['track-list'][0]['id'] info['track_number'] = \ '%s / %s' % (release['medium-list'][0]['track-list'][0]['number'], release['medium-list'][0]['track-count']) if 'length' in good_metadata: info['length'] = time.strftime("%M:%S", time.gmtime(float(good_metadata['length']) / 1000)) return info elif metadata: def get_tag(name): if name in metadata['tags'] and metadata['tags'][name]: return metadata['tags'][name][0] else: return '' info['length'] = metadata['audio_properties']['length_formatted'] info['title'] = get_tag('title') info['artist_id'] = get_tag('musicbrainz_artistid') info['artist'] = get_tag('artist') info['release_id'] = get_tag('musicbrainz_albumid') info['release'] = get_tag('album') info['track_id'] = get_tag('musicbrainz_releasetrackid') if 'tracktotal' in metadata['tags']: info['track_number'] = '%s / %s' % (get_tag('tracknumber'), get_tag('tracktotal')) else: info['track_number'] = get_tag('tracknumber') return info else: return {}