python版本:python 3.9  

mutagen版本:1.46.0

mutagen是一个处理音频元数据的python模块,支持多种音频格式,是一个纯粹的python库,仅依赖python标准库,可在Python 3.7及以上版本运行,支持Linux、Windows 和 macOS系统。

github地址:https://github.com/quodlibet/mutagen

帮助文档地址:https://mutagen.readthedocs.io/en/latest/

pypi地址:https://pypi.org/project/mutagen/

一、安装

1、在线安装

直接使用pip进行安装:

pip install mutagen

默认安装最新版本。

2、离线安装

2.1 下载离线安装文件

可以在pypi页面源代码或whl文件。

2.2  执行离线安装操作

1) 可以使用源码进行安装

tar zxf mutagen-1.46.0.tar.gz
cd mutagen-1.46.0
python setup.py install

2)也可以使用pip install 进行离线安装

pip install mutagen-1.46.0-py3-none-any.whl

二、基础用法

1、获取音频文件元数据

import mutagen
f = mutagen.File(r"d:\tmp\1.mp3")
f.values()
f.pprint().split('\n')
print(f.get('TXXX:Band').text)

效果如下:

2、添加(修改)音频元数据

不存在添加,如果存在则修改。

示例:

from mutagen.id3 import TALB
f.tags.add(TALB(encoding=0, text=['some_album']))
f.save()

3、删除音频元数据

可使用 .tags.pop 删除:

import mutagen
f = mutagen.File(r"d:\tmp\1.mp3")
f.tags.values()
f.tags.pop('TXXX:Band')
f.save()
f.tags.values()

效果如下:

4、获取音频属性

获取音频时长、码率、声道信息等。

示例:

f.info.pprint()
print(f.info.sample_rate)
print(f.info.channels)
print(f.info.length) # seconds
print(278//60,278%60)

三、资源下载

本文涉及源代码及安装文件,可从百度网盘获取:

https://pan.baidu.com/s/1-vKILG3SlvKGxZe50Zo-ew

关注微信公众号(聊聊博文,文末可扫码)后回复 2022102401 获取。

python3使用mutagen进行音频元数据处理的更多相关文章

  1. Python资源汇总

    Python 目录: 管理面板 算法和设计模式 反垃圾邮件 资产管理 音频 验证 构建工具 缓存 ChatOps工具 CMS 代码分析和Linter 命令行工具 兼容性 计算机视觉 并发和并行性 组态 ...

  2. Python3.x:第三方库简介

    Python3.x:第三方库简介 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex ...

  3. H5页面实现一个Audio标签加载多个音频文件,并进行播放和展示音频长度

    最近微信项目中有需求,要将微信端发送过来的amr格式的语音文件,在项目中的页面上进行展示和播放,实现方式如下: 1.首先java后台收到微信端的消息推送的时候,使用 ffmpeg将amr格式的音频文件 ...

  4. Linux 对音频万能处理的命令——SOX

    what's the SOX         SoX(即 Sound eXchange)是一个跨平台(Windows,Linux,MacOS 等)的命令行实用程序,可以将各种格式的音频文件转换为需要的 ...

  5. Python 资源大全中文版

    Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列的资源整理.awesome-python 是 vinta 发起维护的 Python 资源列 ...

  6. [转载]Python 资源大全

    原文链接:Python 资源大全 环境管理 管理 Python 版本和环境的工具 p – 非常简单的交互式 python 版本管理工具. pyenv – 简单的 Python 版本管理工具. Vex  ...

  7. python常用库

    本文由 伯乐在线 - 艾凌风 翻译,Namco 校稿.未经许可,禁止转载!英文出处:vinta.欢迎加入翻译组. Awesome Python ,这又是一个 Awesome XXX 系列的资源整理,由 ...

  8. python 第三方模块 转 https://github.com/masterpy/zwpy_lst

    Chardet,字符编码探测器,可以自动检测文本.网页.xml的编码. colorama,主要用来给文本添加各种颜色,并且非常简单易用. Prettytable,主要用于在终端或浏览器端构建格式化的输 ...

  9. Python 库大全

    作者:Lingfeng Ai链接:http://www.zhihu.com/question/24590883/answer/92420471来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非 ...

随机推荐

  1. 通过重新构建Kubernetes来实现更具弹性的容器编排系统

    通过重新构建Kubernetes来实现更具弹性的容器编排系统 译自:rearchitecting-kubernetes-for-the-edge 摘要 近年来,kubernetes已经发展为容器编排的 ...

  2. Redis 13 事务

    参考源 https://www.bilibili.com/video/BV1S54y1R7SB?spm_id_from=333.999.0.0 版本 本文章基于 Redis 6.2.6 概述 Redi ...

  3. Git 08 IDEA撤销添加

    参考源 https://www.bilibili.com/video/BV1FE411P7B3?spm_id_from=333.999.0.0 版本 本文章基于 Git 2.35.1.2 如果将不想添 ...

  4. day21--Java集合04

    Java集合04 9.Set接口方法 Set接口基本介绍 无序(添加和取出的顺序不一致),没有索引 不允许重复元素,所以最多只有一个null JDK API中接口的实现类有: Set接口的常用方法:和 ...

  5. 基于Apache Hudi构建分析型数据湖

    为了有机地发展业务,每个组织都在迅速采用分析. 在分析过程的帮助下,产品团队正在接收来自用户的反馈,并能够以更快的速度交付新功能. 通过分析提供的对用户的更深入了解,营销团队能够调整他们的活动以针对特 ...

  6. docker 容器terminal失败

    关键一句话:docker 容器的teminal失败,一定是等待资源导致的,不管是pid资源,还是内存资源.本文主要讲因为内存资源导致进程D状态,然后导致teminal容器失败. 目前在集群中,cpu占 ...

  7. day25--Java集合08

    Java集合08 15.HashTable 15.1HashTable的基本介绍 存放的元素是键值对:即K-V HashTable的键和值都不能为null HashTable的使用方法基本上和Hash ...

  8. NOI2021 同步赛游记

    写在前面的话 为什么叫游记呢?因为我第一天是在划水中度过的,错过了对原题的发现. O n e I n D a r k \tt OneInDark OneInDark 无比风光地去了浙江,却倒霉地遇上了 ...

  9. qt C2144 语法错误,需要在类型前添加;(分号)

    可能原因:有部分头文件未以";"结尾.

  10. 因势而变,因时而动,Go lang1.18入门精炼教程,由白丁入鸿儒,Go lang泛型(generic)的使用EP15

    事实上,泛型才是Go lang1.18最具特色的所在,但为什么我们一定要拖到后面才去探讨泛型?类比的话,我们可以想象一下给小学一年级的学生讲王勃的千古名篇<滕王阁序>,小学生有多大的概率可 ...