Apakah ada alat ID3 baris perintah yang baik untuk OS X?

45

Adakah yang tahu tentang alat baris perintah * ID3, dengan dukungan untuk ID3v2 , yang dapat Anda gunakan di Mac OS X dengan upaya yang masuk akal? Seharusnya mendukung tag membaca dan menulis.

( * Saya ingin dapat menyebutnya misalnya dari beberapa skrip Python, jadi alat GUI tidak akan melakukannya.)

The id3tool utilitas jika tidak baik, tetapi tidak mendukung ID3v2 (dan dengan demikian tidak bermain dengan baik dengan iTunes). Saya harus mengkompilasinya dari sumber, tetapi itu cukup mudah pada Mac dengan alat Xcode & pengembang (termasuk, terutama, kompiler C). Ngomong-ngomong, saya terutama menyukai sesuatu dengan opsi baris perintah serupa dengan id3tool. Berikut ini contoh pemberian tag pada satu file:

id3tool -t "Song Title" -r Artist -a "Album Name" -c 2 track-02.mp3
Jonik
sumber
Saya telah bekerja menulis sesuatu seperti ini ... ada beberapa perpustakaan yang tersedia dalam python dan ada alat yang disebut bit yang memanfaatkannya jadi saya telah menyelidiki bagaimana ini ditulis.
Robert S Ciaccio
2
selain itu ... MusicBrainz Picard ditulis dalam Python dan bersifat open source sehingga mungkin ada banyak yang harus diperoleh dari penggunaan kode dan pustaka itu juga.
Robert S Ciaccio
Saya setuju, Picard hanya brilian
Rohan Monga

Jawaban:

48

Jika Anda memiliki Homebrew terinstal (sangat disarankan), Anda bisa melakukan:

brew install id3lib

Ini menginstal beberapa alat ID3 baris perintah, termasuk id3tag, id3convert, id3cpdan id3info. Tidak perlu skrip python atau perl; cukup gunakan perintah shell biasa.

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)
huyz
sumber
Apakah itu mendukung ID3v2?
Jonik
id3lib juga berfungsi di distribusi lain seperti macports. Omong-omong, apakah ada gunanya beralih dari port ke homebrew? Saya mengalami banyak rasa sakit beralih dari fink ...
HiQ CJ
"Kesalahan: Tidak ada formula yang tersedia untuk mid3v2". Adakah yang tertarik berkontribusi formula?
ManuelSchneid3r
3
@Jonik id3lib dapat menulis dan memanipulasi ID3v1 dan ID3v2
jchook
1
Itu juga datang dengan id3v2, yang merupakan perintah "do-everything". Ini akan memungkinkan Anda menulis tag sembarang ke file.
Edward Falk
14

Ada versi yang kompatibel dengan OS X dari perpustakaan id3lib yang tersedia di GitHub . Ia mengklaim mendukung ID3v1 dan ID3v2.

Jeff Swensen
sumber
1
Terima kasih! Ini sepenuhnya menjawab pertanyaan saya. Hanya ada paket sumber yang tersedia, tetapi menginstal dari itu (pada Mac dengan alat pengembang) cukup lancar: tarif Unix standar configure, makedan make install. id3lib terdiri dari 4 binari terpisah: id3info (untuk membaca tag), id3tag (untuk menulis tag), id3convert, dan id3cp. Semuanya berfungsi dengan baik (dan iTunes menghormati tag v2 yang ditulis dengan id3tag).
Jonik
@Jonik apa yang Anda gunakan untuk membungkus perpustakaan? Beberapa python yang kamu tulis?
Robert S Ciaccio
@calavera: Ya, saya punya skrip sederhana yang mencoba menentukan nomor trek atau nama dari nama file (seperti "Artis - 03 - Track.mp3"), dan jika ditemukan, tulis juga ke tag ID3 juga.
Jonik
@ Jonk: apakah Anda bersedia berbagi? Saya tidak memiliki banyak pengalaman dengan python jadi sesuatu seperti itu akan menjadi besar untuk bermain-main dengan dan memperluas ...
Robert S Ciaccio
@calavera: Ini dia . Penggunaan: add-track-names.py *mp3atau add-track-numbers.py *mp3. Hal-hal umum (kebanyakan kode) ada dalam file .py yang terpisah. Saya juga bukan pembuat kode Python, jadi kodenya mungkin jauh dari "pythonic". :) Tapi saya belajar banyak ketika saya menulisnya, dan mungkin mudah untuk memperpanjang jika kebutuhan penandaan Anda sama seperti saya.
Jonik
5

Modul python Mutagen dikirimkan dengan alat ID3 baris-perintah bernama mid3v2 pengganti untuk id3lib.
Dari dokumentasi penggunaan:

Anda dapat menetapkan nilai untuk frame ID3v2 dengan menggunakan '-' dan kemudian ID bingkai.
Misalnya:
mid3v2 --TIT3 "Monyet!" file.mp3 akan mengatur bingkai "Terjemahan / Keterangan" ke "Monyet!".

kraymer
sumber
Mutagen dapat diinstal dengan sudo pip install mutagensetelah menginstal pip dengan sudo easy_install pip.
Lri
Anda dapat langsung menjalankannya sudo easy_install mutagenjuga
user1259710
4

Anda mungkin ingin mencoba id3v2 . Ini didasarkan pada id3lib yang disebutkan Huyz, tetapi tampaknya menjadi alat baris perintah yang lebih baik daripada yang dengan id3lib. Dengan mudah membuang tag ID3V2 dari iTunes yang menghasilkan MP3, tetapi tidak iTunes yang menghasilkan file M4A (seperti dengan Apple Lossless).

Jika Anda membutuhkan file M4A, opsi lain adalah ffmpeg . Alat baris perintah ffprobe-nya mencetak metadata dalam file dan saya yakin Anda dapat menulis metadata melalui ffmpeg. Ini berfungsi dengan file MP3 dan M4A yang diproduksi oleh iTunes. ffprobe mungkin tidak menampilkan semua metadata; mp4v2 adalah pilihan lain yang bagus.

Ketiga program mudah diinstal melalui Homebrew. Saat ini (Jan 2012) ffmpeg membutuhkan gcc untuk dikompilasi, jadi brew install --use-gcc ffmpeg.

Nelson
sumber
terima kasih telah menyarankan mp4v2 untuk m4a! bekerja seperti pesona, sedangkan id3v2 tidak :(
Ilias Karim
mp4v2 adalah satu-satunya yang mengedit tag dengan cara yang kompatibel dengan iTunes (macOS 10.13, iTunes 12.7).
void-pointer
2

Utas lama di Mac OS X Petunjuk ini sepertinya merupakan tempat yang baik untuk Anda mulai. Ini dari 2003, jadi saya tidak yakin apakah alat yang mereka bicarakan masih dikembangkan. Anda juga mungkin harus mengompilasinya sendiri.

Ben Wyatt
sumber
2

Selalu ada AppleScript. Saya bukan penggemar beratnya, tetapi iTunes dapat skrip dan Anda dapat memanipulasi semua tag mp3 dari sana. Anda dapat memohon Applescript dari baris perintah menggunakan osascript.

eric
sumber
2

Situs ini: http://dougscripts.com/itunes/ memiliki banyak skrip baris perintah yang baik dan alat-alat yang berlapis di atasnya untuk melakukan sesuatu dengan perpustakaan musik Anda. Beberapa dari mereka mungkin melakukan apa yang Anda inginkan. Beberapa alat gratis dan ada yang berlisensi.

Chris Quenelle
sumber
2

karena Anda merasa nyaman dengan cli dan Python, saya dapat merekomendasikan beberapa modul Perl pada CPAN. MP3 :: Tag, (juga MP3 :: Tag :: ID3v1 dan :: ID3v2 dan :: Utils), MP3 :: Info, MP3 :: ID3Lib semuanya tersedia untuk membaca dan memanipulasi tag ID3.

Jika Anda pergi ke search.cpan.org dan mencari "MP3", Anda akan menemukan * pilihan dunia!

(* Di mana "dunia" adalah serangkaian kecil, pilihan terbatas ...)

gWaldo
sumber
1
CLI dan Python ya, tapi modul Perl di CPAN ... tidak terlalu banyak :-) (Jika Anda dapat menggunakan itu di Python juga, saya tidak menyadarinya. Atau maksud Anda menulis Perl?) Secara pribadi saya mendapatkan ini sudah dipecahkan , tapi mungkin ini bermanfaat bagi orang lain.
Jonik
2

Setelah mengalami berbagai masalah jenis 'abort trap' dengan id3v2 saya menemukan eyeD3 , yang merupakan modul python juga ada sebagai alat baris perintah. Tampaknya lebih baru diperbarui daripada beberapa program lain yang disebutkan di atas.

Bryry
sumber