
Inhaltsverzeichnis
- Befehle
- Hilfe
- Zeitüberschreitung
- Anwendung beenden
- Ordner wechseln
- Aktuellen Ordner ausgeben
- Ordnerliste
- Veränderte Dateien speichern
- Datei wählen
- Tag auswählen
- Tag-Element holen
- Tag-Element setzen
- Änderungen rückgängig machen
- Von Datei importieren
- Automatisch importieren
- Cover-Bilder herunterladen
- In Datei exportieren
- Stückliste erstellen
- Dateinamenformat anwenden
- Tag-Format anwenden
- Textkodierung anwenden
- Ordner umbenennen
- Stücke nummerieren
- Filter
- ID3v2.3 nach ID3v2.4 konvertieren
- ID3v2.4 nach ID3v2.3 konvertieren
- Dateiname von Tag
- Tag von Dateiname
- Tag zu anderem Tag
- Kopieren
- Einfügen
- Entfernen
- Kid3 einrichten
- Programm oder QML-Skript ausführen
- Beispiele
- JSON Format
kid3-cli bietet eine Kommandozeile für Kid3. Wenn ein Ordnerpfad als Parameter verwendet wird, so wird der Ordner geöffnet. Bei einem oder mehreren Dateipfaden wird der übergeordnete Ordner geöffnet, und die Dateien werden ausgewählt. Befehle werden dann auf diese Dateien angewendet. Befehle werden mit -c
Optionen angegeben, wenn mehrere vorhanden sind, so werden sie der Reihe nach ausgeführt. Falls Dateien durch die Befehle verändert werden, so werden sie am Ende gespeichert. Wenn keine Befehlsoptionen vorhanden sind, so startet kid3-cli im interaktiven Modus. Dort können Befehle eingegeben werden, welche auf die ausgewählten Dateien angewendet werden. Die folgenden Abschnitte beschreiben alle verfügbaren Befehle.
help [BEFEHLSNAME
]
Zeigt Hilfe über die Parameter von BEFEHLSNAME
oder über alle Befehle falls kein Befehlsname angegeben wird.
timeout [ default | off | ZEIT
]
Überschreibt den Wert für die maximal erlaubte Ausführungszeit der Befehle. Die Befehle werden nach einer spezifischen Zeit abgebrochen, nach 10 Sekunden bei ls und albumart, 60 Sekunden bei autoimport und filter und 3 Sekunden für alle anderen Befehle. Wenn eine große Anzahl von Dateien bearbeitet wird, so können diese Maximalzeiten zu restriktiv sein. Daher kann mit diesem Befehl der Timeout für alle Befehle auf ZEIT
ms gesetzt werden, gänzlich abgeschaltet werden oder auf den Voreinstellungen belassen werden.
exit [force]
Beendet die Anwendung. Falls veränderte Dateien existieren, so muss der Parameter force
mitgegeben werden.
cd [ORDNER
]
Wenn kein Ordner
angegeben wird, so wird in den Benutzerordner gewechselt, sonst in den angegebenen Ordner. Bei einem oder mehreren Dateipfaden wird der übergeordnete Ordner geöffnet, und die Dateien werden ausgewählt.
ls
Zeigt den Inhalt des aktuellen Ordners an. Dies entspricht der Dateiliste im Kid3 GUI. Fünf Zeichen auf der linken Seite des Dateinamens zeigen Zustandsinformationen an.
>
Datei ist ausgewählt.*
Datei ist verändert.1
Datei hat ein Tag 1, sonst wird '-
' angezeigt.2
Datei hat ein Tag 2, sonst wird '-
' angezeigt.3
Datei hat ein Tag 3, sonst wird '-
' angezeigt.
kid3-cli>
ls
1-- 01 Intro.mp3 > 12- 02 We Only Got This One.mp3 *1-- 03 Outro.mp3
In diesem Beispiel haben alle Dateien ein Tag 1, die zweite Datei hat auch ein Tag 2 und ist ausgewählt. Die dritte Datei ist verändert.
select [ all | none | first | previous | next | DATEI
... ]
Alle Dateien werden mit select all
ausgewählt, mit select none
wird die Selektion aufgehoben. Um die Dateien des aktuellen Ordners zu traversieren, wird mit select first
gestartet, vorwärts geht es mit select next
und rückwärts mit select previous
. Dateien können über ihren Namen zur Auswahl hinzugefügt werden. Wildcards sind möglich, so werden mit select *.mp3
alle MP3-Dateien im aktuellen Ordner ausgewählt.
kid3-cli>
select first
kid3-cli>
ls
> 1-- 01 Intro.mp3 12- 02 We Only Got This One.mp3 *1-- 03 Outro.mp3
kid3-cli>
select next
kid3-cli>
ls
1-- 01 Intro.mp3 > 12- 02 We Only Got This One.mp3 *1-- 03 Outro.mp3
kid3-cli>
select *.mp3
kid3-cli>
ls
> 1-- 01 Intro.mp3 > 12- 02 We Only Got This One.mp3 >*1-- 03 Outro.mp3
tag [TAGNUMMERN
]
Viele Befehle haben einen optionalen TAGNUMMERN
Parameter, welcher festlegt, ob der Befehl auf Tag 1, 2 oder 3 wirkt. Wenn dieser Parameter weggelassen wird, so werden die standardmäßigen Tagnummern verwendet, welche mit dem Befehl tag festgelegt werden können. Voreingestellt ist ein Wert von 12
, was bedeutet, dass Informationen vom Tag 2 geholt werden, falls es vorhanden ist, sonst vom Tag 1. Änderungen werden am Tag 2 durchgeführt. Die
können auf TAGNUMMERN
1
, 2
oder 3
gesetzt werden, damit nur das entsprechende Tag verwendet wird. Wird kein Parameter angegeben, so wird die momentane Einstellung angezeigt.
get [ all | ELEMENTNAME
] [TAGNUMMERN
]
Dieser Befehl kann dazu benutzt werden, den Wert eines bestimmten Tag-Elements zu lesen oder um Informationen über alle Tag-Elemente zu holen (wenn kein Parameter vorhanden ist oder all
verwendet wird). Veränderte Elemente werden mit einem '*
' markiert.
kid3-cli>
get
Datei: MPEG 1 Layer 3 192 kbps 44100 Hz Joint Stereo Name: 01 Intro.mp3 Tag 1: ID3v1.1 Titel Intro Interpret One Hit Wonder Album Let's Tag Datum 2013 Stücknummer 1 Genre Pop
kid3-cli>
get title
Intro
Ein Bild kann in einer Datei gespeichert werden.
get picture:'/pfad/zu/folder.jpg'
Synchronisierter Liedtext wird im LRC-Format exportiert.
get SYLT:'/pfad/zu/lyrics.lrc'
Es können auch nur bestimmte Felder abgefragt werden, beispielsweise kann das Email-Feld eines Popularimeter-Frames mit get POPM.Email
ausgegeben werden. Wenn eine Datei mehrere Frames des gleichen Typs enthält, so kann der Index in eckigen Klammern angegeben werden. So kriegt man beispielsweise den ersten Musiker aus einem Vorbis-Tag mit get performer[0]
, den zweiten mit get performer[1]
.
Der Pseudo-Feldname "selected" kann verwendet werden um zu prüfen, ob ein Frame selektiert ist, z.B. liefert get artist.selected
dann 1
zurück, wenn der Interpret ausgewählt ist, sonst 0
.
Das Pseudo-Element "ratingstars" kann verwendet werden, um den Wert des "rating" Elements als Anzahl Sterne (0 bis 5) zu kriegen. Bei der Verwendung von "rating" wird der interne Wert zurückgegeben.
set {ELEMENTNAME
} {ELEMENTWERT
} [TAGNUMMERN
]
Dieser Befehl setzt den Wert eines bestimmten Tag-Elements. Wenn ELEMENTWERT
leer ist, so wird das Element gelöscht.
kid3-cli>
set remixer 'O.H. Wonder'
Um den Inhalt eines Bild-Elements aus einer Datei zu befüllen, verwendet man
set picture:'/pfad/zu/folder.jpg' 'Bildbeschreibung'
Synchronisierter Liedtext kann aus einer LRC-Datei importiert werden.
set SYLT:'/pfad/zu/lyrics.lrc' 'Beschreibung'
Um ein bestimmtes Feld eines Frames zu setzen, kann der Feldname nach einem Punkt angegeben werden, z.B. für das Zähler-Feld des Popularimeter-Frames.
set POPM.Counter 5
Eine Anwendung für das Setzen spezifischer Felder ist der Fall, dass man ein TXXX-Frame mit "rating" als Beschreibung möchte anstelle eines POPM Frames (dies scheint für die Anwendung gewisser Plugins nötig zu sein). Man kann ein solches TXXX-Rating-Frame mit kid3-cli erstellen, muss dazu jedoch zuerst das Frame mit der Beschreibung erstellen und dann den Wert setzen.
kid3-cli>
set rating ""
kid3-cli>
set TXXX.Description rating
kid3-cli>
set rating 5
Der erste Befehl löscht ein allenfalls vorhandenes POPM frame, denn wenn ein solches existiert, würde set rating 5
das POPM-Frame setzen und nicht das TXXX-Frame. Eine andere Möglichkeit wäre set TXXX.Text 5
, aber dies funktioniert nur, wenn kein anderes TXXX-Frame vorhanden ist.
Um mehrere Frames desselben Typs zu setzen, kann der Index in eckigen Klammern angegeben werden, z.B. mehrere Musiker in einem Vorbis-Tag.
kid3-cli>
set performer[0] 'Liza don Getti (soprano)'
kid3-cli>
set performer[1] 'Joe Barr (piano)'
Um nur bestimmte Frames vor dem Kopieren, Einfügen oder Entfernen auszuwählen, kann der Pseudo-Feldname "selected" verwendet werden. Normalerweise sind alle Frames ausgewählt, um alle zu deselektieren, kann set '*.selected' 0
verwendet werden, danach kann beispielsweise das Interpreten-Frame mit set artist.selected 1
ausgewählt werden.
Das Pseudo-Element "ratingstars" kann verwendet werden, um den Wert des "rating" Elements auf den Wert zu setzen, welcher für das entsprechende Format der Anzahl Sterne (0 bis 5) entspricht. Bei der Verwendung von "rating" wird der interne Wert gesetzt.
Das gleichzeitige Setzen von "ratingstars" auf mehreren Dateien mit unterschiedlichem Tag-Format funktioniert nicht weil der interne Wert, welcher der Anzahl Sterne entspricht, für die erste Datei berechnet wird und dann für alle Dateien verwendet wird. Daher sollte man anstelle von kid3-cli -c "set ratingstars 2" *
besser for f in *; do kid3-cli -c "set ratingstars 2" "$f"; done
verwenden.
revert
Macht alle Änderungen an den ausgewählten Dateien rückgängig (oder an allen Dateien, falls keine selektiert sind).
import {DATEI
} {FORMATNAME
} [TAGNUMMERN
]
Die Tags werden aus DATEI
importiert im Format FORMATNAME
(z.B. "CSV unquoted"
, siehe Importieren).
Falls für DATEI
tags
angegeben wird, so wird aus anderen Tags importiert. Anstelle von FORMATNAME
werden dann QUELLE
und EXTRAKTION
als Parameter verlangt, siehe Importieren von Tags. Um das Importieren aus Tags auf die selektierten Dateien anzuwenden, kann tagsel
statt tags
verwendet werden. Hiermit kann auch mit einer EXTRAKTION
von %{__return}(.+)
der extrahierte Wert ausgegeben werden.
autoimport [PROFILNAME
] [TAGNUMMERN
]
Es wird automatisch importiert unter Verwendung des Profils PROFILNAME
(siehe Automatisch importieren, "All"
wird benutzt, falls kein Profil angegeben wird).
albumart {URL
} [all]
Setzt das Albumcover mit einem von URL
heruntergeladenen Bild. Die Regeln zur Umwandlung einer allgemeinen URL (z.B. von Amazon) zu einer Bild-URL werden verwendet, diese können im Nach Cover-Bildern suchen Dialog definiert werden. Um das Albumcover mit einer lokalen Datei zu setzen kann der set Befehl verwendet werden.
kid3-cli>
albumart http://www.amazon.com/Versus-World-Amon-Amarth/dp/B000078DOC
export {DATEI
} {FORMATNAME
} [TAGNUMMERN
]
Tags werden in die Datei DATEI
exportiert im Format FORMATNAME
(z.B. "CSV unquoted"
, siehe Exportieren).
playlist
Erstellt eine Stückliste in dem in der Konfiguration gesetzten Format, siehe Stückliste erstellen.
filenameformat
Wendet das Dateinamenformat an, welches in der Konfiguration gesetzt ist, siehe Dateinamenformat anwenden.
tagformat
Wendet das Tag-Format an, welches in der Konfiguration gesetzt ist, siehe Tag-Format anwenden.
textencoding
Wendet die Textkodierung an, welche in der Konfiguration gesetzt ist, siehe Textkodierung anwenden.
renamedir [FORMAT
] [ create | rename | dryrun ] [TAGNUMMERN
]
Mit diesem Befehl werden Ordner umbenannt oder neu erstellt anhand der Werte in den Tags nach einem bestimmten FORMAT
(z.B. %{artist} - %{album}
, siehe Ordner umbenennen), wenn kein Format angegeben wird, so wird dasjenige verwendet, welches im Ordner umbenennen Dialog gesetzt ist. Normalerweise wird der Modus rename
verwendet; um neue Ordner zu erstellen, muss create
explizit angegeben werden. Die zum Umbenennen nötigen Aktionen werden sofort ausgeführt, um bloß eine Vorschau über diese Aktionen zu sehen, kann die dryrun
Option verwendet werden.
numbertracks [TRACKNUMMER
] [TAGNUMMERN
]
Nummeriert die ausgewählten Dateien beginnend mit TRACKNUMMER
(1
wenn nichts angegeben wird).
filter [ FILTERNAME
| FILTERFORMAT
]
Filtert die Dateien, so dass nur Dateien angezeigt werden, welche dem FILTERFORMAT
entsprechen. Der Name eines vordefinierten Filterausdrucks (z.B. "Filename Tag Mismatch"
) kann anstelle eines Filterausdrucks verwendet werden, siehe Filter.
kid3-cli>
filter '%{title} contains "tro"'
Begonnen /home/urs/One Hit Wonder - Let's Tag + 01 Intro.mp3 - 02 We Only Got This One.mp3 + 03 Outro.mp3 Fertig
kid3-cli>
ls
1-- 01 Intro.mp3 1-- 03 Outro.mp3
kid3-cli>
filter All
Begonnen /home/urs/One Hit Wonder - Let's Tag + 01 Intro.mp3 + 02 We Only Got This One.mp3 + 03 Outro.mp3 Fertig
kid3-cli>
ls
1-- 01 Intro.mp3 12- 02 We Only Got This One.mp3 1-- 03 Outro.mp3
fromtag [FORMAT
] [TAGNUMMERN
]
Setzt die Dateinamen der ausgewählten Dateien anhand der Werte in den Tags, z.B. fromtag '%{track} - %{title}' 1
. Wenn kein Format angegeben wird, wird dasjenige verwendet, welches im GUI gesetzt ist.
totag [FORMAT
] [TAGNUMMERN
]
Setzt die Tag-Elemente anhand der Dateinamen, z.B. totag '%{albumartist} - %{album}/%{track} %{title}' 2
. Wenn kein Format angegeben wird, wird dasjenige verwendet, welches im GUI gesetzt ist. Falls der Dateiname nicht diesem Format entspricht, werden noch einige andere, gängige Formate ausprobiert.
syncto {TAGNUMMER
}
Kopiert die Tag-Elemente von einem Tag zum anderen Tag, um beispielsweise das ID3v2 Tag anhand der Werte im ID3v1 Tag zu setzen, wird syncto 2
verwendet.
copy [TAGNUMMER
]
Kopiert die Tag-Elemente der selektierten Datei in die interne Ablage. Sie können dann in einer anderen Datei mit dem paste Befehl gesetzt werden.
Um nur ein paar ausgewählte Frames zu kopieren, kann der set Befehl mit dem Pseudo-Feldnamen "selected" verwendet werden. Um beispielsweise nur die CD-Nummer- und Copyright-Frames zu kopieren, verwende man
set '*.selected' 0
set discnumber.selected 1
set copyright.selected 1
copy
paste [TAGNUMMER
]
Setzt die Tag-Elemente gemäß dem Inhalt der copy Ablage in den ausgewählten Dateien.
remove [TAGNUMMER
]
Entfernt ein Tag.
Es ist möglich, nur bestimmte Frames zu entfernen, indem man sie auswählt wie beim copy Befehl beschrieben.
config [OPTION
] [WERT
]
Konfigurationseinstellung lesen oder setzen
Die OPTION
besteht aus einem Gruppennamen und einem Eigenschaftsnamen, getrennt durch einen Punkt. Wenn keine OPTION
mitgegeben wird, so werden alle verfügbaren Gruppennamen aufgelistet. Wenn nur ein Gruppenname angegeben wird, so werden die Eigenschaften der Gruppe angezeigt. Für eine Gruppe mit Eigenschaft wird der aktuelle Wert ausgegeben. Um einen neuen Wert zu setzen, kann dieser als zweites Argument angegeben werden.
Wenn der Wert für eine Einstellung aus einer Liste besteht, so müssen alle Listenelemente als Argumente angegeben werden. Um also ein neues Element zu einer bestehenden Liste hinzuzufügen, müssen alle existierenden Elemente angegeben werden, gefolgt vom neuen Element. In solch einem Fall ist es einfacher, den JSON-Modus zu verwenden, denn dort kann die bestehende Liste einfach kopiert und durch das neue Element ergänzt werden.
execute [@qml] {DATEI
} [ARGS
]
Führe ein QML-Skript oder eine Programmdatei aus.
Ohne @qml
wird eine Programmdatei mit Argumenten ausgeführt. Wenn das erste Argument @qml
ist, sind die folgenden Argumente das QML-Skript und seine Argumente. Beispielsweise können die Tags eines Ordners mit dem folgenden Befehl in eine Datei export.csv
exportiert werden.
kid3-cli -c "execute @qml
/usr/share/kid3/qml/script/ExportCsv.qml export.csv"
/pfad/zu/ordner/
Hier ist export.csv
das Argument für das ExportCsv.qml
Skript, während /pfad/zu/ordner/
das
-Argument für kid3-cli ist. DATEI