mp3 파일 태그 id3 삽질기 ====== ID3v2 tagger ====== >>> from tagger import * >>> mp3_tag = ID3v2(r'/home/suapapa/다운로드/나는꼼수다 봉주4회.mp3') >>> mp3_tag.version '2.3' >>> for frame in mp3_tag.frames: ... print frame.fid, frame.strings ... COMM [] TIT2 [u'\ub098\ub294\uaf3c\uc218\ub2e4 \ubd09\uc8fc4\ud68c\x00'] TPE1 [u'\ub534\uc9c0\uc77c\ubcf4\x00'] TALB [u'\ub098\ub294 \uaf3c\uc218\ub2e4\x00'] TCON ['Podcast', ''] TIT3 [u'10.26 \ubd80\uc815\uc120\uac70\uc640 KTX \ubbfc\uc601\ud654\x00'] TYER ['2012', ''] TDRL ['2012-02-01T06:00:00Z', ''] COMM [] 나는 꼼수다 - 봉주 2회 mp3_tag = ID3v2(r'/home/suapapa/ggomsu-120111.mp3') for frame in mp3_tag.frames: print frame.fid, frame.strings COMM [] TIT2 [u'\xb3\xaa\xb4\xc2 \xb2\xc4\xbc\xf6\xb4\xd9 - \xba\xc0\xc1\xd6 2\xc8\xb8'] TPE1 [u'\xbe\xee\xc1\xd8 (\xba\xc0\xc1\xd6) \xc1\xf8\xbf\xec \xb9\xce\xc1\xd6\xb4\xe7\xb4\xe7\xb1\xc7\xc1\xd6\xc0'] TALB [u'\xb1\xe8\xbf\xeb\xb9\xce'] TYER [u'2011'] TCON [u'(28)'] 에라이 한 자 잘렸네. :( >>> import chardet >>> chardet.detect('\xbe\xee\xc1\xd8 (\xba\xc0\xc1\xd6) \xc1\xf8\xbf\xec \xb9\xce\xc1\xd6\xb4\xe7\xb4\xe7\xb1\xc7\xc1\xd6\xc0') {'confidence': 0.83333333333333337, 'encoding': 'EUC-KR'} >>> '자'.decode('utf-8').encode('cp949') '\xc0\xda' ====== 테스트 결과 (전) ====== [ RUN ] MediaScannerClientTest.some_stupid_has_broken_cp949_string /home/suapapa/workspace/tjmedia/tdmk/frameworks/base/media/libmedia/android_libmedia_tests/MediaScannerClient_test.cpp:260: Failure Value of: "민주당당권주" Expected: results->getEntry(0) + 2 Which is: "���ִ��������" [ FAILED ] MediaScannerClientTest.some_stupid_has_broken_cp949_string ====== references ===== *[[http://www.id3.org/|official id3 site]] *[[http://code.google.com/p/liquidx/wiki/pytagger|python ID3v2 tagger]]