使用Python的eyed3库修改MP3 tag

本文介绍了一种使用Python脚本批量修改MP3文件元数据的方法,包括版本号及标题等字段,以解决音乐播放器如百度音乐播放时的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载了一些英语学习的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.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值