From 41b1b1feff75672b4f9a009f803af1b4e465d27d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Frederik=20=E2=80=9CFreso=E2=80=9D=20S=2E=20Olesen?= Date: Wed, 13 Feb 2019 17:56:39 +0100 Subject: [PATCH] Add Track MBIDs to ripped files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit See https://musicbrainz.org/doc/Track First part of https://github.com/whipper-team/whipper/issues/200 Signed-off-by: Frederik “Freso” S. Olesen --- whipper/common/mbngs.py | 4 +++- whipper/common/program.py | 4 +++- whipper/test/test_common_mbngs.py | 8 ++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/whipper/common/mbngs.py b/whipper/common/mbngs.py index 3400e93..4165f8a 100644 --- a/whipper/common/mbngs.py +++ b/whipper/common/mbngs.py @@ -52,6 +52,7 @@ class TrackMetadata(object): mbid = None sortName = None mbidArtist = None + mbidRecording = None class DiscMetadata(object): @@ -229,7 +230,8 @@ def _getMetadata(releaseShort, release, discid, country=None): track.mbidArtist = trackCredit.getIds() track.title = t['recording']['title'] - track.mbid = t['recording']['id'] + track.mbid = t['id'] + track.mbidRecording = t['recording']['id'] # FIXME: unit of duration ? track.duration = int(t['recording'].get('length', 0)) diff --git a/whipper/common/program.py b/whipper/common/program.py index 1cb67b1..98228ea 100644 --- a/whipper/common/program.py +++ b/whipper/common/program.py @@ -393,7 +393,8 @@ class Program: track = self.metadata.tracks[number - 1] trackArtist = track.artist title = track.title - mbidRecording = track.mbid + mbidRecording = track.mbidRecording + mbidTrack = track.mbid mbidTrackArtist = track.mbidArtist except IndexError as e: logger.error('no track %d found, %r', number, e) @@ -420,6 +421,7 @@ class Program: tags['DATE'] = self.metadata.release if number > 0: + tags['MUSICBRAINZ_RELEASETRACKID'] = mbidTrack tags['MUSICBRAINZ_TRACKID'] = mbidRecording tags['MUSICBRAINZ_ARTISTID'] = mbidTrackArtist tags['MUSICBRAINZ_ALBUMID'] = mbidRelease diff --git a/whipper/test/test_common_mbngs.py b/whipper/test/test_common_mbngs.py index 5e47238..a75da35 100644 --- a/whipper/test/test_common_mbngs.py +++ b/whipper/test/test_common_mbngs.py @@ -182,6 +182,10 @@ class MetadataTestCase(unittest.TestCase): self.assertEqual(track1.mbidArtist, u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76' ';4b462375-c508-432a-8c88-ceeec38b16ae') + self.assertEqual(track1.mbid, + u'1cc96e78-28ed-3820-b0b6-614c35b121ac') + self.assertEqual(track1.mbidRecording, + u'fde5622c-ce23-4ebb-975d-51d4a926f901') track2 = metadata.tracks[1] @@ -190,3 +194,7 @@ class MetadataTestCase(unittest.TestCase): self.assertEqual(track2.mbidArtist, u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76' ';4b462375-c508-432a-8c88-ceeec38b16ae') + self.assertEqual(track2.mbid, + u'f16db4bf-9a34-3d5a-a975-c9375ab7a2ca') + self.assertEqual(track2.mbidRecording, + u'5f19758e-7421-4c71-a599-9a9575d8e1b0')