stagger

来自百合仙子's Wiki
跳转到导航 跳转到搜索

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 下,以四个大写字母命名,与标签的键名相同。

问题

staggerzlib压缩的标签的处理代码有误,在 Tag24._interpret_frame_flags 方法中的条件判断中多写了 self. ,并且没有导入zlib模块,其调用也有问题。

参见