¿Existe una buena herramienta ID3 de línea de comandos para OS X?

45

¿Alguien sabe de una herramienta de línea de comandos * ID3, con soporte para ID3v2 , que puede trabajar en Mac OS X con un esfuerzo razonable? Debe admitir tanto la lectura como la escritura de etiquetas.

( * Quiero poder llamarlo, por ejemplo, desde algunos scripts de Python, por lo que una herramienta GUI no funcionará).

La utilidad id3tool es buena, pero no es compatible con ID3v2 (y, por lo tanto, no funciona tan bien con iTunes). Tuve que compilarlo desde la fuente, pero eso fue bastante sencillo en una Mac con Xcode y herramientas de desarrollo (incluido, en particular, un compilador de C). De todos modos, me gustaría especialmente algo con opciones de línea de comandos similares a id3tool. Aquí hay un ejemplo de etiquetar un archivo:

id3tool -t "Song Title" -r Artist -a "Album Name" -c 2 track-02.mp3
Jonik
fuente
He estado trabajando en escribir algo como esto ... hay algunas bibliotecas disponibles en Python y hay una herramienta llamada remolacha que las usa, así que he estado investigando cómo está escrito.
Robert S Ciaccio
2
además ... MusicBrainz Picard está escrito en Python y es de código abierto, por lo que probablemente también hay mucho que aprender de su uso de código y biblioteca.
Robert S Ciaccio
Estoy de acuerdo, Picard es simplemente brillante
Rohan Monga

Respuestas:

48

Si tiene instalado Homebrew (muy recomendable), puede hacer lo siguiente:

brew install id3lib

Esto instala varias herramientas ID3 de línea de comandos, incluyendo id3tag, id3convert, id3cpy id3info. No hay necesidad de python o perl scripting; solo usa comandos de shell regulares.

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
fuente
¿Es compatible con ID3v2?
Jonik
id3lib también funciona en otras distribuciones como macports. Hablando de eso, ¿hay algún punto en cambiar de puertos a homebrew? Tuve mucho dolor al cambiar de fink ...
HiQ CJ
"Error: No hay fórmula disponible para mid3v2". Alguien interesado en contribuir con una fórmula?
ManuelSchneid3r
3
@Jonik id3lib puede escribir y manipular ID3v1 e ID3v2
jchook
1
También viene con id3v2, que es el comando "hacer todo". Le permitirá escribir cualquier etiqueta arbitraria en un archivo.
Edward Falk
14

Hay una versión compatible con OS X de la biblioteca id3lib disponible aquí en GitHub . Afirma que admite ID3v1 e ID3v2.

Jeff Swensen
fuente
1
¡Gracias! Esto responde completamente a mi pregunta. Solo había un paquete fuente disponible, pero la instalación desde allí (en una Mac con herramientas de desarrollador) fue bastante sencilla: la tarifa estándar de Unix de configure, makey make install. id3lib consta de 4 archivos binarios separados: id3info (para leer etiquetas), id3tag (para escribir etiquetas), id3convert e id3cp. Todo funciona bien (e iTunes honra las etiquetas v2 escritas con id3tag).
Jonik
@ Jonik, ¿qué usaste para envolver la biblioteca? ¿Alguna pitón que escribiste?
Robert S Ciaccio
@calavera: Sí, tengo scripts simples que intentan determinar el número de pista o el nombre de un nombre de archivo (como "Artista - 03 - Track.mp3"), y si lo encuentra, escríbalo también en la etiqueta ID3.
Jonik
@ Jonk: ¿estarías dispuesto a compartir? No tengo mucha experiencia con Python, por lo que sería genial jugar con él y extenderlo ...
Robert S Ciaccio
@calavera: Aquí tienes . Uso: add-track-names.py *mp3o add-track-numbers.py *mp3. Las cosas comunes (la mayoría del código) están en un archivo .py separado. Tampoco soy realmente un codificador de Python, por lo que el código probablemente esté lejos de ser "pitónico". :) Pero (re) aprendí mucho cuando lo escribí, y probablemente sea fácil de ampliar si sus necesidades de etiquetado son similares a las mías.
Jonik
5

El módulo de Python Mutágeno se envía con la herramienta de línea de comandos ID3 llamado mid3v2 reemplazo para id3lib es.
De la documentación de uso:

Puede establecer el valor para cualquier cuadro ID3v2 usando '-' y luego un ID de cuadro.
Por ejemplo:
mid3v2 --TIT3 "¡Mono!" file.mp3 establecería el cuadro "Subtítulo / Descripción" en "¡Mono!".

kraymer
fuente
Mutagen se puede instalar sudo pip install mutagendespués de instalar pip con sudo easy_install pip.
Lri
puede ejecutar directamente sudo easy_install mutagentambién
user1259710
4

Es posible que desee probar id3v2 . Se basa en el id3lib que mencionó Huyz, pero parece ser una mejor herramienta de línea de comandos que aquellos con id3lib. Vuelca fácilmente las etiquetas ID3V2 de los archivos MP3 producidos por iTunes, pero no iTunes produce archivos M4A (como con Apple Lossless).

Si necesita archivos M4A, otra opción es ffmpeg . Su herramienta de línea de comando ffprobe imprime metadatos en los archivos y creo que puede escribir metadatos a través de ffmpeg. Funciona con archivos MP3 y M4A producidos por iTunes. ffprobe puede no mostrar todos los metadatos; mp4v2 es otra buena opción.

Los tres programas se instalan fácilmente a través de Homebrew. En este momento (enero de 2012) ffmpeg requiere gcc para compilar, entonces brew install --use-gcc ffmpeg.

Nelson
fuente
¡Gracias por sugerir mp4v2 para m4a! funciona como un encanto, mientras que id3v2 no :(
Ilias Karim
mp4v2 es el único que editó etiquetas de forma compatible con iTunes (macOS 10.13, iTunes 12.7).
void-puntero el
2

Parece que este viejo hilo en Mac OS X Hints podría ser un buen lugar para comenzar. Es de 2003, así que no estoy seguro de si la herramienta de la que están hablando todavía se está desarrollando. También es posible que deba compilarlo usted mismo.

Ben Wyatt
fuente
2

Siempre hay AppleScript. No soy un gran admirador, pero iTunes es programable y puedes manipular todas las etiquetas mp3 desde allí. Puede invocar Applescript desde la línea de comando utilizando osascript.

eric
fuente
2

Este sitio: http://dougscripts.com/itunes/ tiene muchas buenas secuencias de comandos y herramientas de línea de comandos que se superponen a iTunes para hacer cosas con su biblioteca de música. Algunos de ellos pueden hacer lo que quieras. Algunas de las herramientas son gratuitas y otras tienen licencia.

Chris Quenelle
fuente
2

Como se siente cómodo con cli y Python, puedo recomendar algunos módulos Perl en CPAN. MP3 :: Tag, (así como MP3 :: Tag :: ID3v1 y :: ID3v2 y :: Utils), MP3 :: Info, MP3 :: ID3Lib están disponibles para leer y manipular etiquetas ID3.

Si va a search.cpan.org y busca "MP3", ¡encontrará un mundo * de opciones!

(* Donde "mundo" es un conjunto pequeño y limitado de opciones ...)

gWaldo
fuente
1
CLI y Python sí, pero los módulos de Perl en CPAN ... no tanto :-) (Si puede usarlos también en Python, no estaba al tanto de eso. ¿O quiso decir escribir Perl en su lugar?) Personalmente obtuve esto ya resuelto , pero tal vez esto sea útil para otros.
Jonik
2

Después de haber tenido varios problemas de 'abortar trampa' con id3v2, descubrí eyeD3 , que es un módulo de Python que también existe como herramienta de línea de comandos. Parece que se actualizó más recientemente que algunos de los otros programas mencionados anteriormente.

Bryn
fuente