Example #1
0
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
Example #3
0
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
Example #4
0
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 {}
Example #5
0
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 {}