使用eyed3设置mp3属性标签

     2015年04月06日       江南兔子哥       非专业笔记->折腾专栏       eyed3 

乱码问题

有一波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/