Esiste un buon strumento ID3 da riga di comando per OS X?


45

Qualcuno sa di uno strumento ID3 da riga di comando * , con supporto per ID3v2 , che puoi lavorare su Mac OS X con ragionevole sforzo? Dovrebbe supportare sia la lettura che la scrittura di tag.

( * Voglio essere in grado di chiamarlo ad esempio da alcuni script Python, quindi uno strumento GUI non lo farà.)

L' utilità id3tool è comunque buona, ma non supporta ID3v2 (e quindi non funziona così bene con iTunes). Ho dovuto compilarlo dal sorgente, ma era abbastanza semplice su un Mac con Xcode e strumenti di sviluppo (incluso, in particolare, un compilatore C). Ad ogni modo, mi piacerebbe in particolare qualcosa con opzioni della riga di comando simili a id3tool. Ecco un esempio di come contrassegnare un file:

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

sto lavorando per scrivere qualcosa del genere ... ci sono alcune librerie disponibili in Python e c'è uno strumento chiamato barbabietole che le utilizza, quindi ho studiato come è scritto.
Robert S Ciaccio,

2
inoltre ... MusicBrainz Picard è scritto in Python ed è open source, quindi probabilmente c'è molto da trarre dal suo uso del codice e della libreria.
Robert S Ciaccio,

sono d'accordo, Picard è semplicemente geniale
Rohan Monga il

Risposte:


48

Se hai installato Homebrew (altamente raccomandato), puoi semplicemente fare:

brew install id3lib

Questo consente di installare diversi strumenti ID3 da riga di comando, tra cui id3tag, id3convert, id3cpe id3info. Non c'è bisogno di script per Python o Perl; basta usare i normali comandi di 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)

Supporta ID3v2?
Jonik,

id3lib funziona anche in altre distribuzioni come macport. A proposito, ha senso passare dalle porte all'homebrew? Ho avuto così tanta sofferenza nel passare dal fink ...
HiQ CJ

"Errore: nessuna formula disponibile per mid3v2". Qualcuno è interessato a contribuire con una formula?
ManuelSchneid3r,

3
@Jonik id3lib può scrivere e manipolare sia ID3v1 che ID3v2
jchook,

1
Viene fornito anche con id3v2il comando "fai tutto". Ti permetterà di scrivere qualsiasi tag arbitrario in un file.
Edward Falk,

14

C'è una versione compatibile con OS X della libreria id3lib disponibile qui su GitHub . Sostiene di supportare sia ID3v1 che ID3v2.


1
Grazie! Questo risponde pienamente alla mia domanda. C'era solo un pacchetto sorgente disponibile, ma l'installazione da quello (su un Mac con strumenti di sviluppo) era piuttosto regolare: la tariffa Unix standard di configure, makee make install. id3lib è composto da 4 file binari separati: id3info (per la lettura dei tag), id3tag (per la scrittura dei tag), id3convert e id3cp. Tutto funziona bene (e iTunes onora i tag v2 scritti con id3tag).
Jonik,

@Jonik cosa hai usato per avvolgere la libreria? Qualche pitone che hai scritto?
Robert S Ciaccio,

@calavera: Sì, ho degli script semplici che provano a determinare il numero o il nome della traccia da un nome di file (come "Artist - 03 - Track.mp3") e, se trovato, scriverlo anche nel tag ID3.
Jonik,

@Jonk: saresti disposto a condividere? Non ho molta esperienza con Python, quindi qualcosa del genere sarebbe fantastico con cui giocare ed estendere ...
Robert S Ciaccio

@calavera: ecco qua . Utilizzo: add-track-names.py *mp3o add-track-numbers.py *mp3. Cose comuni (la maggior parte del codice) sono in un file .py separato. Non sono nemmeno un programmatore Python, quindi il codice è probabilmente tutt'altro che "pythonic". :) Ma ho (ri) imparato molto quando l'ho scritto, ed è probabilmente facile estenderlo se le tue esigenze di etichettatura sono simili alle mie.
Jonik,

5

Il modulo Python Mutagen viene fornito con lo strumento ID3 della riga di comando chiamato sostituzione mid3v2 per id3lib's.
Dalla documentazione di utilizzo:

È possibile impostare il valore per qualsiasi frame ID3v2 utilizzando '-' e quindi un ID frame.
Ad esempio:
mid3v2 --TIT3 "Monkey!" file.mp3 imposta il frame "Sottotitoli / Descrizione" su "Scimmia!".


Mutagen può essere installato con sudo pip install mutagendopo aver installato pip con sudo easy_install pip.
Lri,

puoi sudo easy_install mutagenanche eseguire direttamente
user1259710

4

Potresti provare id3v2 . Si basa sull'id3lib menzionato da Huyz, ma sembra essere uno strumento da riga di comando migliore rispetto a quelli con id3lib. Scarica facilmente i tag ID3V2 dagli MP3 prodotti da iTunes, ma non i file M4A prodotti da iTunes (come con Apple Lossless).

Se hai bisogno di file M4A, un'altra opzione è ffmpeg . Il suo strumento da riga di comando ffprobe stampa i metadati nei file e credo che tu possa scrivere metadati tramite ffmpeg. Funziona con file MP3 e M4A prodotti da iTunes. ffprobe potrebbe non mostrare tutti i metadati; mp4v2 è un'altra buona opzione.

Tutti e tre i programmi possono essere facilmente installati tramite Homebrew. In questo momento (gennaio 2012) ffmpeg richiede la compilazione di gcc, quindi brew install --use-gcc ffmpeg.


grazie per aver suggerito mp4v2 per m4a! funziona come un incantesimo, mentre id3v2 no :(
Ilias Karim

mp4v2 è l'unico che ha modificato i tag in modo compatibile con iTunes (macOS 10.13, iTunes 12.7).
void-pointer


2

C'è sempre AppleScript. Non ne sono un grande fan, ma iTunes è programmabile da script e puoi manipolare tutti i tag mp3 da lì. Puoi invocare Applescript dalla riga di comando usando osascript.


2

Questo sito: http://dougscripts.com/itunes/ ha molti buoni script e strumenti da riga di comando che si sovrappongono a itunes per fare cose con la tua libreria musicale. Alcuni di loro possono fare quello che vuoi. Alcuni strumenti sono gratuiti e alcuni sono autorizzati.


2

dato che sei a tuo agio con cli e Python, posso consigliare alcuni moduli Perl su CPAN. MP3 :: Tag, (oltre a MP3 :: Tag :: ID3v1 e :: ID3v2 e :: Utils), MP3 :: Info, MP3 :: ID3Lib sono tutti disponibili per leggere e manipolare i tag ID3.

Se vai su search.cpan.org e cerchi "MP3", troverai un mondo * di opzioni!

(* Dove "world" è un piccolo insieme limitato di opzioni ...)


1
CLI e Python sì, ma i moduli Perl su CPAN ... non così tanto :-) (Se puoi usare anche quelli in Python, non ne ero a conoscenza. Oppure intendevi scrivere Perl invece?) Personalmente ho capito risolto già, ma forse questo è utile per gli altri.
Jonik,

2

Avendo avuto vari problemi di tipo 'abort trap' con id3v2 ho scoperto eyeD3 , che è un modulo Python esistente anche come strumento da riga di comando. Sembra essere stato aggiornato più di recente rispetto ad alcuni degli altri programmi sopra menzionati.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.