Exemplos

Configura o título contendo um apóstrofo. Os comandos passados ao kid3-cli com o -c têm de estar entre aspas se não consistirem apenas numa única palavra. Se um destes comandos tiver ele próprio um argumento com espaços, esse argumento também terá de estar entre aspas. Nas consolas de UNIX®, poderá usar plicas ou aspas, mas na Linha de Comandos do Windows, é importante que as aspas exteriores sejam feitas com aspas e as interiores com plicas. Se o texto dentro das plicas tiverem uma plica, a mesma terá de ser escapada com uma barra invertida, como é demonstrado no seguinte exemplo:

kid3-cli -c "set title 'I\'ll be there for you'" /local/da/pasta

Configure a capa do álbum de todos os ficheiros de uma pasta com a função de importação em lote:

kid3-cli -c "autoimport 'Cover Art'" /local/da/pasta

Remover os pacotes de comentários e aplicar o formato da marca em ambas as marcas de todos os ficheiros MP3 de uma pasta:

kid3-cli -c "set comment '' 1" -c "set comment '' 2" \
-c "tagformat 1" -c "tagformat 2" /local/da/pasta/*.mp3

Importar automaticamente a marca 2, sincronizar com a marca 1, configura os nomes dos ficheiros a partir da marca 2 e finalmente criar uma lista de reprodução:

kid3-cli -c autoimport -c "syncto 1" -c fromtag -c playlist \
  /local/da/pasta/*.mp3

Para todos os ficheiros com uma marca ID3v2.4.0, converte para ID3v2.3.0 e remove o pacote do maestro:

kid3-cli -c "filter 'ID3v2.4.0 Tag'" -c "select all" -c to23 \
  -c "set arranger ''" /local/da/pasta

Este programa em Python usa o kid3-cli para gerar pacotes do iTunes Sound Check iTunNORM a partir dos dados de ganho da reprodução.

#!/usr/bin/env python3
# Gerar o iTunes Sound Check a partir do Ganho de Reprodução.
import os, sys, subprocess

def rg2sc(dirpath):
  for raiz, pastas, ficheiros in os.walk(pasta):
    for nome in ficheiros:
      if nome.endswith(('.mp3', '.m4a', '.aiff', '.aif')):
        fn = os.path.join(raiz, nome)
        rg = subprocess.check_output([
          'kid3-cli', '-c', 'get "replaygain_track_gain"',
           fn]).strip()
        if rg.endswith(b' dB'):
          rg = rg[:-3]
        try:
          rg = float(rg)
        except ValueError:
          print('O valor %s de %s não é um número fraccionário' % (rg, fn))
          continue
        sc = (' ' + ('%08X' % int((10 ** (-rg / 10)) * 1000) )) * 10
        subprocess.call([
          'kid3-cli', '-c', 'set iTunNORM "%s"' % sc, fn])

if __name__ == '__main__':
  rg2sc(sys.argv[1])