跳转到主要内容

TagLib的Python绑定

项目描述

TagPy

PyPI Coverage Status

TagPy是一组针对Scott Wheeler的TagLib的Python绑定。它基于Boost.Python,这是一个包装生成库,它是Boost C++库集的一部分。

就像TagLib一样,TagPy可以

  • 读取和写入版本1和2的ID3标签,版本2支持许多支持的帧类型(在MPEG Layer 2和MPEG Layer 3、FLAC和MPC中),
  • 访问Ogg Vorbis文件和Ogg Flac文件中的Xiph注释,
  • 访问Musepack和MP3文件中的APE标签。
  • 访问WAV文件中的ID3版本2标签

所有这些都有它们自己的特定接口,但TagLib的通用标签读取和写入机制也得到支持。

您可以在test/目录中找到示例。

安装TagPy

如果您很幸运(目前是x86 Linux上的Python 3.7-3.9),您可能只需运行pip install tagpy,这将使用预编译的轮子。如果由于编译问题失败,您需要先安装一些东西。

  • Debian: apt-get install libboost-python-dev libtag1-dev
  • Fedora: dnf install boost-python3-devel taglib-devel
  • Alpine 3.17: apk add taglib-dev boost1.80-python3(或其他版本的 boost*-python3)其他配置目前不支持,但欢迎提交带有CI检查其他版本的补丁。

TagPy 兼容

  • TagLib 1.4
  • Boost.Python 1.74
  • gcc 10.2.1

稍微旧版本的 gcc 和 Boost.Python 应该没问题,但 TagLib 的 1.4 版本要求是固定的。任何新版本都可能没问题,并且请为任何失败的情况提交错误报告。

使用 TagPy

使用 TagPy 就像这样简单

>>> import tagpy
>>> f = tagpy.FileRef("la.mp3")
>>> f.tag().artist
u'Andreas'

test/ 目录包含更多示例。

通常,TagPy 复制了 TagLib API,但有几点显著的例外

  • 命名空间(即 Python 模块)以小写字母拼写。例如,TagLib::Ogg::Vorbis 现在是 taglib.ogg.vorbis

  • 枚举形成它们自己的作用域,并且不属于任何封装类的作用域,如果有。

    例如,枚举 TagLib::String::Type 中的值 TagLib::String::UTF16BE 现在是 tagpy.StringType.UTF16BE

  • TagLib::String 对象映射到并期望作为 Python unicode 对象。

  • TagLib::ByteVector 对象映射到常规 Python 字符串对象。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

tagpy-2022.1.tar.gz (140.8 kB 查看散列

上传时间

构建分发

tagpy-2022.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB 查看散列

上传时间 CPython 3.9 manylinux: glibc 2.17+ x86-64

tagpy-2022.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB 查看散列

上传时间 CPython 3.8 manylinux: glibc 2.17+ x86-64

tagpy-2022.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.9 MB 查看散列

上传时间 CPython 3.7m manylinux: glibc 2.17+ x86-64

支持者