stagger
跳转到导航
跳转到搜索
在 Python3 中获取音乐文件的标签信息。
示例
读取 tag 信息
>>> tag = stagger.read_tag('file.mp3')
>>> tag.title
'但愿人长久'
>>> tag.artist
'邓丽君'
item()和dict的类似,返回键值对。不过有些值是列表,而有些不是。
封面
>>> tag['APIC']
[APIC(encoding=0, mime='image/jpeg', type=3, desc='', data=<16443 bytes of binary data b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x01\x00`\x00`\x00\x00'...>)]
>>> open('pic', 'wb').write(tag['APIC'][0].data) # save to file
注意 tag.picture 属性是一个字符串而不含图片信息。
常见域
TALE- 专辑。Tag24 的属性有 encoding, text(list)
TCON- 流派。Tag23/Tag24 的属性有 encoding, text(list)
TCOP- Tag24 的属性有 encoding, text(list)
TDRC- 日期。Tag24 的属性有 encoding, text(list)
TIT2- 标题。Tag23/Tag24 的属性有 encoding, text(list)
TPE1- 演唱者。Tag23/Tag24 的属性有 encoding, text(list)
TRCK- Track。Tag23 的属性有 encoding, text(list)
TYER- Tag23 的属性有 encoding, text(list)
以下域为 list。
APIC- 封面图片。Tag23 的属性有 encoding, mime(image/jpeg, etc), type(3), desc, data(bytes)
USLT- 歌词(无同步信息)。Tag24 的属性有 encoding, lang, desc, text
COMM- 注释。Tag23/Tag24 的属性有 encoding, lang, desc, text
lang 的取值为 ISO 639-2 的三字母代码,如 chi, eng, jpn 。
类
标签帧类在 stagger.id3 下,以四个大写字母命名,与标签的键名相同。
问题
stagger对zlib压缩的标签的处理代码有误,在 Tag24._interpret_frame_flags 方法中的条件判断中多写了 self. ,并且没有导入zlib模块,其调用也有问题。