2016-01-14 13 views
0

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


Некоторые подробности:

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

Оригинал:

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 ........ ........ 

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

+0

Что я хотел добавить, но только как комментарий: я сначала попытался отправить вопрос в список рассылки проекта (https://groups.google.com/forum/?fromgroups#!forum/eyed3-users). Я даже подписался на список по электронной почте (у меня нет учетной записи google), который работал, но мои сообщения по-прежнему отклоняются. – Chris

+0

Какую версию eyeD3 вы используете? – strubbly

+0

Версия 0.6.18. – Chris

ответ

0

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

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

tag.do_tdtg = False 

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