问题标签 [eyed3]
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.
bash - Bash:如何将变量用作具有多组引号的参数
我有一个装满 mp3 的文件夹,我想删除所有 id3 用户文本帧(replaygain 除外)——我写的这段代码会做到这一点,但它会循环遍历每个文件,为每个找到的标签删除它。这导致脚本在每个 mp3 上循环多次以执行我想要的任务。
这是有效的代码:
我想提高效率,并像这样对每个 mp3 使用变量中的每个条目一次:
但我不知道该怎么做。我想我通过尝试使用变量中的开关一次制作所有列表来接近,但有一些奇怪的字符转义问题我无法弄清楚。
它制作了一个这样的列表(我尝试了双引号而不是单引号,并转义了双引号):
但我不能像这样成功地将它作为变量传递给 eyeD3:
我要么得到一个错误
“eyeD3:错误:无法识别的参数:信用:'专辑艺术家ID:'专辑ID:'专辑发行国家:'专辑状态:'专辑类型:'艺术家ID:'发行组ID:'01 - Do The Joy.mp3 02 - Love.mp3 03 - So Light Is Her Footfall.mp3 04 - Be A Bee.mp3 05 - Missing the Light Of The Day.mp3 06 - Tropical disease.mp3 07 - Heaven's Light.mp3 08 - Night Hunter.mp3 09 - Sing Sang Sung.mp3 10 - 吃我的节拍.mp3 11 - 你可以告诉每个人.mp3 12 - 非洲天鹅绒.mp3"
或者,如果我尝试使用转义引号,我最终会在现有标签之上添加更多重复标签,例如
它曾经在哪里
也许有一种更简单的方法来做我想做的事?
编辑:
eyeD3 命令的语法根据帮助:
举个例子:
应该从该目录中的所有 mp3 中删除带有 ALBUMARTISTSORT 描述的用户文本框架标签
带有一个文件的 eyeD3 的典型输出(输入 *mp3 只会为目录中的所有 mp3 生成多个条目)
python - Python eyed3 检查嵌入图像
我需要一个脚本来检查整个目录中没有嵌入图像的 mp3 文件。这个函数应该返回这样一个列表。
使用另一个函数,我遍历每个目录和子目录并获取所有文件路径。然后我检查它们是否是 mp3 文件,如果不是,我删除它们。所以最后我有一个包含 173 个 mp3 文件的列表(在我的例子中)。文件路径是正确的,但是,上面的函数给了我错误。
输出 :
我做错了什么?
编辑:
我在检查图像之前打印出来f
,似乎我的函数在崩溃之前已经检查了 20~ 个文件。
我修好了它:
但是,我真的不明白tag
为什么None
...
python - Python for 循环错误
我有一个完整的 mp3 文件的文件路径列表。
上面的代码打印“True”和一些文件路径。此特定文件没有 id3,因此 if 语句应该为真,并且此文件路径以后应该不再存在。不知何故,它仍在列表中,稍后会导致崩溃。
好吧,首先我检查该文件路径是否在列表中,我得到输出“True”,所以它在那里。然后我遍历列表中的每个文件路径,如果到达该文件路径,它应该打印“Gotcha”。然而,事实并非如此!怎么了?!
编辑:
我在for循环中删除了if语句之后的部分来测试一些东西,现在我得到了输出“Gotcha”。
python - Python Eyed3 警告
我的一些 mp3 文件似乎有非标准类型。当我遍历它们时(我必须在我的程序中这样做),我会收到大量这样的警告:
如何防止 eyed3 打印它们?
编辑:我在加载文件时收到此警告,例如:
python - 如何解码cp1252字符串?
我得到一个带有 eyeD3 的 mp3 标签(ID V1),并想了解它的编码。这是我尝试的:
如果我使用在线工具来解码该值,它表示可以通过更改编码将值Zемфира
转换为正确值,并通过更改编码(如.Zемфира
CP1252 → UTF-8
Zåìôèðà
CP1252 → CP1251
我应该怎么做才能从中Zемфира
得到mp3artist_v1
?.encode('cp1252').decode('cp1251')
效果很好,但是我怎样才能自动理解可能的编码(只有 3 种编码是可能的 - cp1251
, cp1252
, utf-8
?我打算使用以下代码:
但这无济于事,因为我应该先用一个字符集编码,然后再用另一个字符集解码。
python - 如何将 utf8 转换为 cp1251 以写入 mp3 文件的 ID3_V1 标签?
ID3_V1 仅支持latin1
编码。为了用俄语字符编写 V1 标签,cp1251
使用了编码。我想将数据从 V2 标签(unicode)复制到 V1 标签。我使用 eyeD3 使用以下代码获得 V2 标签:
返回以下内容:
看起来setAlbum
需要utf-8
字符串(?):
但是,如果我尝试这样做tag.setAlbum(mp3album_v2.encode('cp1251').encode('utf-8'))
,那么我会收到错误消息UnicodeDecodeError: 'utf8' codec can't decode byte 0xc6 in position 0: invalid continuation byte
python - 在 Python 中使用 EyeD3 设置 ID3 注释
我在带有 mp3 文件的文件夹中有以下 python 脚本:
“流派”已正确设置或更改,但我的评论只是添加了一些垃圾。我在评论中添加了 winamp 中的“测试”,在我运行脚本并从命令行输出 ID3 信息后,我看到了:
我是否以错误的方式传递“评论”?
linux - 使用 eyeD3 重命名 Bash 脚本中的 ID3 标签
我有以下脚本,它可以在目录中找到任何带有.mp3
扩展名的incoming
文件并将其移动到complete
目录中——它工作得很好!
现在,我已经安装了 eyeD3 ( http://eyed3.nicfit.net/index.html ),并且我试图在整个过程中的某个地方重命名Title标签,然后再将它移到complete
目录中。
我已经尝试了以下(以及更多),但它们都不起作用:
试图在同一行中完成所有操作...
试图通过拆分来做到这一点......
即使只是试图让 eyeD3 重命名标签,没有别的......
我知道我做错了什么,但我搜索了高低,我能找到的对 eyeD3 的新手支持几乎为零。那里的东西往往是python脚本,无论如何都不能真正做我需要的事情。
有人知道我要去哪里错了吗?
为了清楚起见,我想用相同的标题重命名此目录中每个 mp3 文件的标签,但所有 mp3 都有不同的文件名,这就是我使用通配符而不是文件名的原因。也许我这样做是错误的?
linux - 使用 Bash 重命名和移动通配符文件
我正在尝试使用此 bash 脚本执行以下操作,但我遇到了困难..
1) 在 /usr/incoming/ 目录中找到每个扩展名为 .mp3 的文件
2) 使用 eyeD3 剥离所有现有的 ID3 标签
3) 使用 eyeD3 将标题标签“NEW NAME”写回文件
4) 使用 mv 将每个扩展名为 .mp3 的文件重命名为 latest.mp3,然后强制将其移动(因此它将覆盖任何其他同名文件)到 usr/complete 目录。
除了最后一点(No.4)之外,这一切都在工作。
我知道我用 mv 命令做错了,但我不确定是什么。
这是代码:
谁能告诉我我的方式的错误?;)
python - 使用 eye3d 和 python 获取 mp3 播放时间
我很难使用 eye3d python 模块返回 mp3 的播放时间......我可以使用以下内容检索标签信息等:
但无法掌握如何使用此处看到的“class eyed3.core.AudioInfo [source]”(http://eyed3.nicfit.net/api/eyed3.html)来获得播放时间。我只是想返回歌曲的长度(然后最终遍历播放列表以找到播放列表的播放时间)。
谢谢