Có một công cụ ID3 dòng lệnh tốt cho OS X không?


45

Bất cứ ai cũng biết về một công cụ dòng lệnh * ID3, với sự hỗ trợ cho ID3v2 , mà bạn có thể làm việc trên Mac OS X với nỗ lực hợp lý? Nó nên hỗ trợ cả thẻ đọc và viết.

( * Tôi muốn có thể gọi nó, ví dụ như từ một số tập lệnh Python, vì vậy một công cụ GUI sẽ không làm.)

Các id3tool tiện ích là nếu không tốt, nhưng không hỗ trợ ID3v2 (và do đó không chơi tốt với iTunes). Tôi đã phải biên dịch nó từ nguồn, nhưng điều đó khá đơn giản trên máy Mac với Xcode & công cụ dành cho nhà phát triển (bao gồm, đáng chú ý là trình biên dịch C). Dù sao, tôi đặc biệt thích một cái gì đó với các tùy chọn dòng lệnh tương tự như id3tool. Đây là một ví dụ về gắn thẻ một tệp:

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

Tôi đã làm việc để viết một cái gì đó như thế này ... có một số thư viện có sẵn trong python và có một công cụ gọi là củ cải đường sử dụng chúng vì vậy tôi đã nghiên cứu cách viết.
Robert S Ciaccio

2
ngoài ra ... MusicBrainz Picard được viết bằng Python và là nguồn mở nên có thể có rất nhiều điều cần được lượm lặt từ việc sử dụng mã và thư viện.
Robert S Ciaccio

Tôi đồng ý, Picard thật xuất sắc
Rohan Monga

Câu trả lời:


48

Nếu bạn đã cài đặt Homebrew (rất khuyến khích), bạn có thể thực hiện:

brew install id3lib

Này cài đặt một số công cụ id3 dòng lệnh, bao gồm id3tag, id3convert, id3cpid3info. Không cần kịch bản python hoặc perl; chỉ cần sử dụng các lệnh shell thông thường.

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)

Nó có hỗ trợ ID3v2 không?
Jonik

id3lib cũng hoạt động trong các bản phân phối khác như macports. Nói về việc, có bất kỳ điểm nào trong việc chuyển đổi từ cổng sang homebrew? Tôi đã có quá nhiều đau đớn khi chuyển từ fink ...
HiQ CJ

"Lỗi: Không có công thức khả dụng cho mid3v2". Ai đó muốn đóng góp một công thức?
ManuelSchneid3r

3
@Jonik id3lib có thể viết và thao tác cả ID3v1 và ID3v2
jchook

1
Nó cũng đi kèm id3v2, đó là lệnh "làm mọi thứ". Nó sẽ cho phép bạn viết bất kỳ thẻ tùy ý vào một tập tin.
Edward Falk

14

Có phiên bản tương thích OS X của thư viện id3lib có sẵn ở đây trên GitHub . Nó tuyên bố hỗ trợ cả ID3v1 và ID3v2.


1
Cảm ơn! Điều này trả lời đầy đủ câu hỏi của tôi. Chỉ có gói nguồn có sẵn, nhưng cài đặt từ đó (trên máy Mac với các công cụ phát triển) đã được khá mịn: giá vé Unix chuẩn configure, makemake install. id3lib bao gồm 4 nhị phân riêng biệt: id3info (để đọc thẻ), id3tag (để viết thẻ), id3convert và id3cp. Mọi thứ đều hoạt động tốt (và iTunes tôn vinh các thẻ v2 được viết bằng id3tag).
Jonik

@Jonik bạn đã dùng gì để bọc thư viện? Một số con trăn bạn đã viết?
Robert S Ciaccio

@calavera: Vâng, tôi có các tập lệnh đơn giản cố gắng xác định số lượng theo dõi hoặc tên từ tên tệp (chẳng hạn như "Artist - 03 - Track.mp3") và nếu tìm thấy, hãy viết nó vào thẻ ID3.
Jonik

@Jonk: bạn có sẵn sàng chia sẻ không? Tôi không có nhiều kinh nghiệm với trăn nên một thứ như thế sẽ rất tuyệt khi chơi xung quanh và kéo dài ...
Robert S Ciaccio

@calavera: Ở đây bạn đi . Cách sử dụng: add-track-names.py *mp3hoặc add-track-numbers.py *mp3. Nội dung phổ biến (hầu hết mã) nằm trong một tệp .py riêng biệt. Tôi cũng không thực sự là một lập trình viên Python, vì vậy mã có lẽ khác xa với "pythonic". :) Nhưng tôi đã học được rất nhiều khi tôi viết nó và có thể dễ dàng mở rộng nếu nhu cầu gắn thẻ của bạn là bất cứ thứ gì như của tôi.
Jonik

5

Mô-đun python Mutagen được vận chuyển với công cụ ID3 dòng lệnh có tên mid3v2 thay thế cho id3lib's.
Từ tài liệu sử dụng:

Bạn có thể đặt giá trị cho bất kỳ khung ID3v2 nào bằng cách sử dụng '-' và sau đó là ID khung.
Ví dụ:
mid3v2 --TIT3 "Khỉ!" file.mp3 sẽ đặt khung "Phụ đề / Mô tả" thành "Khỉ!".


Mutagen có thể được cài đặt sudo pip install mutagensau khi cài đặt pip với sudo easy_install pip.
Lri

bạn có thể trực tiếp chạy sudo easy_install mutagenquá
user1259710

4

Bạn có thể muốn thử id3v2 . Nó dựa trên id3lib mà Huyz đã đề cập, nhưng dường như là một công cụ dòng lệnh tốt hơn so với những người có id3lib. Nó dễ dàng loại bỏ các thẻ ID3V2 từ iTunes do MP3 sản xuất, nhưng iTunes không tạo ra các tệp M4A (như với Apple Lossless).

Nếu bạn cần tệp M4A, một tùy chọn khác là ffmpeg . Công cụ dòng lệnh ffprobe của nó in ra siêu dữ liệu trong các tệp và tôi tin rằng bạn có thể viết siêu dữ liệu qua ffmpeg. Nó hoạt động với cả tệp MP3 và M4A do iTunes sản xuất. ffprobe có thể không hiển thị tất cả siêu dữ liệu; mp4v2 là một lựa chọn tốt.

Tất cả ba chương trình được cài đặt dễ dàng thông qua Homebrew. Ngay bây giờ (tháng 1 năm 2012) ffmpeg yêu cầu gcc để biên dịch, vì vậy brew install --use-gcc ffmpeg.


cảm ơn vì đã gợi ý mp4v2 cho m4a! hoạt động như một bùa mê, trong khi id3v2 thì không :(
Ilias Karim

mp4v2 là người duy nhất chỉnh sửa các thẻ theo cách tương thích với iTunes (macOS 10.13, iTunes 12.7).
void-con trỏ

2

Chủ đề cũ này tại Mac OS X Gợi ý có vẻ như nó có thể là một nơi tốt để bạn bắt đầu. Đó là từ năm 2003, vì vậy tôi không chắc liệu công cụ họ đang nói đến có còn được phát triển hay không. Bạn cũng có thể phải tự biên dịch nó.


2

Luôn có AppleScript. Tôi không phải là một fan hâm mộ lớn của nó, nhưng iTunes có thể viết được và bạn có thể thao tác với tất cả các thẻ mp3 từ đó. Bạn có thể gọi Applescript từ dòng lệnh bằng osascript.


2

Trang web này: http://dougscripts.com/itunes/ có nhiều tập lệnh và công cụ dòng lệnh tốt, lớp trên đầu itunes để thực hiện mọi thứ với thư viện nhạc của bạn. Một số trong số họ có thể làm những gì bạn muốn. Một số công cụ là miễn phí và một số được cấp phép.


2

vì bạn cảm thấy thoải mái với cli và Python, tôi có thể đề xuất một số mô-đun Perl trên CPAN. MP3 :: Tag, (cũng như MP3 :: Tag :: ID3v1 và :: ID3v2 và :: Utils), MP3 :: Info, MP3 :: ID3Lib đều có sẵn để đọc và thao tác các thẻ ID3.

Nếu bạn truy cập search.cpan.org và tìm kiếm "MP3", bạn sẽ tìm thấy một thế giới * tùy chọn!

(* Trong đó "thế giới" là một tập hợp tùy chọn nhỏ, có giới hạn ...)


1
CLI và Python có, nhưng Perl mô-đun trên CPAN ... không quá nhiều :-) (Nếu bạn có thể sử dụng những bằng Python quá, tôi đã không nhận thức được điều đó. Hoặc bạn đã có nghĩa là văn bản Perl để thay thế?) Cá nhân tôi đã nhận này đã giải quyết xong , nhưng có lẽ điều này hữu ích cho người khác.
Jonik

2

Có nhiều vấn đề loại 'bẫy phá hủy' với id3v2 , tôi phát hiện ra eyeD3 , đây là một mô-đun python cũng tồn tại như một công cụ dòng lệnh. Nó dường như được cập nhật gần đây hơn một số chương trình khác được đề cập ở trên.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.