问题标签 [mutagen]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1395 浏览

mp3 - 编程语言中的 ID3 标签编辑

我一直在尝试编写一个程序来编辑给定艺术家的所有歌曲的 ID3 标签,因为文件夹结构是“musicFolder\Artist\Year Album\## Song.mp3”。它将编辑标签标题、艺术家、专辑艺术家、专辑、年份和曲目(歌曲编号),同时保持流派值。到目前为止,我已经在 python 中尝试过,但没有一个 ID3 插件能够成功。我在这里描述了使用诱变剂时遇到的问题:某些诱变剂标签不起作用

所以,我需要一个可以执行上述操作的任何语言的插件(并告诉我两者的版本!),我也希望有一个如何设置所述标签值的示例,以及(如有必要)确保流派标签不受影响的必要措施。因为我只知道python和java,如果提供的语言不是其中之一,如果有人愿意通过将下面提供的伪代码(或具有相同效果的东西)转换为实际代码来帮助我,我也将不胜感激。

0 投票
1 回答
379 浏览

python - 诱变剂所有文件类型

我的任务是将读取所有 MP3 文件的函数更改为读取 Mutagen 能够读取的任何类型的文件。我应该用手做吗?(即,如果 .endswith = this 或 that),或者是否有通用的方法来实现这一点?

这是循环的样子:

0 投票
1 回答
4053 浏览

python - 使用 Mutagen 处理所有接受的文件类型

为了处理 mutagen、.ogg、.apev2、.wma、flac、mp4 和 asf 接受的每种文件类型,我需要做什么?(我排除了 mp3,因为它有最多的文档)

如果知道这是如何完成的人可以提供一些伪代码来解释所使用的技术,我将不胜感激。我想要提取的主要标签是文件的标题、艺术家、专辑(如果有)。

从哪儿开始?

0 投票
4 回答
163 浏览

python - 阅读大量字典的更有效方式

对于我的项目,我使用 mutagen 库从 5000+ mp3 文件中读取 ID3 标签。阅读它们后,我使用它们构造了以下对象。

问题是某些文件缺少一些必需的标签(缺少标题、缺少艺术家或两者兼有),导致 KeyValueError

这会加载具有所有标签的所有文件,这还不够好。我通过使用 ifs 解决了这个问题,它工作正常并且足够快。但是我想知道是否有更好的方法来处理这个问题。

0 投票
1 回答
423 浏览

python - Mutagen 1.22 编码问题

我在使用 Mutagen 进行字符编码时遇到问题。

我将其dict[key]转换为 Unicode,但我收到的只是错误。有问题的字符是U+00E9or é,但我打印的是├⌐. 我假设 Mutagen 的默认字符集是 UTF-8,但有没有办法解决这个问题?

输出:

代码:

0 投票
0 回答
387 浏览

mp3 - 诱变剂轨道长度信息的准确性如何

我正在对我的音乐库进行一些审核(使用 Mutagen/Python),包括查找重复项。特别是,我正在编写一个程序来查找重复项,并且我使用轨道长度作为比较两条轨道的方式的一部分。在此过程中,我发现 mp3 版本与 m4a 版本的音轨长度之间存在一些小的差异(例如 2 秒)。

这是“真实的”(即不同的编码会扭曲轨道长度 - 哎呀!)还是与标签的创建方式或读取方式有关?

如果差异是真实的且不可避免的,我应该为相等设置什么比较容差?

0 投票
2 回答
5303 浏览

python - Python (Mutagen) - 无法从 MP4/MP3 文件中获取艺术家

这些是我对 Python 和外部 API 的第一次体验;我正在尝试从 MP3 / MP4 文件中获取艺术家姓名,但没有成功。在第一种情况下(MP3),我收到以下错误:

在后者中,我的代码什么也不打印。

这些是我处理我的文件的TEST函数:

1) MP3

2) MP4

另一个与 Python 相关的问题:如何有效地使用 try-catch 表达式?我知道那些不起作用...

非常感谢!!

编辑代码:

处理 MP3 后的应用程序输出:

0 投票
3 回答
1420 浏览

python - 在 utf-8 Python 代码中使用不可编码的 mp4 标签名称

由于我不清楚的原因,mp4 文件用作标签名称的某些字段包含不可打印的字符,至少是 mutagen 看到它们的方式。给我带来麻烦的是'\xa9wrt',这是作曲家字段的标签名称(!?)。

如果我'\xa9wrt'.encode('utf-8')从 Python 控制台运行,我会得到

我正在尝试从使用一些面向未来的 Python 文件中访问此值,包括:

我什至不知道如何将字符串输入'\xa9wrt'到我的代码文件中,因为该文件中的所有内容都被解释为 utf-8,而我感兴趣的字符串显然不能用 utf-8 编写。此外,当我将字符串'\xa9wrt'放入变量(例如,来自诱变剂)时,很难使用。例如,"{}".format(the_variable)失败,因为"{}"被解释为u"{}",它再次尝试将字符串编码为 utf-8。

只是天真地输入'\xa9wrt'给了我u'\xa9wrt',这是不一样的,而且我尝试过的其他东西都没有奏效:

请注意,此输出来自控制台,似乎我可以输入非 Unicode 文字。我在 Mac OS 上使用 Spyder,带有sys.version = 2.7.6 |Anaconda 1.8.0 (x86_64)| (default, Nov 11 2013, 10:49:09)\n[GCC 4.0.1 (Apple Inc. build 5493)].

如何在 Unicode 世界中使用此字符串?utf-8 不能这样做吗?

更新: 谢谢@tsroten 的回答。它加深了我的理解,但我仍然无法达到我想要的效果。这是一个更尖锐的问题形式:我怎样才能用'??'到达两条线 在他们不诉诸我正在使用的那些技巧的情况下?

请注意,str我正在使用的东西是由图书馆交给我的。我必须接受它作为那种类型

更新 2:

我认为您(@tsroten)构造的任何字符串都不等于我从诱变剂中获得的字符串。该字符串似乎仍然会导致问题:

0 投票
1 回答
980 浏览

python - 使用诱变剂检查专辑封面

我使用 eyed3 来工作,id3但每次我想加载一个带有特殊字符的文件时,"ü"它都会崩溃,因为它无法打开这些文件......

这就是我改用诱变剂的原因。我想检查我的整个图书馆的专辑封面。

这“有效”。我得到没有专辑封面的文件,但也专辑封面的文件。

怎么了?

0 投票
1 回答
554 浏览

python - 如何在python中修改不正确的mp3歌曲长度

我正在使用诱变剂来修改文件的元数据:“temp.mp3”。

这首歌长3:00。

当我尝试:

我得到以下输出:

所以看来mp3的保存方法没有记录我在info.length中存储的信息。如何将此数据存储到文件中?