问题标签 [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 回答
134 浏览

mp3 - 不完整的远程文件 (mp3) ID3 信息

希望从远程音频文件的 ID3 信息中获取艺术家、标题、专辑。我不想下载整个文件,所以我只下载前 500 个字节左右。查看body时可以看到ID3信息,不幸的是当我调用Mutagen https://code.google.com/p/mutagen/指向小文件时,抛出错误

EOFError: 请求 0x1ce9 的 0x1a501 (file.mp3)

有没有办法修复这个文件?腐败?

0 投票
4 回答
3175 浏览

python - 使用 eyeD3 从 Python 中的 mp3 文件中检索歌词

我目前正在尝试使用 Python 及其 eyeD3 库从 mp3 文件中提取歌词。歌词已经嵌入到 mp3 文件中(通过:MusicBee)。我正在尝试使用 eyeD3 来返回歌词。我不知道该怎么做。我在网上进行了广泛的搜索,发现的只是显示如何设置歌词的教程。我只想从文件中读取它们。这是我当前的代码:

艺术家正确返回艺术家的姓名,但歌词返回以下内容:

我怎样才能返回嵌入到 mp3 中的原始文本歌词?这可能吗?

非常感谢您。

0 投票
2 回答
1359 浏览

python - Python get media file metadata from byte array

I need to get file duration from audio\video files in Python.

In my case file is StringIO object (byte array) and I have no way to save this data to file system.

I checked some libraries (mutagen, freevo, etc.) but all of this working only with file path, not with byte array.

Maybe exist library that can get byte array and give me media file duration information?

Thanks for your answers!

0 投票
1 回答
2224 浏览

python - Mutagen pprint() 和 save() 错误 (python 2.7.5)

我在 Windows 8 上使用 python 2.7.5 运行 mutagen 1.21,当我尝试使用 pprint() 和 save() 时出现以下错误。如果有人能弄清楚问题出在哪里,我也将不胜感激如何设置 mp3 文件的标题、艺术家、专辑艺术家、专辑、日期和曲目编号的示例代码。另外,是否可以不删除我不想更改的现有标签?如果没有,我需要一种方法在删除 mp3 文件之前获取其类型,然后将其与其他标签一起重新设置。

代码

追溯

代码

追溯

编辑:(关于 Michael0x2a 的回答)您链接的图表正是我想要的,但它只工作了一半。标题、曲目、艺术家和专辑都运行良好。对于mp3文件的properties>details下的所有字段,除了这四个和“year”,以前的值被save()清除,不能添加新的——比如你发布的那一行,

什么也没做。特别是“流派”和“专辑艺术家”字段不起作用。至于同时包含代码TYER和TDAT的“年份”,它根本不会改变,除非该字段先为空,然后只有TYER。带有代码 TORY 的“ORIGYEAR”什么也不做。

“流派”字段实际上并没有完全损坏 - 如果您使用 python 代码(audio.add(etc))更改它,或者事先手动进入属性>详细信息,save() 将清除非内置流派,例如“技术死亡金属”或“mt3jr39kf390”,虽然它适用于“经典摇滚”或“乡村”等内置流派,而某些整数(如 1 或 2)会变成那些内置流派。

这是我使用的代码:

编辑:我在Some mutagen tags don't work继续这个问题

0 投票
1 回答
1958 浏览

python - 删除音乐文件元数据标签

如何从 FLAC 文件或 MP3 ID3 标签中删除元数据标签?我可以使用诱变剂来编辑信息,但是如何删除单个信息部分?

我需要删除一个名为 的标签fmps_playcount,但不需要删除其余的元数据。

0 投票
3 回答
965 浏览

python - 什么是“TPE1”KeyError?

我正在使用 Python 的mutagen模块来获取我拥有的各种 MP3 文件的艺术家。

这是给出错误的代码:

该代码适用于我的大多数 MP3 文件,但有少数几个会不断出现以下错误:

键错误:'TPE1'

由于那个错误,我看不到艺术家。请注意,这些 MP3 文件都有一个艺术家,它们都没有特殊字符或类似的东西。

为什么会这样?我该如何解决?

谢谢

0 投票
0 回答
407 浏览

python - 如何在不下载的情况下获取 mp3 标签

我有这个代码:

现在,当我在新的 mp3 文件中编写这些标签,然后在其上使用诱变剂时,它正在显示

错误:-

如何修复它。

0 投票
2 回答
5346 浏览

python - 如何设置:标签的“艺术家”、“专辑艺术家”、“年份”、“专辑”、“歌曲编号”和“标题”字段,带有诱变剂

我正在尝试使用 mutagen(使用 Python 2.7.5)创建一个程序,假设歌曲的路径是...\Artist\Year Album\Songnumber Title.mp3,设置艺术家、专辑艺术家、年份、专辑、歌曲编号和歌曲的标题标签,并保留流派标签。我尝试使用EasyID3来做到这一点,但它没有专辑艺术家标签。我也尝试用常规ID3来做,但我遇到了一些问题。这是我使用的代码:

我使用此表查找每个标签的 4 个字母代码。

标题、曲目、艺术家和专辑都运行良好。对于mp3文件的properties>details下的所有字段,除了这四个和“year”,以前的值都被清除了save(),当我尝试添加新的值时,什么也没发生。特别是“流派”和“专辑艺术家”字段不起作用。至于同时包含代码 TYER 和 TDAT 的“年份”,它根本不会改变,除非该字段先为空,然后只有 TYER。带有代码 TORY 的“ORIGYEAR”什么也没做。

“流派”字段实际上并没有完全损坏 - 如果您使用 python 代码 ( audio.add(etc)) 更改它,或者事先手动进入属性>详细信息,save()将清除非内置流派,例如“技术死亡金属”或“mt3jr39kf390” , 虽然它适用于“经典摇滚”或“乡村”等内置流派,而某些整数(如 1 或 2)会变成那些内置流派。(年份字段有时也有类似的行为 - 如果您手动将字段值设置为某些数字,save()会将其更改为不同的数字。我只观察到低于 800 的值,但并非所有值 - 448 和 449 保持不变,而 500 变为 320,700 变为 448,12 变为 10,10 变为 8。如果将 12 更改为 10这样,然后再次运行程序,什么都不会发生,但是如果您手动将其更改为其他值并返回 10,它将变为 8。)

所以,问题是如果已经有东西了,我不能改变年份标签,我不能改变专辑艺术家或流派标签,如果有的话我也不知道如何执行“get”命令一个,这样我就可以保留流派标签。

此外,EasyID3也有同样的问题——save()清除某些字段并且在流派和年份方面表现异常。唯一的区别似乎是即使该字段不为空,也可以更改年份。这是我使用的代码:

0 投票
1 回答
284 浏览

python - 使用诱变剂嵌入专辑封面时出错?

问题是,每当我将图片嵌入到 mp3 中时,该 mp3 文件总是比图片实际增加的字节少。我会用代码解释:

代码显示我无法将整个图片嵌入到该 mp3 中,并且我的 mp3 播放器和手机都无法读取损坏的艺术品,那么问题到底是什么?虽然只有当我以前嵌入更大的图片时才能成功嵌入图片。

现在我将显示上述代码的结果:

0 投票
3 回答
963 浏览

python - 如何停止诱变剂自动更新 ID3 版本?

当我尝试在 MP3 中嵌入专辑封面时,mutagen 将 ID3 标签更新为 2.4 版 - 我不想要,因为在 ID3v2.4 中,我的手机(运行 Windows Phone 8)和我的电脑无法识别标签。

显然,简单地更改mutagen.id3.version属性是行不通的:真实版本不会改变。