修改mp3的id3 tag内容

修改mp3的id3 tag内容,第1张

概述修改mp3的id3 tag内容

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

#! /usr/bin/env python# enCoding: utf8import sysimport osimport binasciiimport Jsondef getID3Info(fp):    ID3Tags = []    frameIDs = ['AENC','APIC','COMM','Comr','ENCR','ETC0','GEOB','GRID','IPLS','MCDI','MLLT','OWNE','PRIV','PCNT','POPM','POSS','RBUF','RVAD','RVRB','SYLT','SYTC','TALB','TBPM','TCOM','TCON','Tcop','TDAT','TDLY','TENC','TEXT','TFLT','TIME','TIT1','TIT2','TIT3','TKEY','TLAN','TLEN','TMED','TOAL','TOFN','TolY','topE','TORY','TOWM','TPE1','TPE2','TPE3','TPE4','TPOS','TPUB','TRCK','TRDA','TRSN','TRSO','TSIZ','TSRC','TSSE','TYER','TXXX','UFID','USER','USLT','WCOM','Wcop','WOAF','WOAR','WOAS','WORS','WPAY','WPUB','WXXX']    fp.read(10)    while True:        ID3Info = {}        tag = fp.read(4)        if tag not in frameIDs:            break        sizePos = fp.tell()        binSize = fp.read(4)        size = int(binascii.b2a_hex(binSize),16)        fp.read(2)        conPos = fp.tell()        cont = fp.read(size)        ID3Info['sizePos'] = sizePos        ID3Info['size'] = size        ID3Info['tag'] = tag        ID3Info['conPos'] = conPos        ID3Info['con'] = cont        ID3Tags.append(ID3Info)    return ID3Tagsdef getCon(ID3Info,tag):    for info in ID3Info:        if tag == info['tag']:            return info['con']def getConPos(ID3Info,tag):    for info in ID3Info:        if tag == info['tag']:            return info['conPos']def getConSize(ID3Info,tag):    for info in ID3Info:        if tag == info['tag']:            return info['size']def getConSizePos(ID3Info,tag):    for info in ID3Info:        if tag == info['tag']:            return info['sizePos']def writeInfo(path,tag,newCon):    fp = open(path,'rb')    ID3Info = getID3Info(fp)    fp.seek(0)    oldCon = getCon(ID3Info,tag)    size = getConSize(ID3Info,tag)    sizePos = getConSizePos(ID3Info,tag)    tmpSize = str(len(newCon) + 1)    while(len(tmpSize) < 8):        tmpSize = '0' + tmpSize    newSize = binascii.a2b_hex(tmpSize)    split = binascii.a2b_hex('0000')    newCon = binascii.a2b_hex('00') + newCon    pre = fp.read(sizePos)    fp.seek(getConPos(ID3Info,tag) + size)    last = fp.read()    newfile = pre + newSize + split + newCon + last    p,n = os.path.split(path)    b,l = os.path.splitext(n)    newPath = os.path.join(p,b + "_" + newCon.strip('\x00') + l)    newFp = open(newPath,'wb')    newFp.write(newfile)    newFp.close()    fp.close()    return newPathif __name__ == '__main__':    if len(sys.argv) < 3:        print "用法: getGenre.py 新的genre mp3文件"        exit()    newCon = sys.argv[1]    abspath = os.path.abspath(sys.argv[2])    ret = writeInfo(abspath,"TCON",newCon)    print ret + " OK"

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的修改mp3的id3 tag内容全部内容,希望文章能够帮你解决修改mp3的id3 tag内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1199324.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存