slav0nic's blog

Заметки о python, linux и других занимательных вещах

Заставляем exaile, listen и другие mp3 python based плееры работать с cp1251

Вот уже долгое время юзаю плеер exaile, но работа с кодировкой не могла не раздражать: По стандарту в id3 тегах не может быть cp1251 кодировок, но у нас это никого не волн ет:]. Пытался пофиксить в коде exaile, но ничего не вышло, запутался в классах и тп В), глунул в код mutagena, которые юзается для работы с mp3 и тп тегами, и нашёл простое решение=) Ищем class EncodedTextSpec (~629 строка) и добавляем в список encoding кортеж:

('cp1251', 'x00') всё

upd: хотя конечно корректней будет добавить строку:

mutagen.id3.EncodedTextSpec.encodings.append(('cp1251','x00'))

в media.py например (для exaile), чёт я сразу протупил%)

to mkdir, как видишь можно было и без замены latin1 на cp1251 это сделать В)

ps: если база была уже создана, делаем rm -rf ~/.exaile и пересоздаём:] хотя часть тегов всё равно крякозябрами, надо раздуплить что там за кодировка, да и после перезапуска в списке часть титлов тоже крякозябрами, но это пусть курят авторы сами В)

сами плееры можно стянуть с

exaile.org

listengnome.free.fr

comments(2)

Vlad post on 2008-05-27 14:55:47
Где находится media.py, в который надо добавить "mutagen.id3.EncodedTextSpec.encodings.append(('cp1251','x00')) " ?
slav0nic post on 2008-05-27 15:07:02
архитектура приложения поменялась вроде, да т мутаген тоже, теперь эта переменная неизменяема попробуй в /usr/lib/exaile/xl/media/__init__.py добавить import mutagen.id3 mutagen.id3.EncodedTextSpec.encodings = (('cp1251', '\x00'), ('utf16', '\x00\x00'), ('utf_16_be', '\x00\x00'), ('utf8', '\x00'))

post comment

name *

email

homepage

I'm human *

скачать savе mafia|Краски: краски на сайте.

web.py