¿Hay alguna manera de leer las etiquetas mp3 de un archivo desde el shell? Algo así como:
mp3tags MyFile.mp3 author
debería generar la etiqueta de autor de un archivo mp3.
fuente
¿Hay alguna manera de leer las etiquetas mp3 de un archivo desde el shell? Algo así como:
mp3tags MyFile.mp3 author
debería generar la etiqueta de autor de un archivo mp3.
También puedes usar ffprobe
cuál es parte de ffmpeg
.
sudo apt-get install ffmpeg
ffprobe file.mp3
Si no desea otra información, como la longitud de la pista, etc., puede combinar la salida con grep:
ffprobe file.mp3 2>&1 | grep -A90 'Metadata:'
O para obtener solo el autor:
ffprobe -loglevel error -show_entries format_tags=artist -of default=noprint_wrappers=1:nokey=1 file.mp3
Puede seleccionar otras etiquetas separándolas con una coma, como format_tags=title,album
.
Quería buscar una palabra clave en todos los archivos mp3 en una carpeta. La carpeta tenía 486 archivos, por lo que se volvió interesante saber cuál de las soluciones mencionadas aquí es la más rápida. Aquí está el bucle que utilicé:
# sudo apt-get install ffmpeg lltag eyed3 mp3info id3v2 libimage-exiftool-perl libid3-tools id3tool
keyword='fill_me_in'
getTitleFF() { ffprobe "$1" 2>&1 | sed -E -n 's/^ *title *: (.*)/\1/p'; }
getTitleLL() { lltag --show-tags title "$1" | sed -nE 's/^ TITLE=(.*)/\1/p'; }
getTitleEyed() { eyeD3 2>&1 "$1" | sed -n 's|\x1b\[[0-9;]*mtitle[^:]*: ||p'; }
getTitleInfo() { mp3info -p %t "$1"; }
getTitleId3() { id3v2 -l "$1" | sed -nE 's/^(TIT2 \([^)]*\)|Title *): (.*)/\2/p'; }
getTitleExif() { exiftool -title -b "$1"; }
getTitleId3i() { id3info "$1" | sed -nE 's/^=== TIT2 \([^)]*\): //p'; }
getTitleTool() { id3tool "$1" | sed -n 's|^Song Title:\t||p'; }
for prog in FF LL Eyed Info Id3 Exif Id3i Tool; do
echo "=== getTitle${prog} ==="
time \
for file in *.mp3; do
if "getTitle${prog}" "$file" | grep -q "$keyword"; then
echo "$file"
fi
done
done
Notas:
lltag
y mp3info
no encuentro un título, porque los archivos que estaba usando tenían etiquetas ID3v2, vea el comentario de @ s-prasanth: ¿Cómo leer etiquetas mp3 en shell?eyeD3
Es problemático de usar mediante programación, ya que utiliza códigos de color (negrita).eyeD3
y también id3v2
(pero solo para etiquetas ID3 v1) devolver el título y el artista en la misma línea, lo que complica aún más las cosas; por lo tanto, getTitleEyed
y a veces getTitleId3
devuelve tanto el título como el artista, así que no copie y pegue esas funciones.getTitleId3 solo funcionará para etiquetas ID3 v2, porque id3v2
tiene diferentes formatos para etiquetas ID3v1 e ID3v2, es decir
Title : Artist:
vs. ID3v2:
TIT2 (Title/songname/content description):
Como el único programa de estos 5 eyeD3
imprime una advertencia roja para dos de los archivos:
Invalid mode/bitrate combination for layer II
No ID3 v1.x/v2.x tag found!
Parece que esos dos archivos tienen etiquetas ID3v1, porque esos dos archivos son los únicos en los que lltag
e mp3info
pueden obtener un título. Me pregunto si esto es un error eyeD3
ya que ningún otro programa mencionado aquí tiene un problema con estos archivos ...
Resultados (tiempo real):
Program | Version | Time / s
----------+------------+-----------
exiftool | 10.25 | 49.5 ± 0.5
lltag | 0.14.5 | 41 ± 1.0
ffprobe | 3.1.3-1+b3 | 33 ± 0.5
eyeD3 | 0.6.18 | 24 ± 0.5
id3info | 3.8.3 | 4.2 ± 0.1
id3v2 | 0.1.12 | 2.9 ± 0.1
id3tool | 1.2a | 1.7 ± 0.1
mp3info | 0.8.5a | 1.4 ± 0.1
En cuanto al tiempo, el ganador aquí es id3tool
(mp3info es más rápido, pero no funciona con ID3 v2).
id3v2
también es bastante rápido, pero la getTitleId3
función necesitaría un ajuste para funcionar también con etiquetas ID3v1, lo que en el peor de los casos puede ralentizarlo por el factor 2.
id3info
en su comparación?ffmpeg
tiene otra ventaja: funciona conaac
/m4a
files. Otras herramientas no parecen (¿o sabes lo contrario?). También sugeriré buscar en suFORMAT
sección, para evitar casos en los que una secuencia también tenga untitle
etcffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'
. : .exiftool
offprobe
. La herramienta más especializada para este trabajo seríametaflac --list
delflac
paquete. Para oggexiftool
también funciona, pero también lo hayvorbiscomment -l
delvorbis-tools
paquete. Extrañamentevorbiscomment
ymetaflac
no se puede intercambiar, a pesar de que FLAC y OGG tienen metadatos vorbis.Ok, encontré un programa solo. Se llama mp3info e instalado por
Para obtener etiquetas mp3 individuales de un archivo, hay que llamar
que le da al artista del archivo. El% a significa que uno quiere obtener el artista y hay otras claves para las otras etiquetas.
fuente
mp3info
. Es posible que desee verid3v2
: puede editar / agregar v2 y mostrar v1 y v2. Si no le gusta la forma en que muestra las etiquetas, puede escribir un script que se ejecuteid3v2
y procese la salida de manera adecuada.-R
flag congrep
para obtener la salida especificada.Only ID3 versions 1.0 and 1.1 are supported
.Puedes usar eyed3 . Primero, desde una terminal, instale:
Entonces corre:
Combina eso con
grep
para obtener etiquetas específicas en una línea.(para quitar todas las etiquetas mp3, ver AQUÍ )
fuente
eyeD3
noeyed3
eyeD3 --plugin display -p "%t% by %a%" *
.Prefiero usar id3v2, solo escriba
id3v2 -l somefile.mp3
. También puede ver la página del manual id3v2 para un uso más específico.fuente
mid3v2
lugar debido a la falta de soporte Unicode. También la última actualización de id3v2 fue en 2013 .Puede probar exiftool (leer y escribir metainformación en archivos).
Aquí hay un ejemplo del comando:
fuente
Compruebe
lltag
si está buscando una solución que soporte más que solo mp3 / ID3.Instalarlo con:
para ver todas las etiquetas con él: (
-S
es para mostrar)para ver ciertas etiquetas con él:
fuente
Remolacha
Puede comenzar con este screencast y la Guía de inicio
Instalar ya sea:
También:
exiftool -v3 *.mp3
mid3v2
from (python-mutagen
paquete) (en lugar deid3v2
, ¡la última actualización fue en 2013 !)id3
- Editor para etiquetas ID3 (no es lo mismo que este id3 )id3tool
- Editor de línea de comando para etiquetas id3id3ren
- ID3 Tagger y Renamerfuente