{"title": "\u4f7f\u7528eyed3\u8bbe\u7f6emp3\u5c5e\u6027\u6807\u7b7e", "update_time": "2015-04-06 13:38:22", "tags": "eyed3", "pid": "327", "icon": "default.png"}
### 乱码问题 ### 有一波mp3的属性标签乱码了,在播放器里看到乱码很不爽。搜了一下python使用eyed3可以对mp3的属性标签进行修改。 所以编写了一个脚本来处理了 ### 脚本 ### ``` #!/bin/env python # -*- coding: utf-8 -*- import eyed3 mp3list = open('mlist','r').read() for i in mp3list.split('\n'): if i != '': artist =i.split('\t')[0] album=i.split('\t')[1] filename=i.split('\t')[2] title=filename.split('.')[0].split('/')[-1] print filename+ " " + title + " " + artist + " " +album audiofile = eyed3.load(filename) audiofile.initTag() audiofile.tag.artist = artist.decode("utf-8") audiofile.tag.album = album.decode("utf-8") audiofile.tag.album_artist = artist.decode("utf-8") audiofile.tag.title = title.decode("utf-8") #audiofile.tag.track_num = int(track_num) audiofile.tag.save() ``` 要求有一个文件是mlist。里面的格式是这样的(注意:列之间用tab分割) ``` 歌手名字 歌曲专辑 mp3文件位置 ``` 如 ``` 荼靡 周杰伦 /Users/apple/Music/Popular/周杰伦/yes周杰伦.mp3 ``` 这个脚本只是抛砖引玉,修改一下可以支持更多标签的写入. ### 遇到的问题 ### eyed3使用的时候遇到了中文乱码的问题。使用了eyed3的.initTag() 函数解决了,该函数会清理掉之前的tag。 ### 参考该文档 ### http://www.kunxi.org/blog/2007/11/howto-convert-chinese-mp3-for-id3-v23-standard/