Ich möchte alle ID3-Tags (sowohl ID3v1 als auch ID3v2) in einer Gruppe von MP3-Dateien als CSV-Datei oder ähnliches exportieren. Ich verwende derzeit Mp3tag zum Taggen, aber für die Exportfunktion muss ich angeben, welche Tags ich exportieren möchte. Ich möchte einfach alle vorhandenen Tags (und idealerweise nur die vorhandenen) in einer der MP3-Dateien exportieren (einschließlich benutzerdefinierter „TXXX“-Tags). Für "APIC"-Tags, die eingebettete Bilder speichern, würde es ausreichen, die Existenz des Tags auszugeben (oder noch besser, die Anzahl der eingebetteten Bilder zu zählen).
Ich verwende Microsoft Windows und suche nach einer Freeware-Lösung. Ich verwende gerne Kommandozeilen-Tools (tatsächlich bevorzuge ich sie oft).
Vielen Dank
Ich würde vorschlagen, einen Blick auf EyeD3 zu werfen , das sowohl ein Befehlszeilentool als auch eine Python- Bibliothek ist, um genau das zu tun, wonach Sie suchen. Alleine wird es eine Menge von dem tun, was Sie brauchen - mit einem trivialen Python-Skript sollte es in der Lage sein, genau das zu tun, wonach Sie suchen, indem Sie Pythons verwenden, die in der CSV-Bibliothek integriert sind.
Sowohl EyeD3 als auch Python sind kostenlos, plattform- und befehlszeilenübergreifend.
Installieren Sie zuerst Python auf Ihrem System und verwenden Sie dann, pip install eyeD3
um EyeD3 zu erhalten.
Das OP, das mehr Erfahrung mit Perl als mit Python hat, verwendete die Perl MP3::Tag- Bibliothek, um die Aufgabe auszuführen, es gibt auch ähnliche Bibliotheken für eine Reihe anderer Sprachen, z. B. taglib-ruby
Hier ist meine Sammlung von ID3-Tag-Viewern. Ich habe sie in den letzten Monaten für ein anderes Projekt gesammelt, an dem ich gerade arbeite. Sie können das PowerShell-Skript bearbeiten, um so viele Dateien zu verarbeiten, wie Sie möchten. Aber zum leichteren Verständnis habe ich es in einem ersten Schritt mit einer einzelnen Eingabedatei demonstriert.
sox.exe
Die folgenden Powershell-Skripts demonstrieren die nützlichste Syntax für jedes Tool, um nur ID3-Tags anzuzeigen. Sie müssen alle Tools herunterladen und alle Pfade im Skript oder Kurs ändern.
# 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"
Mein persönlicher Favorit ist taglib-sharp
, dass es die meisten Informationen ausgibt. Danach kommt ExifTool
undffprobe
.csv
Datei einzufügen. Während Sie eine Vielzahl von Tools vorführen, mit denen ein bestimmtes Problem gelöst werden kann, scheinen Sie sich darauf zu konzentrieren, ID3-Tags als Befehlszeilenausgabe auszugeben. IMHO wäre Ihre Antwort wirklich wertvoll, wenn sie mindestens ein Beispiel für das Ablegen von ID3-Tag-Daten in eine .csv
Datei enthalten würde. Aber trotzdem danke für die ganze Mühe. Schade, dass ich diese Antwort nur einmal hochstimmen kann.Ich komme etwas spät zum Spiel, aber meine Antwort kann jemand anderem helfen.
Ich denke, dass Sie Mp3tag für diese Aufgabe etwas zu kurz verkaufen . Seine Exportfunktion ist ziemlich robust und ermöglicht es Ihnen, fast jedes textbasierte Format Ihrer Wahl zu erstellen: html, xml, csv, tsv und json, um nur einige zu nennen.
Zum Beispiel verwende ich Folgendes, um alle Felder aus allen Dateien pro Album zu sichern. Gehen Sie zu Datei > Exportieren > Neu (Schaltfläche) > geben Sie einen aussagekräftigen Namen ein > ersetzen Sie den Standard durch Folgendes:
$filename(%_folderpath%__Tags, All.txt,utf-8)$loop(%_path%)^%_parent_directory%|%_directory%|$regexp($list(,:'',''|),\r \n,U+000DU+000A)$$$char(13)$char(10)$loopend() Erstellt: %_datetime%
Aktivieren Sie das Kontrollkästchen "eine Datei pro Verzeichnis" und führen Sie es aus. Sie erhalten eine CSV-Datei mit Pipe "|" als Trennzeichen in jedem verarbeiteten Verzeichnis. Und man kann Tausende von Verzeichnissen auf einmal verarbeiten.
Das Forum dort hat andere Beispiele (Suche ist dein Freund) und Leute dort sind bereit, dir zu helfen, dir selbst zu helfen.
osulisch
holroy