From 460f0bd149bea6a1d346a9326a780804aa4c6ee3 Mon Sep 17 00:00:00 2001 From: Adrian Sampson Date: Wed, 30 Nov 2011 23:40:28 -0800 Subject: [PATCH] use track title over recording title (#268) --- beets/autotag/mb.py | 12 +++++++++--- beets/autotag/musicbrainz3/mbxml.py | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/beets/autotag/mb.py b/beets/autotag/mb.py index 4f9efccb8..73b3d371d 100644 --- a/beets/autotag/mb.py +++ b/beets/autotag/mb.py @@ -96,15 +96,21 @@ def album_info(release): artist_name = ''.join(artist_parts) # Basic info. - tracks = [] + track_infos = [] for medium in release['medium-list']: - tracks.extend(i['recording'] for i in medium['track-list']) + for track in medium['track-list']: + ti = track_info(track['recording']) + if track.get('title'): + # Track title may be distinct from underling recording + # title. + ti.title = track['title'] + track_infos.append(ti) info = beets.autotag.hooks.AlbumInfo( release['title'], release['id'], artist_name, release['artist-credit'][0]['artist']['id'], - [track_info(track) for track in tracks], + track_infos, ) info.va = info.artist_id == VARIOUS_ARTISTS_ID if 'asin' in release: diff --git a/beets/autotag/musicbrainz3/mbxml.py b/beets/autotag/musicbrainz3/mbxml.py index 17e69ad42..60049ca5f 100644 --- a/beets/autotag/musicbrainz3/mbxml.py +++ b/beets/autotag/musicbrainz3/mbxml.py @@ -416,7 +416,7 @@ def parse_track_list(tl): def parse_track(track): result = {} - elements = ["position"] + elements = ["position", "title"] inner_els = {"recording": parse_recording} result.update(parse_elements(elements, track))