[[Vorlage(Getestet,bionic, focal, jammy)]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Terminal: Ein Terminal öffnen] }}} [[Inhaltsverzeichnis(3)]] [https://kid3.kde.org/ kid3-cli] {en} ist ein [:Shell:]-Programm zum bearbeiten der [wikipedia:Tag (Informatik):Tags] (Metadaten) von zahlreichen [wikipedia:Audioformat:Audioformaten]. Es handelt sich um die Shell-Variante von [:Kid3:], stammt vom gleichen Entwickler und basiert auf der gleichen Kernkomponente ''kid3-core''. = Installation = {{{#!vorlage Paketinstallation kid3-cli, universe }}} = Überblick = kid3-cli verfügt über einen interaktiven Modus der bei einem einfachen Programm aufruf verwendet wird: {{{#!vorlage Befehl kid3-cli }}} Ferner können auch wie gewohnt Optionen und Zieldateien direkt übergeben werden. Hierfür muss die Option `-c` zuerst angegeben werden: {{{#!vorlage Befehl kid3-cli -c [Optionen] [Befehle] [Dateien] }}} = Interaktiver Modus = Hierbei übernimmt kid3-cli das Terminal und wird mit seinen eigenen Befehlen gesteuert: == Befehle == === Navigation und Grundlegendes=== {{{#!vorlage Tabelle Befehl Beschreibung +++ ``pwd`` Den aktuellen Pfad anzeigen +++ ``cd PFAD`` In PFAD wechseln +++ ``ls`` Dateien auflisten und zeigen Welche ausgewählt, sowie verändert wurden +++ ``select NAME`` Die Datei NAME auswählen +++ ``select first`` Die alphanumerisch erste Datei im Verzeichnis auswählen +++ ``select next`` Nächste Datei auswählen +++ ``select previous`` Vorige Datei wählen +++ ``select all`` Alle Dateien auswählen +++ ``select none`` Alle gewählten Dateien abwählen- Nötig bevor Alle ausgewählt werden können +++ ``save`` Die Änderungen für die ausgewählte(!) Datei abspeichern +++ ``revert`` Alle Änderungen für die ausgewählte Datei verwerfen +++ ``exit`` Interaktiven Modus verlassen. Gesperrt falls nicht-gespeicherte Änderungen vorhanden sind +++ ``exit force`` Interaktiven Modus verlassen, alle Änderungen verwerfen }}} Ausgabe von `ls`: {{{#!vorlage Code kid3-cli> ls 1-- 01. Irgend ein Lied.mp3 > 12- 02. Noch ein Lied.mp3 *1-- 03. Und wieder eins.mp3 }}} * `>` signalisiert ausgewählte Dateien * `*` signalisiert geänderte, aber noch nicht gespeicherte Tags * `1--` zeigt das nur ein Tag mit der Nummer 1 vorhanden ist (siehe unten) während bei der zweiten Datei `12-` zeigt, das auch ein Tag Nummer 2 existiert. === Tags === Es können je Datei bis zu drei Tags gespeichert werden, die allesamt ihre eigenen Elemente beinhalten. Tag 2 ist bei allen Audioformaten der Standard. Bei [wikipedia:MP3:] wird zusätzlichen zwischen den [wikipedia:ID3-Tag:]-Versionen 1 und 2 unterschieden. Sind beide vorhanden sieht dies bei der Abfrage (z.B. mit `kid-3cli -c "get" Datei.mp3`) so aus: {{{#!vorlage Code Tag 1: Titel Ein langer Titel der von id3-V Interpret Sonstwer ... Tag 2: Titel Ein langer Titel der von id3-Version 1 nicht komplett angezeigt werden kann. Interpret Sonstwer ... }}} Die Versionen werden Tag 1 respektive 2 zugeordnet. {{{#!vorlage Tabelle Befehl Beschreibung +++ ``tag NUMMER`` Tag auswählen. Ist er nicht vorhanden, wird er angelegt. +++ ``remove NUMMER`` Tag entfernen +++ ``syncto NUMMER`` Ausgewählten Tag zu Tag NUMMER kopieren }}} === Elemente === Die Elemente befinden sich innerhalb der Tags, sie beschreiben die eigentlichen Informationen wie Liedtitel, Interpret etc. {{{#!vorlage Tabelle Befehl Beschreibung +++ ``get`` Alle Elemente des Tags anzeigen +++ ``get ELEMENT`` Nur das beschriebene Element anzeigen +++ ``set ELEMENT "INHALT"`` Dem Element diesen Inhalt zuweisen +++ ``set ELEMENT ""`` Element entfernen indem es mit "Nichts" überschrieben wird }}} Die gebräuchlichsten Elemente: {{{#!vorlage Tabelle Element Beschreibung +++ ``title`` Liedtitel +++ ``album`` Albumtitel +++ ``artist`` Interpret +++ ``date`` Erscheinungsjahr +++ ``track`` Liednummer +++ ``genre`` Musikalisches Genre +++ ``discnumber`` CD-Nummer für Alben mit mehreren CDs +++ ``albumartist`` Haupt-Interpret vom Album +++ ``performer`` Ausführender Interpret z.B. Orchester +++ ``composer`` Komponist +++ ``picture:'/pfad/zu/bilddatei.jpg' 'Bildbeschreibung'`` Cover in Tag einbetten }}} == Besondere Befehle == === Titel nummerieren === Mit dem Befehl `numbertracks` zählt kid3-cli die Dateien alphanumerisch und setzt die Stücknummer in jedem Tag: {{{#!vorlage Code select all numbertracks }}} === Tags von/zu Dateinamen === Tags werden von Dateinamen mit `totag` übernommen gefolgt von Variablen welche die Struktur beschreiben. Die Variablen benutzen die Namen der Elemente: {{{#!vorlage Code select "Toller Interpret - Tolles Album - 01. Tolles Lied.flac" ## Dateiname wird beschrieben mit: totag %{artist} - %{album} - %{track}. %{title} }}} Dateiendung wird immer ignoriert. `fromtag` bewirkt das Gegenteil: {{{#!vorlage Code select Irgendwas.flac fromtag "%{artist} - %{album} - %{track}. %{title}" ## Ergibt wieder Dateiname: Toller Interpret - Tolles Album - 01. Tolles Lied.flac }}} === Tags ex-/importieren === Mittels `export` können Tags in andere Dateiformate exportiert werden. Zur Wahl stehen: [wikipedia:CSV (Dateiformat):CSV] unquoted, CSV quoted, Extended [wikipedia:PLS(Dateiformat):PLS], Extended [wikipedia:M3U:], [wikipedia:Hypertext Markup Language:HTML]. Am Ende die Nummer des gewünschten Tags: {{{#!vorlage Code select 01. Tolles Lied.flac export Zieldatei.csv "CSV unquoted" 2 }}} Umgekehrt zum importieren: {{{#!vorlage Code select 01. Tolles Lied.flac import Zieldatei.csv "CSV unquoted" 2 }}} = Nicht-interaktiver Modus = Mit der Option `-c` werden die obigen Befehle kid3-cli übergeben und auf Dateien angewandt. Das Programm lässt sich so auch in [:Shell/Bash-Skripting-Guide_für_Anfänger:Skripten] verwenden. Spätestens hier wird man wahrscheinlich etwas Wissen über die [:Shell/Bash-Skripting-Guide_für_Anfänger/#Maskierung-mit-Backslashes: Maskierung] von Anführungszeichen und Apostrophen benötigen: {{{#!vorlage Code kid3-cli -c "set album 'Tolles Album'" tolles_lied.flac }}} Mehrere Elemente gleichzeitig setzen: {{{#!vorlage Code kid3-cli -c "set album 'Tolles Album'" -c "set title 'Tolles Lied'" -c "set date '2022'" tolles_lied.flac }}} `get` gibt den Inhalt eines Elements aus: {{{#!vorlage Code kid3-cli -c "get date" tolles_lied.flac ## Gibt das Jahr aus: 2022 }}} = Links = * [https://kid3.kde.org/ Webseite von Kid3 und kid3-cli] {en} * [https://docs.kde.org/trunk5/de/kid3/kid3/ Handbuch] {de} * [:Multimedia#Verwaltung:] {Übersicht} Programmübersicht # tag: ID3-Tag, MP3-Tag, Multimedia, Metadaten, Shell