Me gustaría exportar todas las etiquetas ID3 (tanto ID3v1 como ID3v2) en un grupo de archivos MP3 como un archivo CSV o algo similar. Actualmente uso Mp3tag para etiquetar, pero su función de exportación requiere que especifique qué etiquetas quiero exportar; Simplemente me gustaría exportar todas las etiquetas que existen (e idealmente solo las que existen) en cualquiera de los archivos MP3 (incluidas las etiquetas "TXXX" definidas por el usuario). Para las etiquetas "APIC" que almacenan imágenes incrustadas, sería suficiente mostrar que la etiqueta existe (o incluso mejor, contar la cantidad de imágenes incrustadas).
Estoy usando Microsoft Windows y estoy buscando una solución gratuita. Estoy feliz de usar herramientas de línea de comandos (de hecho, a menudo las prefiero).
Gracias
Sugeriría echar un vistazo a EyeD3 , que es tanto una herramienta de línea de comandos como una biblioteca de Python para hacer exactamente el tipo de cosas que está buscando. Por sí solo, hará mucho de lo que necesita: con un script de python trivial, debería poder hacer exactamente lo que está buscando usando pythons integrados en la biblioteca csv.
Tanto EyeD3 como Python son gratuitos, multiplataforma y línea de comandos.
Primero instale python en su sistema y luego utilícelo pip install eyeD3
para obtener EyeD3.
El OP, que tiene más experiencia en Perl que Python, usó la biblioteca perl MP3::Tag para realizar la tarea, también hay bibliotecas similares para otros idiomas, por ejemplo, taglib-ruby
Aquí está mi colección de visores de etiquetas ID3. Los coleccioné durante los últimos meses para otro proyecto en el que estoy trabajando actualmente. Puede manipular el script de PowerShell para procesar tantos archivos como desee. Pero para facilitar la comprensión, lo demostré con un solo archivo de entrada en un primer paso.
Etiquetador » Salida de ejemplo
sox.exe
Los siguientes scripts de Powershell demuestran la sintaxis más útil para cada herramienta para ver solo las etiquetas ID3. Tienes que descargar todas las herramientas y cambiar todas las rutas en el script o curso.
# Choose mp3 file to view ID3 tags from
$input = "D:\_input\musicfile.mp3"
$outDir = "D:\_output"
# Set correct paths to downloaded ID3 tools
$taglib = "D:\tag-lib\taglib-sharp.dll"
$exiftool = "D:\exiftool\exiftool.exe"
$ffprobe = "D:\ffmpeg\ffprobe.exe"comment)
$ffmpeg = "D:\ffmpeg\ffmpeg.exe"
$handbrake = "D:\handbrake\handbrakeCLI.exe"
$mediainfo = "D:\MediaInfo\MediaInfo.exe"
$metamp3 = "D:\metamp3\metamp3.exe"
$gettags = "D:\gettags\gettags_mingw.exe"
$tagger = "D:\Tagger\TaggerSharp.exe"
$mpgtx = "D:\mpgtx\mpgtx.exe"
$tag = "D:\Tag\Tag.exe"
$sox = "D:\sox\sox.exe"
$mp3info = "D:\mp3info\mp3info.exe"
# Load taglib library, read ID3 tags and save output to specified folder
[void][system.reflection.assembly]::loadfile($taglib)
$media = [taglib.MPEG.file]::create($input)
[TagLib.Id3v2.Tag] $Id3v2 = $media.GetTag([TagLib.TagTypes]::Id3v2)
$Id3v2.GetFrames() | Out-File "$outDir\taglib.txt"
# Run all external CMD utilities and save their output to specified folder
& $exiftool -ee -e -a -f -g1 -s $input 2>&1 | Out-File "$outDir\exiftool.txt"
& $ffprobe -loglevel quiet -show_streams -show_format -print_format flat=h=1 $input 2>&1 | Out-File "$outDir\ffprobe.txt"
[string](& $ffmpeg -hide_banner -i $input -f NULL nul 2>&1 ) | Out-File "$outDir\ffmpeg.txt"
[string](& $handbrake -v0 --scan --input $input 2>&1) | Out-File "$outDir\handbrake.txt"
& $mediainfo --full $input 2>&1 | Out-File "$outDir\mediainfo.txt"
& $metamp3 --info $input 2>&1 | Out-File "$outDir\metamp3.txt"
& $gettags $input 2>&1 | Out-File "$outDir\gettags.txt"
& $tagger $input 2>&1 | Out-File "$outDir\tagger.txt"
(& $mpgtx -i $input 2>&1 ) -replace "`0" | Out-File "$outDir\mpgtx.txt"
& $tag --test $input 2>&1 | Out-File "$outDir\tag.txt"
& $sox --info $input 2>&1 | Out-File "$outDir\sox.txt"
& $mp3info $input 2>&1 | Out-File "$outDir\mp3info.txt"
Mi favorito personal es taglib-sharp
que genera la mayor cantidad de información. Después de que llega ExifTool
yffprobe
.csv
archivo. Si bien muestra una gran variedad de herramientas que se pueden usar para resolver un problema determinado, parece que se está enfocando en descargar etiquetas ID3 como una salida de línea de comandos. En mi humilde opinión, su respuesta sería realmente valiosa, si tuviera al menos un ejemplo de volcado de datos de etiquetas ID3 en un .csv
archivo. Pero gracias, de todos modos, por todo el esfuerzo. Lástima que pueda votar esta respuesta solo una vez.Llego un poco tarde al juego, pero mi respuesta puede ayudar a alguien más.
Creo que estás vendiendo Mp3tag un poco corto para esta tarea. Su función de exportación es bastante sólida y le permitirá crear casi cualquier formato basado en texto que elija: html, xml, csv, tsv y json, por mencionar algunos.
Por ejemplo, uso lo siguiente para volcar todos los campos de todos los archivos por álbum. Vaya a Archivo > Exportar > Nuevo (botón) > ingrese un nombre significativo > reemplace el estándar con lo siguiente:
$filename(%_folderpath%__Tags, All.txt,utf-8)$loop(%_path%)^%_parent_directory%|%_directory%|$regexp($list(,:'',''|),\r \n,U+000DU+000A)$$$char(13)$char(10)$loopend() Creado: %_datetime%
Seleccione la casilla de verificación "un archivo por directorio" y ejecute. Obtendrá un csv con tubería "|" como delimitador en cada directorio procesado. Y uno puede procesar miles de directorios de una sola vez.
El foro allí tiene otros ejemplos (la búsqueda es tu amigo) y la gente está dispuesta a ayudarte a que te ayudes a ti mismo.
osullico
hola