Alat baris perintah untuk mendaftar tag ID3 di Linux

23

Saya ingin menulis skrip yang memanipulasi tag ID3 dari file mp3. Saya membutuhkan alat yang membaca tag dan mengeluarkannya dalam format dalam format yang dapat dibaca mesin. Sebagai contoh, jika saya ingin hanya menampilkan judul, maka itu keluaran judul, tidak ada yang lain. Saya mencoba alat yang berbeda suka id3atau eyeD3, tetapi mereka hanya dapat digunakan untuk menulis tag atau untuk output mereka dalam format yang dapat dibaca manusia. Tentu saja saya hanya bisa memfilter keluaran itu sed, tetapi tampaknya tidak perlu rumit bagi saya.

petersohn
sumber

Jawaban:

30

Anda dapat menggunakan exiftoolperintah dari libimage-exiftool-perlpaket yang memungkinkan Anda membaca (dan menulis) metadata dari file multimedia, termasuk mp3. Ini dapat menampilkan ke berbagai format termasuk kunci-nilai, json, xml dan format yang ditentukan pengguna. Anda dapat memilih untuk mendaftar hanya tag yang ditentukan.

% 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)"
}]
Nagul
sumber
+1 "sudo port install p5.16-image-exiftool" - membuat Anda menggunakan mac dengan MacPorts ... Hanya "exiftool-5.16 / Volume / MMED / musik / Esperanza \ Spalding / Esperanza / 02. \ I \ Know \ You \ Know.mp3 "dan Anda mendapatkan semua metadata yang dimuntahkan! Terima kasih!
mimoralea
+1 Saya baru saja memiliki kebutuhan yang sama tetapi untuk audio FLAC. Bekerja seperti pesona. Sayang sekali nama programnya tidak memberikan petunjuk karena kemungkinan
9

id3infodi id3lib menampilkan ID3 tag dalam format yang mati mudah untuk mesin-parse.

Ignacio Vazquez-Abrams
sumber
1
Halaman manual mengatakan sebagai berikut: Hanya ID3 versi 1.0 dan 1.1 yang didukung.
Calimo
4

Saya akan melihat ke dalam perpustakaan penandaan Mutagen untuk Python, yang mencakup alat baris perintah skrip dasar , mid3v2 . Sementara output mid3v2 terutama dapat dibaca oleh manusia, --list-rawopsi tersebut mungkin cocok dengan sendirinya:

$ 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'])

Catatan alat ini hanya mencantumkan tag ID3 , bukan atribut tambahan dari file MP3 seperti exiftool . Tetapi jika Anda hanya menginginkan tag tertentu, grep sederhana untuk tagname akan mengambilnya untuk Anda:

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

Jika mid3v2 tidak cukup untuk Anda sendiri, dan Anda merasa nyaman dengan Python, Anda bisa membuat skrip alat Anda sendiri untuk berinteraksi dengan perpustakaan Mutagen dan membaca atau memanipulasi tag secara langsung.

quack quixote
sumber