Hoofdstuk 4. kid3-cli

Commando's

kid3-cli biedt een opdrachtregelinterface voor Kid3. Als een mappad wordt gebruikt, wordt de map geopend. Als een of meer bestandspaden wordt gegeven, wordt de gemeenschappelijke map geopened en de bestanden wprden geselecteerd. Opvolgende commando's zullen dan op deze bestanden werken. Commando's worden gespecificeerd met opties -c. Als meerdere commando's worden doorgegeven, dan worden ze in de gegeven volgorde uitgeschakeld. Als bestanden gewijzigd worden door de commando's, worden ze aan het einde opgeslagen. Als er geen commando-opties zijn doorgegeven, zal kid3-cli in een interactieve modus starten. Commando's kunnen ingevoerd worden en zullen werken op de huidige selectie. De volgende secties bieden een lijst met alle beschikbare commando's.

Help

help [COMMANDONAAM]

Toont help over de parameters van COMMANDONAAM of over alle commando's als geen commandonaam is gegeven.

Tijdslimiet

timeout [ default | off | TIJD ]

Overschrijf de standaard timeout van het commando. De CLI-commando's breken af nadat een timeout specifiek voor het commando is afgelopen. Deze timeout is 10 seconden voor ls en albumart, 60 seconden voor autoimport en filter en 3 seconden voor alle andere commando's. Als erg veel bestanden verwerkt moeten worden, kunnen deze timeout's te beperkt kunnen zijn, de timeout voor alle commando's kan ingesteld worden op TIJD ms, geheel uitgeschakeld of op de standaard waarden worden gelaten.

Toepassing afsluiten

exit [force]

Toepassing verlaten. Als er gewijzigde niet opgeslagen bestanden zijn, is de parameter force vereist.

Map wijzigen

cd [MAP]

Als geen MAP is gegeven, ga naar de persoonlijke map. Als een map is gegeven, ga in die map. Als een of meer bestandspaden zijn gegeven, ga naar hun gemeenschappelijke map en selecteer de bestanden.

Toon de bestandsnaam van de huidige map.

pwd

Toon de bestandsnaam van de huidige werkmap.

Mappenlijst

ls

De inhoud van de huidige map tonen. Dit komt overeen met de bestandslijst in de GUI van Kid3. Vijf tekens voor de bestandsnamen tonen de status van het bestand.

  • > Bestand is geselecteerd.

  • * Bestand is gewijzigd.

  • 1 Bestand heeft een tag 1, anders wordt '-' getoond.

  • 2 Bestand heeft een tag 2, anders wordt '-' getoond.

  • 3 Bestand heeft een tag 3, anders wordt '-' getoond.

kid3-cli> ls
  1-- 01 Intro.mp3

> 12- 02 We hebben alleen deze.mp3
 *1-- 03 Outro.mp3

In dit voorbeeld hebben alle bestanden een tag 1, het tweede bestand heeft ook een tag 2 en is geselecteerd. Het derde bestand is gewijzigd.

De gewijzigde bestanden opslaan

save

Bestand selecteren

select [ all | none | first | previous | next | BESTAND... ]

Om alle bestanden te selecteren, voer select all in, om selectie van alle bestanden ongedaan te maken, voer select none in. Om de bestanden in de huidige map te verplaatsen begin met select first, ga daarna verder met select next of achterwaarts met select previous. Specifieke bestanden kunnen toegevoegd worden aan de huidige selectie door hun bestands namen in te geven. Jokertekens zijn mogelijk, dus select *.mp3 zal alle MP3-bestanden in de huidige map selecteren.

kid3-cli> select first
kid3-cli> ls

> 1-- 01 Intro.mp3
  12- 02 We hebben alleen deze.mp3
 *1-- 03 Outro.mp3
kid3-cli> select next
kid3-cli> ls
  1-- 01 Intro.mp3

> 12- 02 We hebben alleen deze.mp3
 *1-- 03 Outro.mp3
kid3-cli> select *.mp3
kid3-cli> ls

> 1-- 01 Intro.mp3

> 12- 02 We hebben alleen deze.mp3

>*1-- 03 Outro.mp3

Tag selecteren

tag [TAG-NUMMERS]

Veel commando's hebben een optionele parameter TAG-NUMMERS, die specificeert of het commando werkt op tag 1, 2 of 3. Als deze parameter ontbreekt worden de standaard tagnummers gebruikt, die door dit commando worden gezet. Bij opstarten worden ze ingesteld op 12 wat betekent dat informatie wordt gelezen uit tag 2 indien beschikbaar, anders uit tag 1; wijzigingen worden gedaan op tag 2. TAG-NUMMERS kan ingesteld worden op 1, 2 of 3 om alleen te werken op de overeenkomstige tag. Als de parameter ontbreekt wordt de huidige instelling getoond.

Tagframe ophalen

get [ all | FRAME-NAAM ] [TAG-NUMMERS]

Dit commando kan gebruikt worden om de waarde van een specifiek tagframe te lezen of informatie te krijgen over alle tagframes (als het argument ontbreekt of all wordt gebruikt). Gewijzigde frames worden gamarkeerd met een '*'.

kid3-cli> get
Bestand: MPEG 1 Layer 3 192 kbps 44100 Hz Joint Stereo
  Naam: 01 Intro.mp3
Tag 1: ID3v1.1
  Titel         Intro
  Artiest       One Hit Wonder
  Album         Let's Tag
  Datum         2013
  Tracknummer   1
  Genre         Pop
kid3-cli> get title
Intro

Om de inhoud van een afbeeldingsframe in een bestand op te slaan, gebruik

get picture:'/pad/naar/map.jpg'

Om gesynchroniseerde liedteksten in een LRC-bestand op te slaan, gebruik

get SYLT:'/pad/naar/liedtekst.lrc'

Het is mogelijk om alleen een specifiek veld uit een frame te halen, bijvoorbeeld get POPM.Email voor het e-mailveld van een popularimeterframe. Als een bestand meerdere frames van dezelfde soort heeft, kunnen de verschillende frames geïndexeerd worden met rechte haken, bijvoorbeeld de eerste uitvoerder uit een Vorbis-commentaar kan opgehaald worden met get performer[0], de tweede met get performer[1].

De pseudoveldnaam "selected" kan gebruikt worden om te controleren of een frame is geselecteerd, bijvoorbeeld get artist.selected zal 1 teruggeven als het artiestframe is geselecteerd, anders 0.

Het pseudo framenaam "ratingstars" kan gebruikt worden om de waarde van het "rating" frame te verkrijgen als de formaatspecifieke waarde overeenkomend met het aantal sterren (0 tot 5). Door "rating" te gebruiken, wordt de interne waarde teruggegeven.

Tagframe instellen

set {FRAMENAAM} {FRAMEWAARDE} [TAG-NUMMERS]

Dit commando stelt de waarde van een specifiek tagframe in. Als FRAMEWAARDE leeg is, wordt het frame verwijderd.

kid3-cli> set remixer 'O.H. Wonder'

Om de inhoud van een afbeeldingsframe uit een bestand in te stellen, gebruik

set picture:'/path/to/folder.jpg' 'Beschrijving afbeelding'

Om gesynchroniseerde liedteksten uit een LRC-bestand in te stellen, gebruik

set SYLT:'/pad/naar/liedtekst.lrc' 'Beschrijving liedtekst'

Om een specifiek veld van een frame in te stellen kan de veldnaam gegeven worden na een punt, bijv. om het veld Counter in te stellen van een populariteistmeterframe, gebruik

set POPM.Counter 5

Een toepassing voor veldspecificaties is he geval waar u een aangepast TXXX-frame wilt met beschrijving van "rating" in plaats van een standaard Popularimeter-frame (die door sommige plug-ins lijkt te worden gebruikt). U kunt zo'n TXXX-ratingframe aanmaken met kid3-cli, u moet echter eerst een TXXX-frame aanmaken met beschrijving "rating" en daarna de waarde van dit frame instellen op de waarde van rating.

kid3-cli> set rating ""
kid3-cli> set TXXX.Description rating
kid3-cli> set rating 5

Het eerste commando zal een bestaand POPM-frame verwijderen, omdat als zo'n frame bestaat, set rating 5 het POPM-frame zou instellen en niet het TXXX-frame. Een andere mogelijkheid zou zijn set TXXX.Text 5 te gebruiken, maar dit zou alleen werken als er geen ander TXXX-frame aanwezig is.

Om meerdere frames van dezelfde soort in te stellen kan een index gegeven worden in rechte haken, bijv. om meerdere uitvoerders in een Vorbis commentaar in te stellen, gebruik

kid3-cli> set performer[0] 'Liza don Getti (sopraan)'
kid3-cli> set performer[1] 'Joe Barr (piano)'

Om bepaalde frames te selecteren voor een actie kopiëren, plakken of verwijderen kan de pseudoveldnaam "selected" worden gebruikt. Normaal worden alle frames geselecteerd, om alle selecties ongedaan te maken, gebruik set '*.selected' 0, daarna bijvoorbeeld set artist.selected 1 om het artiestframe te selecteren.

De pseudo framenaam "ratingstars" kan gebruikt worden om de waarde van het "rating" frame in te stellen als de formaatspecifieke waarde overeenkomend met het aantal sterren (0 tot 5). De framenaam "rating" kan gebruikt worden om de interne waarde in te stellen.

Instellen van "ratingstars" op meerdere bestanden met verschillende tagformaten zal niet werken omdat het frame met de waarde overkomend van het aantal sterren aangemaakt wordt voor het eerste bestand en daarna gebruikt voor alle bestanden. Dus in plaats van kid3-cli -c "set ratingstars 2" * zou u beter for f in *; do kid3-cli -c "set ratingstars 2" "$f"; done kunnen gebruiken.

Ongedaan maken

revert

Alle wijzigingen in de geselecteerde bestanden terugdraaien (of alle bestanden als er geen bestanden zijn geselecteerd).

Uit bestand importeren

import {BESTAND} {FORMAATNAAM} [TAG-NUMMERS]

Tags worden geïmporteerd uit het bestand BESTAND in het formaat met de naam FORMAATNAAM (bijv. "CSV unquoted", zie Importeren).

Als tags is gegeven voor BESTAND, worden tags geïmporteerd uit andere tags. In plaats van FORMAATNAAM parameters zijn BRON en EXTRACTIE vereist, zie Uit tags importeren. Om het importeren uit tags toe te passen op de geselecteerde bestanden, gebruik tagsel in plaats van tags. Deze functie ondersteunt ook uitvoer van de uitgepakte waarde door een waarde EXTRACTIE te gebruiken met de waarde %{__return}(.+).

Automatisch importeren

autoimport [PROFIELNAAM] [TAG-NUMMERS]

In bulk importeren met profiel PROFIELNAAM (zie Automatisch importeren, wordt "All" gebruikt indien weggelaten).

Hoesillustratie van album downloaden

albumart {URL} [all]

Stelt de albumillustraties in door een afbeelding te downloaden uit URL. De regels gedefinieerd in de dialoog Bladeren in hoesillustraties worden gebruikt om algemene URL's (bijv. uit Amazon) om te vormen naar een URL van een afbeelding. Om de albumhoes in te stellen uit een lokaal afbeeldingsbestand, gebruik het commando set.

kid3-cli> albumart
http://www.amazon.com/Versus-World-Amon-Amarth/dp/B000078DOC

Naar bestand exporteren

export {BESTAND} {FORMAATNAAM} [TAG-NUMMERS]

Tags worden geëxporteerd uit het bestand BESTAND in het formaat met de naam FORMAATNAAM (bijv. "CSV unquoted", zie Exporteren).

Afspeellijst aanmaken

playlist

Afspeellijst aanmaken in het formaat ingesteld in de configuratie, zie Afspeellijst aanmaken.

Bestandsnaamformaat toepassen

filenameformat

Bestandsnaamformaat toepassen in de configuratie instellen, zie Bestandsnaamformaat toepassen.

Tagformaat toepassen

tagformat

Tagnaamformaat toepassen in de configuratie instellen, zie Tagformaat toepassen.

Tekst-codering toepassen

textencoding

Tekstcodering toepassen in de configuratie instellen, zie Tekstcodering toepassen.

Hernoem map

renamedir [FORMAAT] [ create | rename | dryrun ] [TAG-NUMMERS]

Hernoem of maak mappen aan uit de waarden in de tags volgens een gegeven FORMAAT (bijv. %{artist} - %{album}, zie Map hernoemen), als geen formaat is gegeven, het formaat gedefinieerd in de dialoog Map hernoemen wordt gebruikt. De standaard modus is rename; om mappen aan te maken, moet create expliciet gegeven worden. De acties hernoemen zullen onmiddellijk uitgevoerd worden, om gewoon te zien wat gedaan zou worden, gebruik de optie dryrun.

Aantal tracks

numbertracks [TRACKNUMMER] [TAG-NUMMERS]

Nummer de geselecteerde tracks beginnend met TRACKNUMMER (1 indien weggelaten).

Filter

filter [ FILTERNAAM | FILTERFORMAAT ]

Filter de bestanden zodat alleen de bestanden overeenkomend met het FILTERFORMAAT zichtbaar zijn. De naam van een voorgedefinieerde filterexpressie (bijv. "Niet overeenkomende tag in bestandsnaam") kan gebruikt worden in plaats van een filterexpressie, zie 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
Beëindigd
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
Beëindigd
kid3-cli> ls
  1-- 01 Intro.mp3
  12- 02 We Only Got This One.mp3
  1-- 03 Outro.mp3

ID3v2.3 naar ID3v2.4 converteren

to24

ID3v2.4 naar ID3v2.3 converteren

to23

Bestandsnaam uit tag

fromtag [FORMAAT] [TAG-NUMMERS]

Stel de bestandsnamen van de geselecteerde bestanden in uit waarden in de tags, bijvoorbeeld fromtag '%{track} - %{title}' 1. Als geen formaat is gespecificeerd, wordt het formaat ingesteld in de GUI gebruikt.

Tag uit bestandsnaam

totag [FORMAAT] [TAG-NUMMERS]

Stel de tagframes in uit de bestandsnamen, bijvoorbeeld totag '%{albumartist} - %{album}/%{track} %{title}' 2. Als geen formaat is gespecificeerd, wordt het formaat ingesteld in de GUI gebruikt. Als het formaat van de bestandsnaam niet overeenkomt met dit patroon, worden een paar andere algemeen gebruikte formaten geprobeerd.

Tag naar andere tag

syncto {TAG-NUMMER}

De tagframes uit een tag naar de andere tag kopiëren, bijv. om de ID3v2 tag uit de ID3v1 tag in te stellen, gebruik syncto 2.

Kopiëren

copy [TAG-NUMMER]

Kopieer de tag-frames van het geselecteerde bestand naar de interne kopieerbuffer. Ze kunnen dan ingesteld worden in een ander bestand met het commando paste.

Om alleen een subset van de frames te kopiëren, gebruik het pseudoveld "selected" met het commando set. Om bijvoorbeeld alleen het schijfnummer en de copyright-frames te kopiëren, gebruik

set '*.selected' 0
set discnumber.selected 1
set copyright.selected 1
copy

Plakken

paste [TAG-NUMMER]

Stel tag-frames in uit de inhoud van de copy-buffer in de geselecteerde bestanden.

Verwijderen

remove [TAG-NUMMER]

Een tag verwijderen.

Het is mogelijk om slechts een subset van de frames te verwijderen door ze te selecteren zoals beschreven in het copy commando.

Kid3 configureren

config [OPTIE] [WAARDE]

Een configuratie-optie opvragen of instellen.

De OPTIE bestaat uit een groepsnaam en een eigenschapsnaam gescheiden door een punt. Wanneer geen OPTIE is gegeven, worden alle beschikbare groepen getoond. Als alleen een groepsnaam is gegeven, worden alle beschikbare eigenschappen van de groep getoond. Voor een gegeven groep en eigenschap, wordt de huidige geconfigureerde waarde getoond. Om de instelling te wijzigen, kan de nieuwe waarde ingegeven worden als een tweede argument.

Als de waarde van een instelling een lijst is, moeten alle lijstelementen gegeven worden als argumenten. Dit betekent dat om een element aan een bestaande lijst met elementen toe te voegen, alle bestaande elementen ingegeven moeten worden gevolgd door het nieuwe element. In zo'n situatie is het gemakkelijker om de JSON modus te gebruiken, waar de huidige lijst gekopieerd kan worden met het nieuwe element achtergevoegd.

Programma of QML-script uitvoeren

execute [@qml] {BESTAND} [ARGS]

Een QML-script of een uitvoerbaar programma uitvoeren.

Zonder @qml wordt een programma uitgevoerd met argumenten. Wanneer @qml als het eerste argument is gegeven, zijn de volgende argumenten de argumenten van het QML-script. Bijvoorbeeld, de tags van een map kunnen geëxporteerd worden naar het bestand export.csv met het volgende commando.

kid3-cli -c "execute @qml
/usr/share/kid3/qml/script/ExportCsv.qml export.csv"
/pad/naar/map/

Hier is export.csv het argument voor het script ExportCsv.qml, terwijl /pad/naar/map/ het argument BESTAND is voor kid3-cli.