Я унаследовал около 2000 файлов MP3. Для большинства из них их теги ID3 искажены в Amarok. Мне нужно программное обеспечение, которое обновляет теги ID3 до типа v2.4 $03
(т. Е. Кодирование UTF-8), удаляет все теги v1, а также умен, чтобы выяснить оригинальную кодировку на индивидуальной основе (наиболее вероятно, один из Windows-1252, без спецификации UTF-16 или GB18030).
Прежде чем я начну программировать это самостоятельно на TagLib, есть ли такое законченное решение, которое я мог бы использовать?
Не рекомендую Musicbrainz - он сильно пристрастен к опубликованной в США музыке и почти бесполезен для меня. Не рекомендуйте стандартное программное обеспечение для тегирования ID3 без предварительного тестирования его в соответствии с моими требованиями - большинство из них
- не поддерживает v2.4
- откровенно сказал, тихо отсталые идеи о кодировании символов
- не имеют функций автоматизации (я не хочу тратить свое время на редактирование вручную).
Меня также (пока) не интересует только программное обеспечение для очистки тегов, массового переименования или категоризации; Сначала я должен сделать вышеупомянутый шаг нормализации.
mid3v2
это только половина решения. После того, как я попробовал его, это определенно не очень хорошо с ошибочно идентифицированными кодировками, от которых я страдаю, то есть обновленный тег ID3 по- прежнему отображается неправильно в Amarok. Мутаген не выполняет мое требование о «умном вычислении оригинальной кодировки»; это беспечно предполагаетLatin1
/Windows-1252
, что является стандартным соответствием, но бесполезно для грязного реального мира. Я склонен не принимать этот ответ прямо сейчас; Я дам еще несколько дней для других ответов. Если ничего хорошего не приходит, вас принимают.mid3v2
не слишком яркий, и это меня не удивляет ... но я думаю, что в python есть некоторые модули кодирования символов (возможно,iconv
или похожие), которые умнее и могут быть полезны для DIY- э.Я не думаю, что вы найдете отдельное приложение, которое исправит ваш конкретный выбор неправильно маркированных кодировок. Наличие смеси cp1252, UTF-16 и GB-18030 довольно необычно, и я не думаю, что существующее программное обеспечение сможет решить эту проблему автоматически.
Поэтому я бы скачал Mutagen и написал собственный скрипт на Python, чтобы автоматизировать ваши собственные решения о том, как исправить неизвестные кодировки. Например:
Приведенный выше скрипт делает несколько предположений:
Только теги, помеченные как находящиеся в кодировке 0, неверны. (Якобы кодирование 0 - это ISO-8859-1, но на практике это часто кодовая страница Windows по умолчанию.)
Если тег помечен как кодировка UTF-8 или UTF-16, он считается правильным и просто конвертируется в UTF-8, если его еще нет. Лично я не видел ID3, помеченных как UTF (кодировки 1-3) по ошибке раньше. К счастью, кодирование 0 легко восстановить в исходные байты, поскольку ISO-8859-1 является прямым отображением порядковых значений байтов 1: 1.
Когда встречается тег кодирования 0, сценарий пытается сначала преобразовать его в GB18030, а затем, если он недопустим, возвращается к кодовой странице 1252. Однобайтовые кодировки, такие как cp1252, будут стремиться соответствовать большинству байтовых последовательностей, поэтому лучше поместить их в конце списка кодировок попробовать.
Если у вас есть другие кодировки, такие как cp1251 Cyrillic, или множество имен файлов cp1252 с несколькими символами ударения в строке, которые ошибочно принимают за GB18030, вам потребуется какой-то более умный алгоритм угадывания. Может быть, посмотрите на имя файла, чтобы угадать, какие символы могут присутствовать?
источник
Как насчет mp3Tag с вином ?
Особенности (среди прочих):
источник
Foobar имеет довольно полную поддержку тегов . Это бежит под вином.
источник
есть также EasyTag
Также вы можете знать, что формат id3v2.3 обычно предпочтительнее, поскольку Windows Media Player не поддерживает 2.4.
источник