Как предотвратить установку "времени тегирования" при тегировании mp3-файлов из python (eyeD3)

Я хочу использовать скрипт из http://snipplr.com/view/4025/mp3-checksum-in-id3-tag/ чтобы снабдить мою коллекцию mp3 контрольными суммами md5. Сценарий может добавить пользовательский тег ID3, который содержит контрольную сумму аудиоданных, а также имеет возможность удалить эту контрольную сумму. К сожалению, добавление и удаление контрольной суммы не проходит двусторонний тест по нескольким причинам. Я хочу изменить это. Одна из причин заключается в том, что поле "Время тегирования" создается при запуске сценария, но оно не удаляется при удалении контрольной суммы, время даже обновляется. IIUC --no-tagging-time-frame опция предотвратит это для инструмента eyed3 в командной строке, но я не могу найти эквивалент python. Как я могу предотвратить изменение тегов в Python?


Еще несколько деталей:

Я добавил, а затем удалил контрольную сумму в копии исходного файла и сравнил оба файла. Вот отличия двоичных данных для лучшего случая:

Оригинал:

0003 3060: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........
0003 3070: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........
0003 3080: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........
0003 3090: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........
0003 30A0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........
0003 30B0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........

Копировать с контрольной суммой:

0003 3060: 00 00 00 00 00 00 54 58  58 58 00 00 00 21 00 00  ......TX XX...!..
0003 3070: 00 54 61 67 67 69 6E 67  20 74 69 6D 65 00 32 30  .Tagging time.20
0003 3080: 31 36 2D 30 31 2D 31 32  54 32 32 3A 33 31 3A 30  16-01-12 T22:31:0
0003 3090: 38 55 46 49 44 00 00 00  24 00 00 6D 64 35 00 64  8UFID... $..md5.d
0003 30A0: 34 35 64 30 62 32 34 36  38 62 31 64 38 31 31 35  45d0b246 8b1d8115
0003 30B0: 31 39 30 32 30 62 37 62  30 30 33 35 37 33 34 00  19020b7b 0035734.

Копия с удаленной контрольной суммой:

0003 3060: 00 00 00 00 00 00 54 58  58 58 00 00 00 21 00 00  ......TX XX...!..
0003 3070: 00 54 61 67 67 69 6E 67  20 74 69 6D 65 00 32 30  .Tagging time.20
0003 3080: 31 36 2D 30 31 2D 31 34  54 30 38 3A 33 34 3A 35  16-01-14 T08:34:5
0003 3090: 39 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  9....... ........
0003 30A0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........
0003 30B0: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  ........ ........

В других файлах внесены дополнительные изменения, я вернусь к этой проблеме, когда первый будет решен.

1 ответ

Я думаю, что лучшим решением было бы перейти на более новую версию 0.7 (или даже использовать какую-нибудь другую библиотеку - мне нравится мутаген). Версия 0.6.18 довольно старая. Но выполнение любого из них сломает ваш скрипт - API изменился.

Если вы хотите просто внести минимальные изменения в существующий скрипт, я предлагаю вам просто добавить

tag.do_tdtg = False

перед каждым из tag.update звонки в скрипте. Я думаю, что отключит время обновления поведения.

Другие вопросы по тегам