diff --git a/mutagen/id3/_file.py b/mutagen/id3/_file.py index 67a6a167..b24fe792 100644 --- a/mutagen/id3/_file.py +++ b/mutagen/id3/_file.py @@ -180,7 +180,11 @@ class XMYF(Frame): ... self.update_to_v24() if self._header and load_v1: - frames, offset = find_id3v1(fileobj, v2_version, known_frames) + if translate: + v1v2_ver = v2_version + else: + v1v2_ver = 4 if self.version[1] == 4 else 3 + frames, offset = find_id3v1(fileobj, v1v2_ver, known_frames) if frames: for v in frames.values(): if len(self.getall(v.HashKey)) == 0: diff --git a/tests/test_id3.py b/tests/test_id3.py index b1591484..9aff0a00 100644 --- a/tests/test_id3.py +++ b/tests/test_id3.py @@ -133,6 +133,14 @@ def test_load_v1_v2(self): with self.assertRaises(KeyError): tags["TALB"] + def test_load_v1_v2_no_translate(self): + tags = ID3(self.v1v2_combined, v2_version=4, translate=False) + assert tags.version == (2, 4, 0) + assert str(tags["TDRC"].text[0]) == "1337" + tags = ID3(self.v1v2_combined, v2_version=3, translate=False) + assert tags.version == (2, 4, 0) + assert str(tags["TDRC"].text[0]) == "1337" + def test_load_v1_v2_precedence(self): tags = ID3(self.v1v2_combined) self.assertEquals(tags["TRCK"].text, ["3/11"]) # i.e. not 123