Add Track MBIDs to ripped files
See https://musicbrainz.org/doc/Track First part of https://github.com/whipper-team/whipper/issues/200 Signed-off-by: Frederik “Freso” S. Olesen <freso.dk@gmail.com>
This commit is contained in:
@@ -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))
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user