OS X是否有一个好的命令行ID3工具?


45

谁知道一个支持ID3v2的命令行* ID3工具,您就可以在Mac OS X上进行合理的工作吗?它应该支持读写标签。

*我希望能够从某些Python脚本中调用它,因此GUI工具将无法使用。)

id3tool效用本来很好,但不支持ID3v2的(因而不会打得那么好与iTunes)。我必须从源代码进行编译,但这在使用Xcode和开发人员工具(尤其是C编译器)的Mac上非常简单。无论如何,我特别希望它具有与id3tool类似的命令行选项。这是标记一个文件的示例:

id3tool -t "Song Title" -r Artist -a "Album Name" -c 2 track-02.mp3

我一直在写这样的东西...在python中有一些可用的库,并且有一个称为甜菜的工具可以利用它们,因此我一直在研究它的编写方式。
罗伯特·西亚乔

2
此外... MusicBrainz Picard是用Python编写的,并且是开源的,因此从代码和库的使用中可能还可以收集到很多东西。
罗伯特·西亚乔

我同意,皮卡德(Picard)真是太棒了
Rohan Monga

Answers:


48

如果已安装Homebrew(强烈建议),则可以执行以下操作:

brew install id3lib

这将安装几个ID3命令行工具,包括id3tagid3convertid3cpid3info。无需python或perl脚本;只需使用常规的shell命令即可。

Usage: id3tag [OPTIONS]... [FILES]...
   -h         --help            Print help and exit
   -V         --version         Print version and exit
   -1         --v1tag           Render only the id3v1 tag (default=off)
   -2         --v2tag           Render only the id3v2 tag (default=off)
   -aSTRING   --artist=STRING   Set the artist information
   -ASTRING   --album=STRING    Set the album title information
   -sSTRING   --song=STRING     Set the title information
   -cSTRING   --comment=STRING  Set the comment information
   -CSTRING   --desc=STRING     Set the comment description
   -ySTRING   --year=STRING     Set the year
   -tSTRING   --track=STRING    Set the track number
   -TSTRING   --total=STRING    Set the total number of tracks
   -gSHORT    --genre=SHORT     Set the genre
   -w         --warning         Turn on warnings (for debugging) (default=off)
   -n         --notice          Turn on notices (for debugging) (default=off)

它支持ID3v2吗?
乔尼克(Jonik)

id3lib也可以在其他发行版中使用,例如macports。说到从端口切换到自制程序,有什么意义吗?我从芬克身上转
来了这么多

“错误:mid3v2没有可用的公式”。有人对贡献配方感兴趣吗?
ManuelSchneid3r 2014年

3
@Jonik id3lib可以编写和操作ID3v1和ID3v2
jchook

1
它还带有id3v2,它是“一切操作”命令。它可以让您将任意标签写入文件。
爱德华·福尔克

14

GitHub上提供与OS X兼容的id3lib库版本。它声称同时支持ID3v1和ID3v2。


1
谢谢!这完全回答了我的问题。世界上只有源封装,但是从安装(在Mac上使用的开发工具)是相当顺利:标准的Unix车费configuremakemake install。id3lib由4个单独的二进制文件组成:id3info(用于读取标签),id3tag(用于写入标签),id3convert和id3cp。一切正常(iTunes尊重使用id3tag编写的v2标签)。
Jonik

@Jonik您用什么包装了库?你写的一些python?
罗伯特·西亚乔

@calavera:是的,我有一些简单的脚本,它们试图从文件名(例如“ Artist-03-Track.mp3”)确定曲目号或名称,如果找到,也将其写入ID3标签。
Jonik 2010年

@Jonk:您愿意分享吗?我在python方面没有很多经验,所以像这样的东西可以很好地使用和扩展...
Robert S Ciaccio

@calavera:在这里你去。用法:add-track-names.py *mp3add-track-numbers.py *mp3。常见的东西(大多数代码)在单独的.py文件中。我也不是真正的Python编码人员,因此代码可能与“ pythonic”相去甚远。:)但是,我在编写它时学到了很多东西,如果您的标记需求像我的一样,可能很容易扩展。
Jonik 2010年

5

python模块Mutagen随附了名为id3lib的替代ID3lib的命令行ID3工具。
从使用说明文件中:

您可以使用'-',然后使用帧ID为任何ID3v2帧设置值。
例如:
mid3v2 --TIT3“猴子!” file.mp3会将“字幕/描述”框架设置为“猴子!”。


可以使用sudo pip install mutagen安装pip后再安装Mutagen sudo easy_install pip
Lri 2012年

您可以直接运行sudo easy_install mutagen
user1259710

4

您可能要尝试id3v2。它基于Huyz提到的id3lib,但似乎比带有id3lib的命令行工具更好。它可以轻松地从iTunes生产的MP3中转储ID3V2标签,但不能从iTunes生产的M4A文件中转储(与Apple Lossless一样)。

如果需要M4A文件,则另一个选择是ffmpeg。它的ffprobe命令行工具会在文件中打印出元数据,我相信您可以通过ffmpeg编写元数据。它可以与iTunes生成的MP3和M4A文件一起使用。ffprobe可能不会显示所有元数据;mp4v2是另一个不错的选择。

所有三个程序都可以通过Homebrew轻松安装。目前(2012年1月),ffmpeg需要gcc进行编译,因此brew install --use-gcc ffmpeg


感谢您为m4a推荐mp4v2!就像一个魅力,而id3v2却不:(
Ilias Karim

mp4v2是唯一一种以与iTunes(macOS 10.13,iTunes 12.7)兼容的方式编辑标签的工具。
void-pointer


2

总有AppleScript。我不太喜欢它,但是iTunes是可编写脚本的,您可以从那里操作所有mp3标签。您可以使用osascript从命令行调用Applescript。


2

该站点:http : //dougscripts.com/itunes/ 具有许多良好的命令行脚本和工具,它们位于iTunes之上,可用来处理您的音乐库。他们中的一些人可能会做您想要的。其中一些工具是免费的,有些则已获得许可。


2

由于您对cli和Python熟悉,因此我可以在CPAN上推荐一些Perl模块。MP3 :: Tag(以及MP3 :: Tag :: ID3v1和:: ID3v2和:: Utils),MP3 :: Info,MP3 :: ID3Lib均可用于读取和处理ID3标签。

如果您进入search.cpan.org并搜索“ MP3”,您将发现世界*的选择!

(*“世界”是一小部分有限的选择...)


1
在CPAN CLI和Python是的,但Perl模块......没有那么多:-)(如果你可以使用那些在Python也一样,我不知道这一点。还是你的意思,而不是写的Perl?)我个人有这个解决了,但这也许对其他人有帮助。
Jonik 2010年

2

在id3v2遇到各种“中止陷阱”类型问题后,我发现了eyeD3,这是一个也作为命令行工具存在的python模块。它似乎比上面提到的其他一些程序最近更新。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.