pacman -Si mp3info
https://man.archlinux.org/man/mp3info.1
Siehe die Ausgabeoptionen mittels Parameter -p
Damit solltest du jede Info in jedes "Format" ablegen können.
Trotzdem ist mir jetzt auch nicht klar, was du genau machst und was du genau erwarten würdest. Mit deiner ursprünglichen Aufgabenstellung hat das IMHO nichts mit zu tun.
Wo ist die Verbindung zu einer CSV-Datei?
Wenn ich das auf irgendwas bei mir loslasse kommt:
B: Nancy Sinatra C: Bang, Bang
raus? Wo ist da CSV? Was fängst du damit an?
Zeige doch am besten mal an einem realen Beispiel bei dir:
a) Was dein Code damit macht
b) Wie deine Ausgabedatei damit aussieht
c) Wie du es gerne hättest
Hint: Schau dir mal die manpage zu ffprobe an, dort gibt es einige Optionen die für dein Vorhaben interessant sein könnten. Oder auch:
https://wiki.ubuntuusers.de/ffprobe/
Gerade die diversen Möglichkeiten des -print_format Parameters könnten dich weiterführen.
Bsp:
$ ffprobe -v quiet -show_format -print_format flat /mnt/s01/Media/musik/Sammlung/Black\ Sabbath/Black\ Sabbath\ -\ Paranoid.mp3
format.filename="/mnt/s01/Media/musik/Sammlung/Black Sabbath/Black Sabbath - Paranoid.mp3"
format.nb_streams=1
format.nb_programs=0
format.format_name="mp3"
format.format_long_name="MP2/3 (MPEG audio layer 2/3)"
format.start_time="0.000000"
format.duration="168.785125"
format.size="2701312"
format.bit_rate="128035"
format.probe_score=51
format.tags.title="Paranoid"
format.tags.artist="Black Sabbath"
$ ffprobe -v quiet -show_format -print_format compact /mnt/s01/Media/musik/Sammlung/Black\ Sabbath/Black\ Sabbath\ -\ Paranoid.mp3
format|filename=/mnt/s01/Media/musik/Sammlung/Black Sabbath/Black Sabbath - Paranoid.mp3|nb_streams=1|nb_programs=0|format_name=mp3|format_long_name=MP2/3 (MPEG audio layer 2/3)|start_time=0.000000|duration=168.785125|size=2701312|bit_rate=128035|probe_score=51|tag:title=Paranoid|tag:artist=Black Sabbath
ffprobe -v quiet -show_format -print_format csv /mnt/s01/Media/musik/Sammlung/Black\ Sabbath/Black\ Sabbath\ -\ Paranoid.mp3
format,/mnt/s01/Media/musik/Sammlung/Black Sabbath/Black Sabbath - Paranoid.mp3,1,0,mp3,MP2/3 (MPEG audio layer 2/3),0.000000,168.785125,2701312,128035,51,Paranoid,Black Sabbath
//Edit: Ich glaube, langsam verstehe ich um was es dir bei dem ganzen Sortierdingens geht:
Du bist mit der Reihenfolge in der ffprobe die Meta-Tags ausgibt nicht zufrieden und möchtest das eigenem Belieben in "Spalten" anordnen.
Kurz: Wenn es sich nur um mp3 handelt nimm mp3info:
mp3info -p "%l,%a,%t\n" /mnt/s01/Media/musik/Sammlung/Black\ Sabbath/Black\ Sabbath\ -\ Paranoid.mp3
Du hast volle Kontrolle über die Reihenfolge und das Format/Trenner
@Martin-MS hat dir ja noch eine andere Alternative aufgezeigt.
Wenn es unbedingt ffprobe sein soll:
Du kannst zwar für die Ausgabe (ohne grep'pen) die gewünschten Tags angeben z.B. mittels
-show_entries format_tags=artist,title
aber die Ausgabe-Reihenfolge ist damit nicht wählbar. Da wäre ein Ansatz der, den auch @Martin-MS in einem obigen Post mit sort zeigte (Sortieren nach Keys) eine Möglichkeit.
Ich halte ffprobe aber nicht für das beste Werkzeug für Metadaten, da es z.B. diese für .ogg oder .mp3 in ganz unterschiedlichen Formatstreams sucht/bezeichnet/anzeigt. Das ist IMHO nicht filterbar wenn es um unterschiedliche Medienformate geht.
mediainfo (aus dem gleichnamigen Paket) ist da IMHO universeller und kann die Tags auch nach gewünschter Reihenfolge ausgeben. z.B:
$ mediainfo --Output="General;%Album%|%Performer%|%Title%" /mnt/s01/Media/musik/Sammlung/Muddy\ Waters/Collection\ -\ 25\ Songs\ \(1993\)/09\ -\ Muddy\ Waters\ -\ 40\ Days\ And\ 40\ Nights.ogg
Collection - 25 Songs|Muddy Waters|40 Days And 40 Nights
Welche Tags du verwenden kannst zeigt dir:
$ mediainfo --Info-Parameters
Die gebräuchlichsten findest du in der Liste oben unter General.
Mit mediainfo wären halt sehr viele unterschiedliche Medienformate abdeckbar.