您的位置:首页 > 编程语言 > Python开发

使用Python的eyed3库修改MP3 tag

2016-02-14 14:13 501 查看
下载了一些英语学习的MP3,用百度音乐播放,顺序是乱的,音乐播放器一般是显示tag中title的。此外还有一点,百度音乐播放如果碰到MP3的tag版本比较低的,比如1.0,则不是显示title,这点比较奇怪,不知道是什么原因。所以如果需要按照自己的需求来显示的话,需要修改两个地方,一个是版本号,一个是title。

下面代码中,audiofile.initTag()是用来修改版本号的(默认版本号是2.4),而audiofile.tag.title = unicode(id3)是用来修改title的,按照文件名来修改,就是文件名去掉.mp3就可以了。

另外需要注意的一点是,eyed3现在只支持python 2.6,python 2.7,暂不能用python 3.

#! /usr/bin/env python

#coding utf-8

import os
import re
import sys
import eyed3

if __name__ == "__main__":
if len(sys.argv) != 2:
# print('please input MP3 directory')
exit()

patemplate=r'\.mp3'
repat=re.compile(patemplate)

dir = sys.argv[1]
for filename in os.listdir(dir):
filepath = os.path.join(dir, filename)
p = re.compile(r'(.*)-(.*)\.mp3', re.I)
m = p.match(filename)
if m:
id3=filename
id3 = repat.sub('', filename)
audiofile = eyed3.load(filepath)
audiofile.initTag()
audiofile.tag.title = unicode(id3)
audiofile.tag.artist = u"NCE2"
audiofile.tag.album = u"NCE2"
audiofile.tag.album_artist = u"NCE2"
audiofile.tag.track_num = 0
audiofile.tag.comment=u"NCE2"
audiofile.tag.save()
else:
pass


下面是版本号。

eyed3.id3.ID3_V1 = (1, None, None)

Version 1, 1.0 or 1.1

eyed3.id3.ID3_V1_0 = (1, 0, 0)

Version 1.0, specifically

eyed3.id3.ID3_V1_1 = (1, 1, 0)

Version 1.1, specifically

eyed3.id3.ID3_V2 = (2, None, None)

Version 2, 2.2, 2.3 or 2.4

eyed3.id3.ID3_V2_2 = (2, 2, 0)

Version 2.2, specifically

eyed3.id3.ID3_V2_3 = (2, 3, 0)

Version 2.3, specifically

eyed3.id3.ID3_V2_4 = (2, 4, 0)

Version 2.4, specifically

eyed3.id3.ID3_DEFAULT_VERSION = (2, 4, 0)

The default version for eyeD3 tags and save operations.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: