¿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.
¿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.
Respuestas:
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 con aac
/ m4a
files. Otras herramientas no parecen (¿o sabes lo contrario?). También sugeriré buscar en su FORMAT
sección, para evitar casos en los que una secuencia también tenga un title
etc ffprobe -loglevel error -show_entries format -i "$1" 2>&1 | sed -E -n 's|^TAG:title=(.*)$|\1|p'
. : .
exiftool
o ffprobe
. La herramienta más especializada para este trabajo sería metaflac --list
del flac
paquete. Para ogg exiftool
también funciona, pero también lo hay vorbiscomment -l
del vorbis-tools
paquete. Extrañamente vorbiscomment
y metaflac
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
sudo apt-get install mp3info
Para obtener etiquetas mp3 individuales de un archivo, hay que llamar
mp3info -p %a file.mp3
que le da al artista del archivo. El% a significa que uno quiere obtener el artista y hay otras claves para las otras etiquetas.
mp3info
. Es posible que desee ver id3v2
: 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 ejecute id3v2
y procese la salida de manera adecuada.
-R
flag con grep
para obtener la salida especificada.
Only ID3 versions 1.0 and 1.1 are supported
.
Puedes usar eyed3 . Primero, desde una terminal, instale:
sudo apt-get install eyed3
Entonces corre:
eyeD3 song.mp3
Combina eso con grep
para obtener etiquetas específicas en una línea.
eyeD3 song.mp3 | grep artist
(para quitar todas las etiquetas mp3, ver AQUÍ )
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.
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).
"ExifTool es una biblioteca Perl independiente de la plataforma más una aplicación de línea de comandos para leer, escribir y editar metainformación en una amplia variedad de archivos. ExifTool admite muchos formatos de metadatos diferentes, incluidos EXIF, GPS, IPTC, XMP, JFIF, GeoTIFF, ICC Profile, Photoshop IRB, FlashPix, AFCP e ID3, así como las notas del fabricante de muchas cámaras digitales de Canon, Casio, FLIR, FujiFilm, GE, HP, JVC / Victor, Kodak, Leaf, Minolta / Konica-Minolta, Motorola, Nikon, Nintendo, Olympus / Epson, Panasonic / Leica, Pentax / Asahi, Phase One, Reconyx, Ricoh, Samsung, Sanyo, Sigma / Foveon y Sony ". - ExifTool por Phil Harvey
Aquí hay un ejemplo del comando:
exiftool test.mp3
ExifTool Version Number : 10.00
File Name : test.mp3
Directory : .
File Size : 8.2 MB
File Modification Date/Time : 2016:03:02 21:44:58+01:00
File Access Date/Time : 2016:04:06 21:34:01+02:00
File Inode Change Date/Time : 2016:03:02 21:45:36+01:00
File Permissions : rw-rw-r--
File Type : MP3
File Type Extension : mp3
MIME Type : audio/mpeg
MPEG Audio Version : 1
Audio Layer : 3
Sample Rate : 44100
Channel Mode : Stereo
MS Stereo : Off
Intensity Stereo : Off
Copyright Flag : False
Original Media : False
Emphasis : None
VBR Frames : 9544
VBR Bytes : 8467680
ID3 Size : 115419
Band : Tech N9ne Collabos
Album : Strangeulation (Deluxe Edition)
Composer : Tech N9ne Collabos
Genre : Rap & Hip-Hop
Copyright : 2014 Strange Music, Inc
Title : American Horror Story (feat. Ces Cru)
Artist : Tech N9ne Collabos
Track : 10
Year : 2014
Comment :
Lyrics :
Private : (Binary data 8192 bytes, use -b option to extract)
Picture MIME Type : image/jpeg
Picture Type : Front Cover
Picture Description :
Picture : (Binary data 104371 bytes, use -b option to extract)
Audio Bitrate : 272 kbps
Date/Time Original : 2014
Duration : 0:04:09 (approx)
Compruebe lltag
si está buscando una solución que soporte más que solo mp3 / ID3.
Instalarlo con:
sudo apt-get install lltag
para ver todas las etiquetas con él: ( -S
es para mostrar)
lltag -S somefile.mp3
para ver ciertas etiquetas con él:
lltag --show-tags artist,album,title,number somefile.mp3
Puede comenzar con este screencast y la Guía de inicio
Instalar ya sea:
pip install beets # latest version
apt install beets # repo version
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 Renamer