thomasvs / morituri

For those about to RIP - a Unix CD ripper preferring accuracy over speed
GNU General Public License v3.0
301 stars 42 forks source link

retag fails #55

Open tlc opened 10 years ago

tlc commented 10 years ago
$ rip image retag *cue
Retagging image 'Unknown Artist - TbTKAhnb0gEfBoRtF3CnM6.2wTU-.cue'
MusicBrainz disc id is TbTKAhnb0gEfBoRtF3CnM6.2wTU-
Disc duration: 00:42:10.426, 13 audio tracks

Matching releases:

Artist  : The Booglerizers
Title   : Extra Crispy
Duration: 00:42:06.000
URL     : http://musicbrainz.org/release/b45d652a-9a5f-4d76-9f41-a3e4e47e55ab
Release : b45d652a-9a5f-4d76-9f41-a3e4e47e55ab
Type    : Album

Traceback (most recent call last):                
  File "/usr/local/bin/rip", line 41, in <module>
    sys.exit(main.main(sys.argv[1:]))
  File "/usr/local/lib/python2.7/site-packages/morituri/rip/main.py", line 45, in main
    ret = c.parse(argv)
  File "/usr/local/lib/python2.7/site-packages/morituri/rip/main.py", line 123, in parse
    logcommand.LogCommand.parse(self, argv)
  File "/usr/local/lib/python2.7/site-packages/morituri/extern/command/command.py", line 401, in parse
    return self.subCommands[command].parse(args[1:])
  File "/usr/local/lib/python2.7/site-packages/morituri/extern/command/command.py", line 401, in parse
    return self.subCommands[command].parse(args[1:])
  File "/usr/local/lib/python2.7/site-packages/morituri/extern/command/command.py", line 363, in parse
    ret = self.do(args)
  File "/usr/local/lib/python2.7/site-packages/morituri/rip/image.py", line 145, in do
    runner.run(t)
  File "/usr/local/lib/python2.7/site-packages/morituri/extern/task/task.py", line 490, in run
    raise TaskException(task.exception, message=msg)
morituri.extern.task.task.TaskException: (TypeError('Tags not written',), 'exception TypeError at /usr/local/lib/python2.7/site-packages/morituri/common/encode.py:541: stopped(): Tags not written\nNone\n')
tlc commented 10 years ago

I had added data to musicbrainz and was hoping that retag would pick it up. Now I'm re-ripping to get the tags.

thomasvs commented 10 years ago

On 11/30/2013 10:43 AM, tlc wrote:

|$ rip image retag *cue Retagging image 'Unknown Artist - TbTKAhnb0gEfBoRtF3CnM6.2wTU-.cue' MusicBrainz disc id is TbTKAhnb0gEfBoRtF3CnM6.2wTU- Disc duration: 00:42:10.426, 13 audio tracks

Matching releases:

Artist : The Booglerizers Title : Extra Crispy Duration: 00:42:06.000 URL : http://musicbrainz.org/release/b45d652a-9a5f-4d76-9f41-a3e4e47e55ab Release : b45d652a-9a5f-4d76-9f41-a3e4e47e55ab Type : Album

Traceback (most recent call last): File "/usr/local/bin/rip", line 41, in sys.exit(main.main(sys.argv[1:])) File "/usr/local/lib/python2.7/site-packages/morituri/rip/main.py", line 45, in main ret = c.parse(argv) File "/usr/local/lib/python2.7/site-packages/morituri/rip/main.py", line 123, in parse logcommand.LogCommand.parse(self, argv) File "/usr/local/lib/python2.7/site-packages/morituri/extern/command/command.py", line 401, in parse return self.subCommands[command].parse(args[1:]) File "/usr/local/lib/python2.7/site-packages/morituri/extern/command/command.py", line 401, in parse return self.subCommands[command].parse(args[1:]) File "/usr/local/lib/python2.7/site-packages/morituri/extern/command/command.py", line 363, in parse ret = self.do(args) File "/usr/local/lib/python2.7/site-packages/morituri/rip/image.py", line 145, in do runner.run(t) File "/usr/local/lib/python2.7/site-packages/morituri/extern/task/task.py", line 490, in run raise TaskException(task.exception, message=msg) morituri.extern.task.task.TaskException: (TypeError('Tags not written',), 'exception TypeError at /usr/local/lib/python2.7/site-packages/morituri/common/encode.py:541: stopped(): Tags not written\nNone\n') |

— Reply to this email directly or view it on GitHub https://github.com/thomasvs/morituri/issues/55.

Can you send me a full log with RIP_DEBUG=5 so I can take a look why tags weren't written?

Thomas

tlc commented 10 years ago

Debug logging shows that 'rip image retag' didn't like the fact that I'd already set Replay Gain tags. Once I removed the RG tags, retag worked.

It'd be nice if this worked without removing the RG tags. It'd be nice if something renamed the files for me, too.

DEBUG [21085]                                  SafeRetagTask     Nov 30 11:58:54      failed to update tags, only have {'album': u'Extra Crispy', 'musicbrainz-albumid': u'b45d652a-9a5f-4d76-9f41-a3e4e47e55ab', 'musicbrainz-artistid': u'a5e63714-29b4-4069-b9c7-c9bb9d9941b7', 'replaygain-reference-level': 89.0, 'track-number': 1, 'title': u'Lumpy Man Blues', 'artist': u'The Booglerizers', 'replaygain-track-gain': -8.93, 'replaygain-album-gain': -8.31, 'replaygain-album-peak': 0.977295, 'date': '2000- 1- 1', 'musicbrainz-trackid': u'108f1649-e1a9-42b5-aa07-e92f8abbf7ec', 'musicbrainz-albumartistid': u'a5e63714-29b4-4069-b9c7-c9bb9d9941b7', 'replaygain-track-peak': 0.977264} (morituri/common/encode.py:535)
DEBUG [21085]                                  SafeRetagTask     Nov 30 11:58:54      difference: set(['replaygain-reference-level', 'replaygain-track-gain', 'replaygain-track-peak', 'replaygain-album-gain', 'replaygain-album-peak']) (morituri/common/encode.py:538)
DEBUG [21085]                                  SafeRetagTask     Nov 30 11:58:54      set exception, 'exception TypeError at /usr/local/lib/python2.7/site-packages/morituri/common/encode.py:541: stopped(): Tags not written' (morituri/extern/task/task.py:197)
LOG   [21085]                                  SafeRetagTask     Nov 30 11:58:54      BaseMultiTask.stopped: task <morituri.common.encode.TagReadTask object at 0x1dd5c90> (5 of 5) (morituri/extern/task/task.py:367)
LOG   [21085]                                  SafeRetagTask     Nov 30 11:58:54      BaseMultiTask.stopped: all tasks done (morituri/extern/task/task.py:377)
DEBUG [21085]                                  SafeRetagTask     Nov 30 11:58:54      stopping (morituri/extern/task/task.py:150)
DEBUG [21085]                                  SafeRetagTask     Nov 30 11:58:54      reset runner to None (morituri/extern/task/task.py:156)
Reading tags (5 of 5) ...   0 %                   

Traceback (most recent call last):

I took a chance that 'rip image encode' would rename the files. It didn't and now metaflac sees damaged metadata. It was not damaged after the retag.

$ metaflac --list 05*
05. Unknown Artist - Unknown Track 5.flac:METADATA block #0
05. Unknown Artist - Unknown Track 5.flac:  type: 0 (STREAMINFO)
05. Unknown Artist - Unknown Track 5.flac:  is last: false
05. Unknown Artist - Unknown Track 5.flac:  length: 34
05. Unknown Artist - Unknown Track 5.flac:  minimum blocksize: 4608 samples
05. Unknown Artist - Unknown Track 5.flac:  maximum blocksize: 4608 samples
05. Unknown Artist - Unknown Track 5.flac:  minimum framesize: 14 bytes
05. Unknown Artist - Unknown Track 5.flac:  maximum framesize: 15614 bytes
05. Unknown Artist - Unknown Track 5.flac:  sample_rate: 44100 Hz
05. Unknown Artist - Unknown Track 5.flac:  channels: 2
05. Unknown Artist - Unknown Track 5.flac:  bits-per-sample: 16
05. Unknown Artist - Unknown Track 5.flac:  total samples: 8600676
05. Unknown Artist - Unknown Track 5.flac:  MD5 signature: a7e0b873a57652d4ef698f74bca62db8
05. Unknown Artist - Unknown Track 5.flac:METADATA block #1
05. Unknown Artist - Unknown Track 5.flac:  type: 3 (SEEKTABLE)
05. Unknown Artist - Unknown Track 5.flac:  is last: false
05. Unknown Artist - Unknown Track 5.flac:  length: 360
05. Unknown Artist - Unknown Track 5.flac:  seek points: 20
05. Unknown Artist - Unknown Track 5.flac:    point 0: sample_number=0, stream_offset=0, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 1: sample_number=437760, stream_offset=1047451, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 2: sample_number=880128, stream_offset=2195765, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 3: sample_number=1322496, stream_offset=3298674, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 4: sample_number=1760256, stream_offset=4438591, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 5: sample_number=2202624, stream_offset=5553684, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 6: sample_number=2644992, stream_offset=6687797, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 7: sample_number=3082752, stream_offset=7818579, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 8: sample_number=3525120, stream_offset=8889859, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 9: sample_number=3967488, stream_offset=9965840, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 10: sample_number=4409856, stream_offset=11071701, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 11: sample_number=4847616, stream_offset=12133620, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 12: sample_number=5289984, stream_offset=13211829, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 13: sample_number=5732352, stream_offset=14309673, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 14: sample_number=6170112, stream_offset=15442164, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 15: sample_number=6612480, stream_offset=16574371, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 16: sample_number=7054848, stream_offset=17711678, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 17: sample_number=7492608, stream_offset=18853591, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 18: sample_number=7934976, stream_offset=19769428, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:    point 19: sample_number=8377344, stream_offset=21047157, frame_samples=4608
05. Unknown Artist - Unknown Track 5.flac:METADATA block #2
05. Unknown Artist - Unknown Track 5.flac:  type: 1 (PADDING)
05. Unknown Artist - Unknown Track 5.flac:  is last: false
05. Unknown Artist - Unknown Track 5.flac:  length: 177
05. Unknown Artist - Unknown Track 5.flac:METADATA block #3
05. Unknown Artist - Unknown Track 5.flac:  type: 4 (VORBIS_COMMENT)
05. Unknown Artist - Unknown Track 5.flac:  is last: true
05. Unknown Artist - Unknown Track 5.flac:  length: 396
05. Unknown Artist - Unknown Track 5.flac:  vendor string: GStreamer encoded vorbiscomment
05. Unknown Artist - Unknown Track 5.flac:  comments: 9
05. Unknown Artist - Unknown Track 5.flac:    comment[0]: ARTIST=The Booglerizers
05. Unknown Artist - Unknown Track 5.flac:    comment[1]: TITLE=Womanizer Blues
05. Unknown Artist - Unknown Track 5.flac:    comment[2]: ALBUM=Extra Crispy
05. Unknown Artist - Unknown Track 5.flac:    comment[3]: TRACKNUMBER=5
05. Unknown Artist - Unknown Track 5.flac:    comment[4]: DATE=2000-01-01
05. Unknown Artist - Unknown Track 5.flac:    comment[5]: MUSICBRAINZ_TRACKID=57d1d085-06ce-4d1e-80d4-629afe267f8f
05. Unknown Artist - Unknown Track 5.flac:    comment[6]: MUSICBRAINZ_ARTISTID=a5e63714-29b4-4069-b9c7-c9bb9d9941b7
05. Unknown Artist - Unknown Track 5.flac:    comment[7]: MUSICBRAINZ_ALBUMID=b45d652a-9a5f-4d76-9f41-a3e4e47e55ab
05. Unknown Artist - Unknown Track 5.flac:    comment[8]: MUSICBRAINZ_ALBUMARTISTID=a5e63714-29b4-4069-b9c7-c9bb9d9941b7
05. Unknown Artist - Unknown Track 5.oga: ERROR: reading metadata, status = "FLAC__METADATA_CHAIN_STATUS_INTERNAL_ERROR"
tlc commented 10 years ago

"It'd be nice if something renamed the files for me, too." And re-wrote the .cue and .m3u files.

thomasvs commented 10 years ago

Let's keep this issue about the failure of retagging. (renaming files would indeed be great and there is part of a journaled renamer implemented already, but not finished. It rewrites cue, m3u and log files)

Please put your debug log online somewhere I can see it.

I think it's normal that metaflac cannot look inside an .oga file. Are you sure that's a bug?

tlc commented 10 years ago

You are right about the oga. I totally missed that I had created that and referenced it with a wildcard.

Regarding the original issue of not retagging my flac files because I added Replay Gain tags, a small section of the DEBUG log is above. I Reply mailed a larger DEBUG log 11/30. I don't see how to attach a large file here in the comments interface.

thomasvs commented 10 years ago

On 12/01/2013 09:58 PM, tlc wrote:

You are right about the oga. I totally missed that I had created that and referenced it with a wildcard.

Regarding the original issue of not retagging my flac files because I added Replay Gain tags, a small section of the log is above. I Reply mailed a larger log 11/30. I don't see how to attach a large file here in the comments interface.

— Reply to this email directly or view it on GitHub https://github.com/thomasvs/morituri/issues/55#issuecomment-29591672.

github doesn't let you add attachments; just throw it online somewhere.

T

tlc commented 10 years ago

http://pastebin.com/nmUK7r5J

jtaprogge commented 10 years ago

I have observed something that looks exactly like the original issue.

I have tracked it down to the cases where the new data does not produce a tag that was previously present. That could be for example the album artist tag or the date tag.

Since the old tag information is merged with the new one (in TagWriteTask), the deleted tags are preserved. When the tags read from the modified file is compared to the desired new tags, the information does not match (line 517 in common/encode.py).

When the deleted tags are manually removed from the files prior to retaging, retaging works.

I have tried changing TagWriteTask to first reset all tags, but did not succeed. I have also changed TAG_MERGE_APPEND to TAG_MERGE_REPLACE_ALL but that did not have an effect either.

I have no expereince working the the gstreamer pipes, perhaps it is a simple fix, that I am not seeing.

-j