用于从音频文件中读取和将来写入元数据的库。

audio-metadata的Python项目详细描述


音频元数据

PyPI
TravisCodecov
Docs - StableDocs - Latest

audio-metadata是一个用于从音频文件读取和将来写入元数据的库。

为什么选择另一个音频元数据库?/为什么不使用诱变剂等?

清晰易懂的代码、良好的api和良好的ux(用户体验)是音频元数据的重点。 一个或多个我觉得从现有的选择中缺少的东西 足以让你想在脑海中从头开始写点什么。 此外,还有一些在其他解决方案中不存在的特性,要添加这些特性会非常痛苦。

那么,我为什么要用它呢?

与众不同的功能和功能:

  • 使用python标准加载/转储api。
    • 可以加载文件路径、类文件对象和二进制数据(类字节对象)。
  • 元数据对象看起来像dict,而则像dict。
    • 一些常见的库隐藏了dict的表示 和/或dict方法,但其行为与dict不同。
    • 支持可与dict密钥订阅混合使用的属性样式访问。
  • 所有元数据对象都具有用户友好的表示。
    • 这包括特定值的人性化表示 例如文件大小、比特率、持续时间和采样率。
>>> import audio_metadata

>>> metadata = audio_metadata.load('05 - Heart of Hearts.flac')

>>> metadata
<FLAC ({
	'filepath': '05 - Heart of Hearts.flac',
	'filesize': '44.23 MiB',
	'pictures': [],
	'seektable': <FLACSeekTable (37 seekpoints)>,
	'streaminfo': <FLACStreamInfo ({
		'bit_depth': 16,
		'bitrate': '1022 Kbps',
		'channels': 2,
		'duration': '06:03',
		'md5': '3ae700893d099a5d281a5d8db7847671',
		'sample_rate': '44.1 KHz',
	})>,
	'tags': <VorbisComment ({
		'album': ['Myth Takes'],
		'artist': ['!!!'],
		'bpm': ['119'],
		'date': ['2007'],
		'genre': ['Dance Punk'],
		'title': ['Heart of Hearts'],
		'tracknumber': ['05'],
	})>,
})>

>>> metadata['streaminfo']
<FLACStreamInfo ({
	'bit_depth': 16,
	'bitrate': '1022 Kbps',
	'channels': 2,
	'duration': '06:03',
	'md5': '3ae700893d099a5d281a5d8db7847671',
	'sample_rate': '44.1 KHz',
})>

>>> metadata.streaminfo.bitrate
1022134.0362995076

>>> metadata.streaminfo['duration']
362.9066666666667

>>> metadata['streaminfo'].sample_rate
44100

安装

pip install -U audio-metadata

用法

有关发布版本,请参见stable docs
有关开发版本,请参见latest docs

我们将介绍高级api和基本用法,但更高级的特性/功能需要文档。

待办事项

请不要提交有关以下内容的问题:

  • 文档、文档和更多文档。
  • 完成ID3摘要。
  • 添加对更多文件格式的支持。
    • MP4的阅读已经进行得很顺利了。
  • 添加写支持。

如果你愿意contribute 花时间研究它们,在Discourse forum上的development类别上发表文章。

感谢

表示感谢总是受欢迎的。

谢谢

Say Thanks

SayThanks.io获得您自己的感谢收件箱。

贡献

Contribute通过提交错误报告、功能请求或代码。

帮助他人/随时了解情况

Discourse forum

转诊/捐赠

CoinbaseDigital OceanNamecheapPayPal

btc:1BMLCFPcX8YHE1He2t3aBrsNDGr1pKhfFa
eth:0x8E3f8d8eAedeA61Bf34A998A2104954FE508D5d0
ltc:LgsQU1YaY4a4s7m9efjn6m35XhVEpW1xoP

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java类。getConstructor找不到兼容的构造函数   java单元测试自定义输入和输出格式   javascript Java UI线程内存不足错误被阻止   多线程在Java并发API中从线程池中选择线程的逻辑是什么?   java在MySQL数据库上存储歌曲(BLOb支持)   java快速且可扩展的IO传递   jsf c:forEach-inside-primeface(例如p:panelgrid)inside-ui:repeat   tomcat与JavaServlet3.0文件上传,如何获取maxfilesize值   java JNI,加载2次相同的dll(不同的名称),如何选择使用哪一个?   java将InputStream复制到OutputStream将停止,除非我也向系统写入。出来   java Set反向安全约束   比如在java中使用整数时?   java使用@接口抑制IntelliJ中的某些警告   java我的ASCII艺术在JLabel上是错误的   JavaSpring工具源代码(或带有SpringIde的Eclipse)崩溃   向片段添加ListView时出现java错误   循环Java循环错误需要重新审视   JavaAspectJ:匹配GenericServlet。带注释子类实例的init()调用