diff --git a/picard/album.py b/picard/album.py index 6af746ed2..a2ee233c2 100644 --- a/picard/album.py +++ b/picard/album.py @@ -383,7 +383,8 @@ class Album(DataObject, Item): tm = track.metadata tm.copy(metadata) track_to_metadata(track_node, track) - track.metadata["~absolutetracknumber"] = absolutetracknumber + tm["~absolutetracknumber"] = absolutetracknumber + track.orig_metadata.copy(tm) track._customize_metadata() self._new_metadata.length += tm.length diff --git a/picard/file.py b/picard/file.py index a41962a35..f38bacd74 100644 --- a/picard/file.py +++ b/picard/file.py @@ -473,9 +473,10 @@ class File(QtCore.QObject, Item): self._acoustid_update() def _acoustid_update(self): + recording_id= None if self.parent and hasattr(self.parent, 'orig_metadata'): recording_id = self.parent.orig_metadata['musicbrainz_recordingid'] - else: + if not recording_id: recording_id = self.metadata['musicbrainz_recordingid'] self.tagger.acoustidmanager.update(self, recording_id) diff --git a/picard/mbjson.py b/picard/mbjson.py index 72b7cb6ba..27aaa6b2c 100644 --- a/picard/mbjson.py +++ b/picard/mbjson.py @@ -346,7 +346,6 @@ def track_to_metadata(node, track): artist_credit_to_metadata(value, m) if m.length: m['~length'] = format_time(m.length) - track.orig_metadata.copy(m) def recording_to_metadata(node, m, track=None): diff --git a/picard/track.py b/picard/track.py index a48e983a2..cf3856be5 100644 --- a/picard/track.py +++ b/picard/track.py @@ -323,6 +323,7 @@ class NonAlbumTrack(Track): def _parse_recording(self, recording): m = self.metadata recording_to_metadata(recording, m, self) + self.orig_metadata.copy(m) self._customize_metadata() run_track_metadata_processors(self.album, m, None, recording) for s_name, s_text in enabled_tagger_scripts_texts():