首页 > 编程问答 >如何通过 mutagen (Python) 为 mp3 文件中的情绪添加价值?

如何通过 mutagen (Python) 为 mp3 文件中的情绪添加价值?

时间:2024-07-20 23:08:26浏览次数:9  
标签:python python-3.x mp3 id3 mutagen

我找不到通过 mutagen(Python 库)将情绪写入 mp3 文件的方法

初始化:

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, TIT2, TALB, TPE1, TPE2, TCON, TPUB, TENC, TIT3, APIC, WOAR, PRIV
audio = MP3(mp3_file, ID3=ID3)

我可以使用 audio['TIT3'] = TIT3(encoding=3, text=subtitle)

编写字幕 audio['WOAR'] = WOAR(encoding=3, url=author_url)

此外,我可以使用

编写作者 URL mutagen.File("file.MP3").keys()

但是我找不到写心情的方法 dict_keys(['TIT2', 'TALB', 'TCON', 'TPE2', 'TPUB', 'TSSE', 'TENC', 'TIT3', "APIC:'Album Cover'", 'APIC:', 'WOAR:https://youtube.com', 'PRIV:WM/Mood:S\x00a\x00d\x00\x00\x00', 'TPE1'])

我在文件属性中手动写了心情(悲伤)然后运行


你已经发现了正确的方法,只是语法需要微调。 PRIV 框架可以用来存储自定义标签,包括情绪。

以下是如何使用 mutagen 添加情绪标签:

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, PRIV

# ... (其他代码)

mood = "Sad" # 设置情绪值

audio = MP3(mp3_file, ID3=ID3)
audio.tags.add(PRIV(encoding=3, owner="WM/Mood", text=mood))
audio.save()

这段代码做了以下几件事:

  1. 导入必要的库 : MP3 用于读取和写入 MP3 文件, ID3 用于处理 ID3 标签, PRIV 用于创建自定义标签。
  2. 设置情绪值 : 将 mood 变量设置为你想添加的情绪,例如 "Sad", "Happy", "Energetic" 等等。
  3. 打开 MP3 文件 : 使用 MP3(mp3_file, ID3=ID3) 打开 MP3 文件。
  4. 添加情绪标签 : 使用 audio.tags.add() 方法添加一个新的 PRIV 标签。
    • encoding=3 指定使用 UTF-8 编码。
    • owner="WM/Mood" 设置标签的拥有者为 "WM/Mood",这是 Windows Media Player 用来存储情绪的标准标识符。
    • text=mood 设置标签的值为我们之前定义的情绪。
  5. 保存文件 : 使用 audio.save() 方法保存修改后的 MP3 文件。

这样,你就成功地使用 mutagen 为 MP3 文件添加了情绪标签。

需要注意的是,不是所有音乐播放器都支持读取自定义标签。 Windows Media Player 和一些其他播放器可以识别 "WM/Mood" 标签,但其他播放器可能无法识别。

标签:python,python-3.x,mp3,id3,mutagen
From: 78771991

相关文章

  • 使用 Python 操作 Splunk
    使用Python操作Splunk目录使用Python操作Splunk1参考文档2安装PythonSplunk-SDK3连接splunk4配置查询5参考1参考文档SplunkGithub地址:GitHub-splunk/splunk-sdk-python:SplunkSoftwareDevelopmentKitforPythonSplunk开发者文档地址:Pythontools|......
  • Python:如何通过请求帖子对评论进行投票?
    我对评论进行投票的代码无法正常工作。它返回一个http500错误。我有一个使用用户登录的Python程序,它应该自动对评论进行投票。我的代码如下:frombs4importBeautifulSoupimportrequestslogin_url="https://xxxxxxxxxxx/auth/login"login_url_post="http......
  • python_day7(补1)
    数据类型​ 之前为列表类型​ 插入一个元组的介绍 之后还有字典,三者区别为括号方式()[]{}元组类型(tuple)使用:先定义一个元组数据​ vegetable_tuple='(tomato','corn','cucumber','carrot','corn','pumpkin)'与列表类型格式很像,不过只能取不能改,需要特......
  • 在 python 中写入 %appdata% 时出现奇怪的行为
    我试图将一些数据写入%appdata%。一切似乎都像Script1的输出中所示的那样工作。正在创建新目录并保存文件,并且也成功检索数据。但尝试查看文件资源管理器中的数据时,该文件夹不存在!CMD也找不到文件和目录。后来我手动创建了文件,检查了一下,发生了什么。CMD现在可以找到该文......
  • 使用 selenium 在 python 中打开 chrome 中的链接
    通过此链接https://bancadatistatisticaoas.inail.it/analytics/saw.dll?Dashboard&PortalPath=%2Fshared%2FBDS%2F_portal%2FINF_Definiti_Industria_e_Servizi我需要单击“FCostruzioni”,然后单击F41COSTRUZIONIED埃迪菲西。这是我的代码,但它不起作用。我做错了......
  • 七大排序算法的Python实现
    七大排序算法的Python实现1.冒泡排序(BubbleSort)算法思想冒泡排序通过重复交换相邻的未按顺序排列的元素来排序数组。每次迭代都将最大的元素“冒泡”到数组的末尾。复杂度分析时间复杂度:O(n^2)空间复杂度:O(1)defbubble_sort(arr):n=len(arr)for......
  • python反序列化
    之前hgame中遇到python反序列化,这次正好借分享会来尽可能详细学习一下python反序列化基础知识什么是序列化?反序列化?在很多时候为了方便对象传输,我们往往会把一些内容转化成更方便存储、传输的形式。我们把“对象->字符串”的翻译过程称为“序列化”;相应地,把“字符串->对......
  • 我在 python 项目中不断收到“无法识别图像文件中的数据”错误
    我正在尝试向我的TK窗口添加一个图标,但我不断收到一条错误消息:Traceback(mostrecentcalllast):File"C:\Users\roger\source\repos\PythonApplication\PythonApplication.py",line7,in<module>windowIcon=tk.PhotoImage(file="C:/Users/roger/Downloa......
  • Python学习笔记41:游戏篇之外星人入侵(二)
    前言在上一篇文章,我们已经创建好了项目目录,在今天,我们主要编写入口模块的功能。mainmain.py模块是我们游戏程序的入口,所有我们需要在模块中编写游戏主启动以及主页面相关的代码。当前我们的main模块是这样的,这是我们创建项目时默认生成一些代码,接下来我们就要进行我们......
  • Python学习笔记39:进阶篇(二十八)pygame的使用之按键映射及按键失效问题解决
    前言基础模块的知识通过这么长时间的学习已经有所了解,更加深入的话需要通过完成各种项目,在这个过程中逐渐学习,成长。我们的下一步目标是完成pythoncrashcourse中的外星人入侵项目,这是一个2D游戏项目。在这之前,我们先简单学习一下pygame模块。私信我发送消息python资料,......