antigluk 23.05.2010 20:55
Tips & tricks — Перекодируем все теги ID3 из cp1251 в UTF-8
Да, utf8 - самая хорошая кодировка, бла-бла-бла. Только это понимает мало кто в этой и соседних странах - практически ВСЕ mp3-шки (и не только), которые я качаю, содержат теги в cp1251.Для того чтобы перекодировать ID3-теги всех файлов рекурсивно я использую такую команду: find -iname -print0 "*.mp3" | xargs -0 mid3iconv -e CP1251 --remove-v1
И оформленная в скрипт версия recodeID3.sh:
1) Заходите в папку с только что скачаной музыкой
2) Запускаете recodeID3.sh
3) Profit!
P.S. Как подсказывает uafz, "чтобы скрипт заработал нужно установить python-mutagen"
оу, точно :)
видимо где-то команду копипастили из одного места) похожи очень.
видимо где-то команду копипастили из одного места) похожи очень.
можно сразу find -iname '*.mp3' -exec mid3iconv -d -eCP1251 --remove-v1 {} +
А что делать с хардварными плеерами, не понимающими utf8? Они это съедят?
А мой наоборот, только latin-1 или cp1251 понимал, если интерфейс русский выбрать. Такая вот засада была, пока не обзавёлся смартфоном.
Так или иначе, сейчас всё идёт к тому, что кодировкой по умолчанию везде используется utf-8. Это касается не только линуксов. Даже многие оффтопик-программы до этого уже дошли. Не говоря уже про железо. Так что, хочешь - не хочешь, а надо перебираться на юникод.
А я юзал tag2utf - небольшой скриптец на питоне. Шарит cp1251 и koi8-r.
EasyTag так же неплох в этом деле. (кроме перекодировки есть регулярки для заполнения тегов / переименования файлов/каталогов)
я для этого пользовался easytag'ом, а по поводу
это так, потому что ID3v1 не принимает utf кодировку, вот с вики:
а так как хомячки даже не знают, что у тегов несколько версий, то и пишут виндовыми средствами в id3v1=)
Только это понимает мало кто в этой и соседних странах - практически ВСЕ mp3-шки (и не только), которые я качаю, содержат теги в cp1251.
это так, потому что ID3v1 не принимает utf кодировку, вот с вики:
ID3v1 также не хватало интернационализации. Он утверждал, что все строки должны храниться в ISO 8859-1, но на практике пользователи часто используют национальную кодировку, поэтому нередко им приходилось видеть «кракозябры».
а так как хомячки даже не знают, что у тегов несколько версий, то и пишут виндовыми средствами в id3v1=)
Дак в том-то и дело, что ладно id3v1, даже в v2 пишут в этой cp1251. И ничего, "у меня всё работает".
Эх, ждем-с поголовной утфизации)
Эх, ждем-с поголовной утфизации)
Хомячки не знают, что у тэгов есть версии. :) И не знают про кодировки.
Многие программы (Windows Media Player, например) при воспроизведении файла конвертирует теги в cp1251 на ru винде.
Многие программы (Windows Media Player, например) при воспроизведении файла конвертирует теги в cp1251 на ru винде.
А если у меня в папке лежит половина в cp1251 и половина в utf-8? Что этот скрипт сделает с тегами уже перекодированными в utf-8?
тоже самое только еще с гуем)
FILE=`zenity --file-selection --directory --title="Выберите путь к крякозябрам"`
case $? in
0)
echo "Выбран \"$FILE\".";;
1)
echo "Файл не выбран.";;
-1)
echo "Файл не выбран.";;
esac
cd "$FILE";
(find -iname '*.mp3' -print0 | xargs -0 mid3iconv -e KOI8-R --remove-v1; find -iname '*.mp3' -print0 | xargs -0 mid3iconv -e CP1251 --remove-v1)|zenity --progress --pulsate --auto-close --text "идет процесс" --title "Меняем кодировку"
zenity --info --text="теперь у Вас православный UTF"
case $? in
0)
echo "Выбран \"$FILE\".";;
1)
echo "Файл не выбран.";;
-1)
echo "Файл не выбран.";;
esac
cd "$FILE";
(find -iname '*.mp3' -print0 | xargs -0 mid3iconv -e KOI8-R --remove-v1; find -iname '*.mp3' -print0 | xargs -0 mid3iconv -e CP1251 --remove-v1)|zenity --progress --pulsate --auto-close --text "идет процесс" --title "Меняем кодировку"
zenity --info --text="теперь у Вас православный UTF"
чтобы скрипт заработал нужно установить python-mutagen