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
|
mbid = None
|
||||||
sortName = None
|
sortName = None
|
||||||
mbidArtist = None
|
mbidArtist = None
|
||||||
|
mbidRecording = None
|
||||||
|
|
||||||
|
|
||||||
class DiscMetadata(object):
|
class DiscMetadata(object):
|
||||||
@@ -229,7 +230,8 @@ def _getMetadata(releaseShort, release, discid, country=None):
|
|||||||
track.mbidArtist = trackCredit.getIds()
|
track.mbidArtist = trackCredit.getIds()
|
||||||
|
|
||||||
track.title = t['recording']['title']
|
track.title = t['recording']['title']
|
||||||
track.mbid = t['recording']['id']
|
track.mbid = t['id']
|
||||||
|
track.mbidRecording = t['recording']['id']
|
||||||
|
|
||||||
# FIXME: unit of duration ?
|
# FIXME: unit of duration ?
|
||||||
track.duration = int(t['recording'].get('length', 0))
|
track.duration = int(t['recording'].get('length', 0))
|
||||||
|
|||||||
@@ -393,7 +393,8 @@ class Program:
|
|||||||
track = self.metadata.tracks[number - 1]
|
track = self.metadata.tracks[number - 1]
|
||||||
trackArtist = track.artist
|
trackArtist = track.artist
|
||||||
title = track.title
|
title = track.title
|
||||||
mbidRecording = track.mbid
|
mbidRecording = track.mbidRecording
|
||||||
|
mbidTrack = track.mbid
|
||||||
mbidTrackArtist = track.mbidArtist
|
mbidTrackArtist = track.mbidArtist
|
||||||
except IndexError as e:
|
except IndexError as e:
|
||||||
logger.error('no track %d found, %r', number, e)
|
logger.error('no track %d found, %r', number, e)
|
||||||
@@ -420,6 +421,7 @@ class Program:
|
|||||||
tags['DATE'] = self.metadata.release
|
tags['DATE'] = self.metadata.release
|
||||||
|
|
||||||
if number > 0:
|
if number > 0:
|
||||||
|
tags['MUSICBRAINZ_RELEASETRACKID'] = mbidTrack
|
||||||
tags['MUSICBRAINZ_TRACKID'] = mbidRecording
|
tags['MUSICBRAINZ_TRACKID'] = mbidRecording
|
||||||
tags['MUSICBRAINZ_ARTISTID'] = mbidTrackArtist
|
tags['MUSICBRAINZ_ARTISTID'] = mbidTrackArtist
|
||||||
tags['MUSICBRAINZ_ALBUMID'] = mbidRelease
|
tags['MUSICBRAINZ_ALBUMID'] = mbidRelease
|
||||||
|
|||||||
@@ -182,6 +182,10 @@ class MetadataTestCase(unittest.TestCase):
|
|||||||
self.assertEqual(track1.mbidArtist,
|
self.assertEqual(track1.mbidArtist,
|
||||||
u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
|
u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
|
||||||
';4b462375-c508-432a-8c88-ceeec38b16ae')
|
';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]
|
track2 = metadata.tracks[1]
|
||||||
|
|
||||||
@@ -190,3 +194,7 @@ class MetadataTestCase(unittest.TestCase):
|
|||||||
self.assertEqual(track2.mbidArtist,
|
self.assertEqual(track2.mbidArtist,
|
||||||
u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
|
u'38bfaa7f-ee98-48cb-acd0-946d7aeecd76'
|
||||||
';4b462375-c508-432a-8c88-ceeec38b16ae')
|
';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