Công cụ dòng lệnh để liệt kê các thẻ ID3 trong Linux


24

Tôi muốn viết một tập lệnh thao tác các thẻ ID3 của các tệp mp3. Tôi cần một công cụ đọc các thẻ và xuất ra nó ở định dạng ở dạng máy có thể đọc được. Ví dụ, nếu tôi muốn nó chỉ xuất ra tiêu đề, thì nó xuất ra tiêu đề, không có gì khác. Tôi đã thử các công cụ khác nhau như id3hoặc eyeD3, nhưng chúng chỉ có thể được sử dụng để viết thẻ hoặc xuất chúng ở định dạng có thể đọc được. Tất nhiên tôi chỉ có thể lọc đầu ra đó qua sed, nhưng nó có vẻ phức tạp không cần thiết với tôi.

Câu trả lời:


30

Bạn có thể sử dụng exiftoollệnh từ libimage-exiftool-perlgói cho phép bạn đọc (và ghi) siêu dữ liệu từ các tệp đa phương tiện, bao gồm cả mp3. Nó có thể xuất ra nhiều định dạng bao gồm các định dạng khóa-giá trị, json, xml và do người dùng định nghĩa. Bạn có thể chọn chỉ liệt kê các thẻ được chỉ định.

% exiftool -json 09\ -\ \(Tom\ Waits\)\ -\ Walk\ Away.mp3
[{
  "SourceFile": "09 - (Tom Waits) - Walk Away.mp3",
  "ExifToolVersion": 7.82,
  "FileName": "09 - (Tom Waits) - Walk Away.mp3",
  "Directory": ".",
  "FileSize": "2.5 MB",
  "FileModifyDate": "2008:07:12 13:58:52+01:00",
  "FileType": "MP3",
  "MIMEType": "audio/mpeg",
  "MPEGAudioVersion": 1,
  "AudioLayer": 3,
  "AudioBitrate": 128000,
  "SampleRate": 44100,
  "ChannelMode": "Stereo",
  "MSStereo": "Off",
  "IntensityStereo": "Off",
  "Emphasis": "None",
  "ID3Size": 1678,
  "Title": "Walk Away",
  "Album": "Dead Man Walking",
  "Genre": "OST",
  "Track": 9,
  "Artist": "Tom Waits",
  "Year": "",
  "Comment": "",
  "Duration": "02:42 (approx)"
}]

+1 "sudo port install p5.16-image-exiftool" - giúp bạn đi vào máy Mac với MacPorts ... Chỉ cần "exiftool-5.16 / Tập / MMED / âm nhạc / Esperanza \ Spalding / Esperanza / 02. \ I \ know \ You \ know.mp3 "và bạn nhận được tất cả các siêu dữ liệu nhổ ra! Cảm ơn!
mimoralea

+1 Tôi cũng có nhu cầu tương tự nhưng đối với âm thanh FLAC. Làm việc như người ở. Quá tệ, tên chương trình không đưa ra gợi ý nào về toàn bộ khả năng của nó ...

9

id3infotrong id3lib xuất ra các thẻ ID3 theo định dạng đơn giản để phân tích cú pháp máy.


1
Trang man nói như sau: Chỉ hỗ trợ phiên bản ID3 1.0 và 1.1.
Calimo

5

Tôi sẽ xem xét thư viện gắn thẻ Mutagen cho Python, bao gồm một công cụ dòng lệnh cơ bản có thể viết được, mid3v2 . Mặc dù đầu ra của mid3v2 chủ yếu có thể đọc được, nhưng --list-rawtùy chọn này có thể tự phù hợp:

$ mid3v2 --list-raw 09_Walk\ Away.mp3
Raw IDv2 tag info for 09_Walk Away.mp3:
TDRC(encoding=3, text=[u'1996'])
TIT2(encoding=3, text=[u'Walk Away'])
TRCK(encoding=3, text=[u'9'])
TPE1(encoding=3, text=[u'Tom Waits'])
TALB(encoding=3, text=[u'Dead Man Walking'])
TCON(encoding=3, text=[u'Soundtrack'])

Lưu ý công cụ này chỉ liệt kê ID3 tags , thuộc tính không bổ sung của tập tin MP3 như ExifTool . Nhưng nếu bạn chỉ muốn một thẻ cụ thể, một grep đơn giản cho tên thẻ sẽ lấy nó cho bạn:

$ mid3v2 --list-raw 09_Walk\ Away.mp3 | grep TIT2
TIT2(encoding=3, text=[u'Walk Away'])

Nếu mid3v2 không đủ cho bạn và bạn cảm thấy thoải mái với Python, bạn có thể tạo kịch bản cho công cụ của riêng mình để giao tiếp với thư viện Mutagen và đọc hoặc thao tác trực tiếp các thẻ.

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.