# Підручник з Kid3

### Urs Fleisch

Розробка програмного забезпечення

`<ufleisch at users.sourceforge.net>`

### Юрій Чорноіван

Переклад українською

`<yurchor@ukr.net>`

3.9.7

Авторське право © 2025 Urs Fleisch

FDL

Анотація

Kid3 — програма для ефективного редагування міток ID3v1 і ID3v2 у файлах MP3. Крім того, передбачено можливість редагування міток у файла Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF і модулях tracker (MOD, S3M, IT, XM). За допомогою програми дуже просто можна встановити однакові мітки для декількох файлів (наприклад, встановити запис альбому, виконавця, рік і жанр для усіх файлів одного альбому) і створити мітки на основі назв файлів, і навпаки.

Список таблиць

3.1. Прив'язка уніфікованих типів кадрів до різноманітних форматів
3.2. Запис у таблиці оцінок

# Короткий опис

`kid3` [ `--help` | `--author` | `--version` | `--license` | `--desktopfile `ФАЙЛ`` ] [`ФАЙЛ`...]

`kid3-qt` [`--portable`] [`Параметри Qt`] [`ФАЙЛ`...]

`kid3-cli` [`--portable`] [`--dbus`] [ `-h` | `--help` ] [`-c КОМАНДА1`] [`-c КОМАНДА2`...] [`ФАЙЛ`...]

# Параметри

`--portable`

  Зберегти файл налаштувань до `kid3.ini` у теці програми.

`ФАЙЛ`

  Якщо ``ФАЙЛ`` є шляхом до теки, буде відкрито теку. Якщо вказано один або декілька шляхів до файлів, буде відкрито спільну теку цих файлів, а файли буде позначено.

## kid3

`--help`

  Показати довідку щодо параметрів.

`--author`

  Вивести дані щодо авторства програми.

`--version`

  Вивести дані щодо версії програми.

`--license`

  Вивести дані щодо умов ліцензування на програму.

`--desktopfile `ФАЙЛ``

  Базова назва файла для стільничного запису цієї програми.

## kid3-qt

`Параметри Qt`

  Див. qt5options(7).

## kid3-cli

`--dbus`

  Активувати інтерфейс D-Bus.

`-c`

  Виконати команду. Можна використовувати декілька параметрів `-c` у одній команді оболонки. Вказані за їхньою допомогою команди буде виконано послідовно. Див. розділ щодо kid3-cli, у якому наведено опис доступних команд.

`-h`|`--help`

  Вивести довідкові відомості щодо параметрів і команд.

# Розділ 1. Вступ

Kid3 — програма для ефективного редагування міток ID3v1 і ID3v2 у файлах MP3. Ці мітки можна редагування у більшості з програм для відтворення MP3, але у не дуже ефективний спосіб. Крім того, передбачено можливість редагування міток у файла Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF і модулях tracker (MOD, S3M, IT, XM).

Kid3 не створює і не кодує файли у форматі MP3. Програму призначено для ефективного редагування міток ID3 усіх файлів в альбомі. Для цього достатньо декількох клацань кнопкою миші або натискань комбінацій клавіш. Там, де більшість інших програм можуть редагувати або мітки ID3v1, або мітки ID3v2, Kid3 надає вам повний доступ до редагування обох версій, перетворення міток у цих двох форматах та доступ до усіх міток ID3v2. Можна встановлювати однакове значення для міток у декількох файлах одночасно, наприклад, вказати однакове значення для записів виконавця, альбому, року та жанру для усіх файлів у альбомі. Якщо дані для міток містяться у назвах файлів, можна автоматично встановити мітки на основі назви файла. Передбачено можливість визначення назви файла за будь-якими мітками, які у ньому зберігаються.

Крім того, у завданні з редагування передбачено підтримку автоматичної заміни символів або підрядків, наприклад, вилучення некоректних символів із назв файлів. Автоматичне визначення регістру символів спрощує використання однорідної схеми іменування для усіх міток.

Дані міток для цілих альбомів можна отримувати з gnudb.org, MusicBrainz, Discogs, Amazon або інших джерел списків композицій. Формат імпортування можна довільним чином налаштовувати за допомогою формальних виразів.

Будь ласка, повідомляйте про будь-які проблеми та запити щодо реалізації функціональних можливостей авторові програми.

# Розділ 2. Користування Kid3

## Можливості Kid3

- Редагування міток ID3v1.1

- Редагування усіх кадрів ID3v2.3 і ID3v2.4

- Редагування міток для декількох файлів одночасно

- Перетворення між мітками ID3v1 і ID3v2

- Редагування міток MP3, Ogg/Vorbis, Opus, DSF, FLAC, MPC, APE, MP4/AAC, MP2, Speex, TrueAudio, WavPack, WMA, WAV і AIFF

- Створення міток на основі назв файлів

- Створення міток на основі вмісту полів міток

- Створення назв файлів на основі міток

- Створення і зміна назв тек на основі міток

- Створення файлів списків відтворення

- Автоматичне перетворення регістрів та перенесення рядків

- Імпортування даних з gnudb.org, MusicBrainz, Discogs, Amazon та інших джерел даних

- Експортування даних у форматах CSV, HTML, списку відтворення, Kover XML тощо. Дані експортованих файлів CSV може бути імпортовано до програми.

## Приклад використання

У цьому розділі описано типовий сеанс роботи у Kid3. Припустімо, що у нас є тека, у якій містяться файли MP3 з композиціями з альбому «Let's Tag» групи «One Hit Wonder». Теку із файлами названо у форматі «виконавець - альбом», у нашому випадку, `One Hit Wonder - Let's Tag`. У теці містяться файли композицій у форматі «назва композиції.mp3». Таке іменування слід визнати доцільним, оскільки назви файлів лишаються короткими (важливо для мобільних програвачів MP3 із невеличкими дисплеями) і розташовуються у належному порядку, якщо упорядковувати список за абеткою (важливо, якщо використовується апаратний програвач MP3, який відтворює доріжки за абеткою або у порядку, у якому їх записано на компакт-диск, і цей порядок є порядком за абеткою при використанні mkisofs). Окрім цього, дані щодо виконавця і альбому вже містяться у назві теки — немає сенсу їх повторювати у назві файла. Повернімося до нашого прикладу — список файлів у теці виглядає десь так:

`01 Intro.mp3`

`02 We Only Got This One.mp3`

`03 Outro.mp3`

Ці файли ще не містять міток, і ми хочемо створити мітки за допомогою Kid3. Скористаймося пунктом Відкрити (меню Файл або кнопка на панелі інструментів) і виберемо один із файлів у цій теці. Усі файли буде показано на панелі списку файлів. Оскільки ми не хочемо перенапружуватися, скористаймося даними з назви теки та назв файлів для створення міток. Ми позначимо усі файли, потім натиснемо кнопку До: Мітка 1 у розділі Файл. Таким чином, ми встановимо значення заголовка, виконавця, альбому та композиції для усіх файлів. Щоб становити значення року та жанру для усіх файлів, ми, не знімаючи позначення з файлів, введемо «2002» до поля Дата і виберемо «Pop» у спадному списку Жанр. Щоб встановити лише ці два значення, програма автоматично позначить лише ці два пункти — усі інші пункти лишатимуться непозначеними. Далі, змінимо позначення, лишивши позначеним лише перший файл. Як можна бачити, усі інші мітки містять належні значення. Мітки інших файлів також можна перевірити позначенням їх один за одним. Коли усі мітки буде визначено належним чином, скористаймося пунктом Зберегти (меню Файл або кнопка на панелі інструментів). Вибір пункту Створити список відтворення у меню Файл призведе до створення файла `One Hit Wonder - Let's Tag.m3u` у теці альбому.

# Розділ 3. Довідка щодо команд

## Елементи графічного інтерфейсу

Графічний інтерфейс Kid3 поділено на шість розділів: ліворуч розташовано панелі файлів і тек, праворуч — панелі Файл, Мітка 1, Мітка 2 і Мітка 3 .

Для навігації між різними розділами за допомогою клавіатури передбачено декілька клавіатурних скорочень. У розділах міток клавіатурними скороченнями можна скористатися, якщо не виконується редагування тексту, або якщо курсор перебуває у першому стовпчику таблиці.

- Alt+←: перейти до попереднього розділу (Command+[ у macOS®)

- Alt+→: перейти до наступного розділу (Command+] у macOS®)

- Ctrl+Shift+V: з іншої мітки

- Ctrl+C: копіювати

- Ctrl+V: вставити

- Shift+Delete: вилучити

- F2: редагувати

- Insert: додати

- Delete: вилучити

### Список файлів

Список файлів складається із назв усіх тих файлів у відкритій теці, які відповідають вибраному фільтру назв файлів (typically `*.mp3 *.ogg *.opus *.dsf *.flac *.mpc *.aac *.m4a *.m4b *.m4p *.mp4 *.mp2 *.spx *.tta *.wv *.wma *.wav *.aiff *.ape`). Можна позначати один або декілька файлів. Щоб зняти позначення з усіх файлів, клацніть у довільному порожньому місці під пунктами у списку. Позначення визначає файли, над якими виконуватимуться дії унаслідок натискання кнопок, опис яких наведено нижче.

Окрім стовпчика Назва, параметри файла буде показано у стовпчиках Розмір, Тип, Дата зміни. Стовпчики можна приховувати зняттям позначки з відповідного пункту у контекстному меню смужки заголовків списку. Порядок стовпчиків можна змінювати перетягуванням із скиданням. Упорядкування пунктів у списку за вмістом стовпчика можна змінювати клацанням на заголовку стовпчика.

Крім того, у стовпчиках списку файлів може бути показано і редаговано значення стандартних міток.

Ліворуч від назви може бути показано піктограму: диск на позначення файлів, до яких було внесено зміни, або дані щодо того, які мітки встановлено (V1, V2, V1V2 або NO TAG; піктограму не буде показано, якщо читання даних з файла ще не виконувалося).

Пункти тек буде показано із піктограмою теки. Якщо теку відкрито, її файли буде показано у форматі ієрархічного списку. Після позначення файлів у підтеках можна виконувати дії над файлами, які зберігаються у різних теках. Це корисно, якщо музичну збірку організовано так, що тека кожного виконавця містить підтеки із альбомами цього виконавця.

Клацанням правою кнопкою миші у списку файлів можна відкрити контекстне меню із такими пунктами:

- Розгорнути всі: розгортає усі ієрархії тек (лише поточну ієрархію, якщо натиснуто клавішу Shift)

- Згорнути всі: згортає усі ієрархії тек

- Перейменувати: змінити назву файла

- Пересунути до смітника: пересунути файл до смітника

- Відтворити: відтворити файл, див. відтворення. Якщо позначеним файлом є файл списку відтворення, буде відтворено файли зі списку відтворення.

- Змінити: редагувати список відтворення, див. редагування списку відтворення.

- Наступні пункти є командами користувача, які можна визначити за допомогою вкладки Дії користувача діалогового вікна налаштовування Kid3. Там також можна увімкнути відтворення у відповідь на подвійне клацання.

  Якщо позначено пункт Позначати файл при програванні, програма автоматично позначатиме композицію, яка зараз відтворюється, у списку файлів.

### Редагування списку відтворення

Список відтворення можна створити порожнім або таким, що містить композиції у певній теці, див. створення списку відтворення. Файл списку відтворення, створений у такий спосіб, можна редагувати після подвійного клацання лівою кнопкою миші або використання пункту Змінити контекстного меню списку файлів. Кожна з цих двох дій призведе до відкриття списку записів у списку відтворення. У програмі передбачено можливість відкриття декількох списків відтворення одночасно.

Нові записи можна додавати перетягуванням зі скиданням зі списку файлів, програми для керування файлами або іншого списку відтворення. Якщо запис перетягнуто із іншого списку відтворення, його буде пересунуто або скопійовано, залежно від системи. Щоб викликати іншу дію, натисніть клавішу Shift, Ctrl або Alt, відповідно (для копіювання замість пересування у macOS®). Переупорядковування пунктів у списку можна також здійснювати перетягуванням зі скиданням. Крім того, пункти у списку можна пересувати за допомогою клавіатурних скорочень Ctrl+Shift+↑ і Ctrl+Shift+↓ (у macOS® слід натискати Command замість Ctrl). Вилучити запис можна натисканням клавіші Delete.

Будь ласка, зауважте таке: для перетягування пунктів зі списку їх слід захоплювати за ліву частину (поряд із піктограмами); захоплення за праву частину призведе до виконання процедури позначення декількох пунктів. Отже, вам буде доволі просто виконати обидві ці дії.

Після внесення змін до списку відтворення їх можна або зберегти за допомогою натискання кнопки Зберегти, або відкинути натисканням кнопки Скасувати. Якщо ви спробуєте закрити вікно програми, буде показано попередження із пропозицією зберегти усі незбережені зміни.

Доріжки, які позначено у списку відтворення, буде автоматично позначено у списку файлів. Це уможливить редагування їхніх міток.

Щоб виконати дію над списком відтворення, слід позначити його файл у списку файлів. Пункт Змінити контекстного меню відкриває діалогове вікно, яке описано у цьому розділі, а пункт Відтворити запускає програвач мультимедійних даних із композиціями зі списку відтворення. Над списками відтворення можна виконувати дії, які визначено користувачем. Наприклад, можна виконати дію Експортувати список відтворення до теки, яка копіює файли зі списку відтворення до теки.

### Список тек

У списку тек містяться назви підтек у відкритій теці, а також пункти поточної теки (`.`) та батьківської теки (`..`). За допомогою цього списку ви можете швидко змінити теку, не використовуючи пункт меню Відкрити... або перетягування зі скиданням.

Видимість стовпчиків, порядок стовпчиків та упорядкування записів у стовпчику можна налаштувати у спосіб, опис якого наведено у розділі щодо списку файлів.

### Файл

Показує дані щодо кодування (MP3, Ogg, Opus, DSF, FLAC, MPC, APE, MP2, MP4, AAC, Speex, TrueAudio, WavPack, WMA, WAV, AIFF), бітової швидкості, частоти дискретизації, кількості каналів та тривалості відтворення файла.

У полі для редагування Назва міститиметься назва файла (якщо позначено лише один файл). Якщо змінити цю назву, файл буде перейменовано, щойно ви скористаєтеся командою збереження змін.

У спадному списку та рядку для редагування тексту Формат міститься запис формату, який буде використано при створенні назви файла із першої або другої мітки. Назва файла може містити довільні символи, навіть назву теки, яку слід відокремити від назви файла символом похилої риски, але щоб перейменування можна було виконати, відповідна тека вже має існувати. Для вставляння значень міток до назви файла можна скористатися такими спеціальними кодами:

- %s %{title} Заголовок (твору)

- %a %{artist} Виконавець

- %l %{album} Альбом

- %c %{comment} Коментар

- %y %{year} Рік

- %t %{track} Доріжка (наприклад 01)

- %t %{track.n} Доріжка і шириною поля n (наприклад 001 для %{track.3})

- %T %{tracknumber} Доріжка (без початкових нулів, наприклад 1)

- %g %{genre} Жанр

- %{ignore} Ігнорується при створенні міток на основі назви файла

Коди форматів не обмежено наведеними вище прикладами. Ви можете скористатися будь-якими назвами кадрів, наприклад уніфікованими назвами кадрів, зокрема `%{albumartist}`, `%{discnumber.1}`, `%{bpm}`, або специфічними для формату назвами, зокрема `%{popm}`.

Можна дописувати рядки на початку або у кінці рядка замінника для коду формату. Для цього слід додати відповідні рядки у подвійних лапках всередині фігурних дужок коду формату. Такі рядки буде додано до рядка-результату, лише якщо код формату дає непорожнє значення. Наприклад, якщо назва файла має містити одразу заголовок і підзаголовок, можна скористатися у рядку формату записом `%{title} [%{subtitle}]`. Але використання такого формату призведе до завершення рядка назви комбінацією `[]`, якщо у файлі не зберігається мітки підзаголовка. Щоб уникнути додавання таких порожніх квадратних дужок, якщо підзаголовок порожній, слід скористатися рядком формату `%{title}%{" ["subtitle"]"}`. Таким чином, у записі результату не буде початкового пробілу і дужок, якщо запису підзаголовка не існує.

Список доступних форматів можна редагувати за допомогою діалогового вікна, яке програма відкриває у відповідь на натискання кнопки Назва файла з мітки на вкладці Файл діалогового вікна параметрів програми.

Другим спадним списком Формат (зі стрілочкою вниз) можна скористатися для створення міток на основі назви файла. Якщо формат назви файла не відповідає визначеному тут взірцю, програма спробує скористатися декількома широковикористовуваними форматами.

У спадному списку ви знайдете декілька типових форматів назв файлів. Втім, передбачено можливість введення до рядка для редагування тексту вашого власного варіанта форматування.

Список доступних форматів можна редагувати за допомогою діалогового вікна, яке програма відкриває у відповідь на натискання кнопки Мітка з назви файла на вкладці Файл діалогового вікна параметрів програми.

На внутрішньому рівні, формальний вираз будується з кодів форматів. Якщо вам потрібні додаткові можливості із форматування формальних виразів, формат для створення міток на основі назв файлів можна вказати як повноцінний формальний вираз із захопленням підрядків, перед якими вказують коди форматів. Наприклад, щоб видобути номери композицій без вилучення початкових нулів, можна скористатися таким форматом: `/%{track}(\d+) %{title}(.*)`.

З: Мітка 1, Мітка 2: визначити назву файла за допомогою вибраного формату і першої мітки або другої мітки, відповідно.

До: Мітка 1, Мітка 2: мітки встановлюються з назви файла. Спочатку використовується формат, вказаний у полі Формат. Якщо наявна назва файла не відповідає вказаному формату, програма спробує скористатися такими форматами:

- `Виконавець - Альбом/Доріжка Композиція`

- `Альбом/Доріжка - Виконавець - Композиція`

- `/Виконавець - Альбом - Доріжка - Композиція`

- `Альбом/Виконавець - Доріжка - Композиція`

- `Альбом/Виконавець - Композиція`

- `Виконавець/Альбом/Доріжка Композиція`

Якщо позначено лише один файл, пункти графічного інтерфейсу буде заповнено значеннями, які видобуто з назви файла. Якщо позначено декілька файлів, мітки файлів буде безпосередньо встановлено за назвами файлів.

### Мітка 1

Рядки для редагування тексту для пунктів Заголовок, Виконавець, Альбом, Коментар, Дата, Номер доріжки і Жанр використовуються для редагування відповідних значень у першій мітці позначених файлів. Значення буде змінено, якщо зміниться позначення файлів або перед виконанням дій Зберегти і Вийти, якщо позначено відповідне поле ліворуч від поля назви файла. Це корисно, якщо ви хочете змінити лише деякі значення, а інші лишити незмінними.

Якщо позначено один файл, програма позначить усі пункти, а у віджетах рядків для редагування тексту міститимуться значення, які буде виявлено у мітках відповідного файла. Якщо мітки у файлі не знайдено, буде показано відповідне порожнє значення, тобто порожній рядок для полів Заголовок, Виконавець, Альбом та Коментар, 0 для числових полів Дата і Номер доріжки і порожнє вибране значення для спадного списку Жанр. Значення можна змінювати, і якщо позначено відповідний пункт, їх буде встановлено для вибраного файла після зміни позначення. Відповідний файл буде позначено як змінений піктограмою диска на панелі списку файлів, але сам файл лишатиметься незмінним, аж доки не буде віддано команду Зберегти.

Якщо позначено декілька файлів, буде показано лише значення, які є ідентичними для усіх файлів. В усіх інших полях буде показано порожні значення, як це описано вище. Усі поля для позначення пунктів буде спорожнено, щоб уникнути небажаних змін. Якщо значення слід встановити для усіх файлів, ви можете виконати його редагування, і програма автоматично позначить відповідний пункт. Значення буде встановлено для усіх позначених файлів, якщо позначення змінено. Зберегти внесені зміни можна за допомогою пункту Зберегти.

За допомогою позначок також можна керувати дією більшості команд, зокрема копіювання, вставлення та перенесення даних між мітками 1 і 2. Щоб спростити роботу із декількома файлами одночасно, коли усі поля для позначок є порожніми, ці команди працюють однаково, якщо усі поля позначено і якщо усі поля не позначено.

З мітки 2: поля мітки 1 встановлюються на основі відповідних значень у мітці 2. Якщо позначено один файл, пункти графічного інтерфейсу буде заповнено значеннями з мітки 2. Якщо позначено декілька файлів, мітки файлів буде встановлено безпосередньо.

Копіювати: заповнити буфер копіювання значеннями з мітки 1. Лише значення із позначених пунктів буде використано у наступних командах вставлення.

Вставити: вставити значення із буфера копіювання до поля графічного інтерфейсу.

Вилучити: у результаті натискання цієї кнопки усі поля у графічному інтерфейсі буде спорожнено. Якщо зберегти після цього редагований файл, у ньому не міститиметься мітки 1.

### Мітка 2

За допомогою графічного інтерфейсу можна керувати цим параметром у спосіб, який описано у розділі щодо параметра Мітка 1, але розміри рядків не обмежено.

Для мітки 2 у полі Жанр ви можете використовувати власні значення, окрім жанрів зі спадного списку. Просто введіть потрібну вам назву жанру у поле для редагування тексту.

Мітка 2 не може містити лише ті самі значення, що і у мітці 1. Формат будується у гнучкий спосіб з декількох кадрів, які самі складуються із декількох полів. Таблиця мітки 2 показує усі кадри, які є доступними у позначеному файлі.

Змінити: відкриває вікно, за допомогою якого можна редагувати усі поля позначеного кадру. Якщо позначено декілька файлів, редаговані поля застосовуються до усіх позначених файлів, які містять такий кадр.

Додати: буде показано засіб створення запиту вибору типу кадру. За його допомогою може бути змінено і додано до файла кадр позначеного типу. Це працює також для додавання кадру до декількох позначених файлів.

Вилучити: вилучає позначений кадр із позначених файлів.

Напис Сюди можна перетягти зображення обкладинки буде показано, якщо у файлі не міститься вбудованого зображення обкладинки. Зображення можна додати перетягуванням зі скиданням з браузера або програми для керування файлами. Після перетягування зображення буде показано у відповідній позиції. Передбачено можливість редагування або додавання кадрів подвійним клацанням на відповідному полі.

### Мітка 3

У деяких файлах може бути більше за дві мітки. Для таких файлів програма показує третій розділ мітки. Розділ Мітка 3 може бути у таких файлах:

- файли MP3 можуть містити мітку ID3v1.1, мітку ID3v2 (2.3.0 або 2.4.0), а у третьому розділі — мітку APE. Такі мітки APE використовують для зберігання даних щодо підсилення гучності. Ці дані можна побачити у розділі Мітка 3. Мітку APE можна вилучити за допомогою кнопки Вилучити.

- Фрагменти INFO RIFF у файлах WAV зберігаються у розділі Мітка 3, оскільки розділ Мітка 1 призначено для міток ID3v1.1 із відповідними обмеженнями. Розділ Мітка 2 використовується для міток ID3v2.4.0, підтримку яких також передбачено у файлах WAV, але підтримку фрагментів INFO RIFF, здається, реалізовано краще.

- у файлах FLAC, зазвичай, для зберігання метаданих використовують коментар Vorbis. Втім, існують файли FLAC, у яких містяться мітки ID3v1 і ID3v2, які програма показує у розділах Мітка 1 і Мітка 3. Підтримку міток ID3 у файлах FLAC реалізовано лише засобами TagLib, тому, щоб їх побачити, додаток OggFlacMetadata має бути вимкнено на вкладці Додатки діалогового вікна налаштувань програми.

Керування з графічного інтерфейсу працює у той самий спосіб, що і у розділі Мітка 2.

### Список кадрів

Kid3 може редагувати більшість кадрів для усіх підтримуваних типів файлів. Доступ до деяких кадрів можна здійснювати за допомогою уніфікованих назв, отже, ними можна обмінюватися між файлами у різних форматах. Доступ до неуніфікованих кадрів можна здійснювати за специфічними для формату кадрами.

Таблиця 3.1. Прив'язка уніфікованих типів кадрів до різноманітних форматів

Універсальний | ID3v2.3 | ID3v2.4 | MP4 | ASF | Vorbis | RIFF
--- | --- | --- | --- | --- | --- | ---
Заголовок | `TIT2` | `TIT2` | `©nam` | `Title` | `TITLE` | `INAM`
Виконавець | `TPE1` | `TPE1` | `©ART` | `Author` | `ARTIST` | `IART`
Альбом | `TALB` | `TALB` | `©alb` | `WM/AlbumTitle` | `ALBUM` | `IPRD`
Коментар | `COMM` | `COMM` | `©cmt` | `Description` | `COMMENT` | `ICMT`
Дата | `TYER` | `TDRC` | `©day` | `WM/Year` | `DATE` | `ICRD`
Номер доріжки | `TRCK` | `TRCK` | `trkn` | `WM/TrackNumber` | `TRACKNUMBER` | `IPRT` або `ITRK`
Жанр | `TCON` | `TCON` | `©gen` | `WM/Genre` | `GENRE` | `IGNR`
Виконавець альбому | `TPE2` | `TPE2` | `aART` | `WM/AlbumArtist` | `ALBUMARTIST` |
Аранжувальник | `IPLS` | `TIPL` | `ARRANGER` | `WM/Producer` | `ARRANGER` | `IENG`
Автор | `TOLY` | `TOLY` | `AUTHOR` |  | `AUTHOR` |
Музичний розмір | `TBPM` | `TBPM` | `tmpo` | `WM/BeatsPerMinute` | `BPM` | `IBPM`
Номер у каталозі | `TXXX:CATALOGNUMBER` | `TXXX:CATALOGNUMBER` |  |  | `CATALOGNUMBER` |
Компіляція | `TCMP` | `TCMP` | `cpil` |  | `COMPILATION` |
Композитор | `TCOM` | `TCOM` | `©wrt` | `WM/Composer` | `COMPOSER` | `IMUS`
Диригент | `TPE3` | `TPE3` | `CONDUCTOR` | `WM/Conductor` | `CONDUCTOR` |
Авторські права | `TCOP` | `TCOP` | `cprt` | `Copyright` | `COPYRIGHT` | `ICOP`
Опис | `TIT3` | `TIT3` | `desc` | `WM/SubTitleDescription` | `DESCRIPTION` |
Номер диска | `TPOS` | `TPOS` | `disk` | `WM/PartOfSet` | `DISCNUMBER` |
Програма для кодування | `TENC` | `TENC` | `©enc` | `WM/EncodedBy` | `ENCODED-BY` | `ITCH`
Параметри кодування | `TSSE` | `TSSE` | `©too` | `WM/EncodingSettings` | `ENCODERSETTINGS` | `ISFT`
Час кодування |  | `TDEN` |  | `WM/EncodingTime` | `ENCODINGTIME` | `IDIT`
Групування | `GRP1` | `GRP1` | `©grp` |  | `GROUPING` |
Покаткова тональність | `TKEY` | `TKEY` |  | `WM/InitialKey` | `INITIALKEY` |
ISRC | `TSRC` | `TSRC` | `ISRC` | `WM/ISRC` | `ISRC` | `ISRC`
Мова | `TLAN` | `TLAN` | `LANGUAGE` | `WM/Language` | `LANGUAGE` | `ILNG`
Автор тексту | `TEXT` | `TEXT` | `LYRICIST` | `WM/Writer` | `LYRICIST` | `IWRI`
Текст пісні | `USLT` | `USLT` | `©lyr` | `WM/Lyrics` | `LYRICS` |
Носій | `TMED` | `TMED` | `SOURCEMEDIA` |  | `SOURCEMEDIA` | `IMED`
Настрій |  | `TMOO` |  | `WM/Mood` | `MOOD` |
Початковий альбом | `TOAL` | `TOAL` | `ORIGINALALBUM` | `WM/OriginalAlbumTitle` | `ORIGINALALBUM` |
Початковий виконавець | `TOPE` | `TOPE` | `ORIGINALARTIST` | `WM/OriginalArtist` | `ORIGINALARTIST` |
Початковий заголовок | `TORY` | `TDOR` | `ORIGINALDATE` | `WM/OriginalReleaseYear` | `ORIGINALDATE` |
Виконавець | `IPLS` | `TMCL` | `PERFORMER` |  | `PERFORMER` | `ISTR`
Зображення | `APIC` | `APIC` | `covr` | `WM/Picture` | `METADATA_BLOCK_PICTURE` |
Видавець | `TPUB` | `TPUB` | `PUBLISHER` | `WM/Publisher` | `PUBLISHER` | `IPUB`
Оцінка | `POPM` | `POPM` | `rate` | `WM/SharedUserRating` | `RATING` | `IRTD`
Країна випуску | `TXXX:RELEASECOUNTRY` | `TXXX:RELEASECOUNTRY` |  |  | `RELEASECOUNTRY` | `ICNT`
Дата випуску |  | `TDRL` | `RELEASEDATE` |  | `RELEASEDATE` |
Ремікшер | `TPE4` | `TPE4` | `REMIXER` | `WM/ModifiedBy` | `REMIXER` | `IEDT`
Упорядкування альбому | `TSOA` | `TSOA` | `soal` | `WM/AlbumSortOrder` | `ALBUMSORT` |
Упорядковування виконавця альбому | `TSO2` | `TSO2` | `soaa` |  | `ALBUMARTISTSORT` |
Упорядковування виконавця | `TSOP` | `TSOP` | `soar` | `WM/ArtistSortOrder` | `ARTISTSORT` |
Упорядковування композитора | `TSOC` | `TSOC` | `soco` |  | `COMPOSERSORT` |
Упорядковування назви | `TSOT` | `TSOT` | `sonm` | `WM/TitleSortOrder` | `TITLESORT` |
Підзаголовок |  | `TSST` | `SUBTITLE` | `WM/SubTitle` | `SUBTITLE` | `PRT1`
Сайт | `WOAR` | `WOAR` | `WEBSITE` | `WM/AuthorURL` | `WEBSITE` | `IBSU`
Робота | `TIT1` | `TIT1` | `©wrk` | `WM/ContentGroupDescription` | `WORK` |
Файл звукових даних у WWW | `WOAF` | `WOAF` |  | `WM/AudioFileURL` | `WWWAUDIOFILE` |
Джерело звукових даних у WWW | `WOAS` | `WOAS` |  | `WM/AudioSourceURL` | `WWWAUDIOSOURCE` |

Зауваження щодо прив'язки до уніфікованих назв кадрів:

- Кількість уніфікованих назв кадрів обмежено можливістю встановлення надійної відповідності між усіма підтримуваними форматами файлів. У більшості міток передбачено підтримку кадрів із довільними назвами; ці буде використано, якщо виявиться недоступним специфічний кадр (наприклад, назви великими літерами у стовпчику MP4). Якщо такої можливості немає, кадри деяких типів є непідтримуваними для формату, наприклад, кадр «Автор і виконавець» для ASF (WMA).

- Прив'язки не вибираються довільним чином — їх пов'язано із використанням кадрів у інших програмах або на різних пристроях. Тому кадр ID3v2 «TPE2 - Група/оркестр/акомпанемент» не передбачає використання його вмісту у полі виконавця альбому, але таке використання є доволі поширеним. З іншого боку, справжнє призначення ID3v2 є причиною того, що цей кадр використовується для поля оркестру при імпортування (наприклад, з Discogs), хоча таке використання і може здатися дещо дивним для інших форматів міток.

- Прив'язки не завжди є взаємооберненими. Наприклад, у ID3v2.3 використовується кадр IPLS одночасно для аранжувальника та виконавця. Якщо виконати зворотне перетворення, обидва кадри опиняться у полі «Аранжувальник».

- У кадрах аранжувальника і виконавця використовують специфічний формат для вмісту: «внесок 1|митець 1|внесок 2|митець 2|...». Приклад: «Диригент хору|Ернст Данширн|Вокал, сопрано|Анна Нетребко». Кадри IPLS (ID3v2.3) або TIPL/TMCL (ID3v2.4) створюватимуться зі списком рядків у вказаному форматі (роздільником рядків буде символ «|»). Значення у цьому форматі також встановлюються при імпортування даних із серверів, які надають такі відомості.

- Щоб явним чином використати назву кадру, яка конфліктує із уніфікованою назвою кадру, додайте перед назвою знак оклику. Наприклад, додавання кадру типу «Media» до коментаря Vorbis призведе до створення кадру із назвою «SOURCEMEDIA» через прив'язку до уніфікованих типів. Щоб додати кадр із назвою «MEDIA», а не «SOURCEMEDIA», слід скористатися назвою «!MEDIA», яка призведе до примусового встановлення назви явним чином.

- Якщо вам потрібен кадр, якого немає у списку, ви можете ввести довільну назву після натискання кнопки Додати. Часто використовувані назви кадрів можна додати до Нетипових кадрів у налаштуваннях Міток. Доступ до доданих назв можна буде отримати за допомогою списку Кадри швидкого доступу.

### Синхронізація тексту пісень із часовими кодами подій

Для редагування відомостей, які синхронізовано зі звуковими даними, передбачено спеціальний редактор. Підтримку цих кадрів передбачено як у мітках ID3v2.3.0, так і у мітках ID3v2.4.0. Щоб додати відповідний кадр, слід вибрати назву кадру зі списку, який з'являється після натискання кнопки Додати, — Синхронізований текст пісні або Часові коди подій, відповідно. Редактор є однаковим для обох випадків. Для часових кодів подій передбачено лише попередньо визначений набір подій, а для синхронізованого тексту пісні вам доведеться ввести сам текст. Нижче розглянуто випадок редагування синхронізованого тексту пісні.

Нехай позначено мітку ID3v2, редактор тексту пісні запущено натисканням кнопки Додати і вибором пункту Синхронізований текст пісні. Для наявного кадру синхронізованого тексту пісні його слід позначити і натиснути кнопку Змінити. У відповідь буде автоматично відкрито програвач із поточним файлом, щоб ви могли почути відтворену пісню і призупинити відтворення для синхронізації тексту пісні.

Параметри у верхній частині вікна редактора SYLT, зазвичай, не потребують внесення змін. Якщо слова пісні містять символи, яких немає у наборі символів «Латиниця 1», варто змінити кодування тексту на UTF16 (або UTF8 для ID3v2.4.0). Якщо текст пісні написано англійською і слід зберегти максимальну сумісність, слід використовувати кодування ISO-8859-1.

У верхній частині розділу Текст пісні передбачено п'ять кнопок. За допомогою кнопки Додати можна додати до таблиці нову часову позначку. Значення часу буде взято із позиції у програвачі. Таким чином, додавання запису під час відтворення композиції призводитиме до додавання рядка у поточній позицій відтворення. Події у таблиці має бути хронологічно впорядковано, тому рядок буде вставлено відповідним чином. Записи із некоректними часовими позначками оброблятимуться особливим чином: якщо для поточного позначеного рядка визначено некоректний час, його часову позначку буде замінено на поточний час без додавання нового рядка. Якщо поточний час є коректним, буде використано перший рядок із некоректною позначкою часу, якщо такий існує. Така поведінка програми має полегшити додавання часових позначок, якщо текст пісні вже внесено до таблиці, але не вказано часові позначки (тобто маємо випадок імпортованого несинхронізованого тексту пісні). Зауважте, що некоректні часові позначки буде показано як 00:00.00, тобто як час абсолютного початку доріжки, який, очевидно, не є некоректним. Щоб зробити час некоректним, натисніть клавішу Delete або скористайтеся пунктом Спорожнити з контекстного меню. Нові рядки можна додавати за допомогою пункту Вставити рядок з контекстного меню або створювати при імпортування несинхронізованого тексту пісні за допомогою натискання кнопок З буфера обміну даними або Імпортувати. Для несинхронізованого тексту, який імпортовано у такий спосіб, буде вказано некоректні часові позначки. Рядки у таблиці можна вилучати натисканням кнопки Вилучити або використанням пункту Вилучити рядки з контекстного меню.

Синхронізований текст пісні можна імпортувати з файла за допомогою натискання кнопки Імпортувати. Очікуваним форматом є простий або удосконалений формат LRC. Якщо у вибраному файлі перший рядок не починається із квадратної дужки, програма вважатиме файл простим текстовим файлом із несинхронізованим текстом пісні. Рядки з такого файла буде імпортовано із некоректними часовими позначками. Дані щодо часових позначок можна додати за допомогою кнопки Додати під час відтворення файла або ввести вручну. Крім того, передбачено можливість імпортування тексту пісні копіюванням зі вставленням за допомогою натискання кнопки З буфера обміну даними. Синхронізований текст пісні можна записати до файла LRC за допомогою натискання кнопки Експортувати. Зауважте, що експортовано буде лише записи із коректними часовими позначками, і записи буде упорядковано за часом. Записи із некоректними часовими позначками не зберігатимуться у кадрах SYLT, тому переконайтеся, що усі дані щодо часових позначок вказано до того, як закриєте діалогове вікно.

У специфікації ID3 передбачено часові позначки для кожного складу слова. Втім, у більшості програвачів передбачено підтримку поділу тексту пісні лише на рівні рядка або речення. З метою реалізації підтримки обох випадків у Kid3 використано ті самі припущення, що і у редакторі SYLT. Текст, який введено у таблиці вважається початком нового рядка, якщо він не починається із пробілу або дефіса. Реалізувати виключення з цього правила можна розпочавши рядок з символу підкреслювання («_») для примусового продовження рядка або символу ґратки («#») для примусового розриву рядка. Ці символи екранування не зберігаються у кадрі SYLT. У кадрі SYLT нові рядки починаються із символу заповнення рядка (шістнадцяткового 0A), а продовження рядків — ні. При читанні кадрів SYLT Kid3 перевіряє, чи починається перший запис із символу заповнення рядка. Якщо це не так, програма припускає, що усі запис є окремими рядками, а продовження за складами слів не використовуються.

Доки відтворюється композиція, підсвічується рядок, який пов'язано із поточною позицією відтворення, тому можна перевірити правильність синхронізації. Якщо до одної або декількох часових позначок потрібно додати відступ, зробити це можна вибором пункту Додати відступ з контекстного меню. Для зменшення значення часових позначок можна скористатися від'ємними значеннями. За допомогою пункту Перейти до позиції з контекстного меню можна встановити позиціюю відтворення за часовою позначкою позначеного рядка.

Рекомендована процедура додавання нового синхронізованого тексту пісні

- Отримайте несинхронізований текст пісні, наприклад, за допомогою пункту Текст пісні → Embed Lyrics з контекстно меню списку файлів.

- Скопіюйте несинхронізовані слова пісні до буфера обміну даними: просто перейдіть до рядка Текст пісні у таблиці кадрів і натисніть комбінацію клавіш Ctrl+C.

- Додайте кадр синхронізованого тексту пісні (Додати..., Синхронізований текст пісні, Гаразд), натисніть кнопку З буфера обміну даними.

- Усі рядки із несинхронізованим текстом буде показано у таблиці, усі часові позначки будуть некоректними (0:0:0.00). Можете попередньо вилучити усі порожні записи.

- Розпочніть відтворення композиції натисканням кнопки відтворення ► на панелі інструментів відтворення у нижній частині головного вікна програми.

- Коли настане час показати рядок тексту із некоректною часовою позначкою, натисніть кнопку Додати або комбінацію клавіш Alt+A, і часову позначку буде оновлено правильним значенням.

- Продовжуйте процедуру, аж доки не буде встановлено усі часові позначки. Якщо ви щось пропустили, зупиніть відтворення і спорожніть часові позначки натисканням клавіші Delete або позначенням помилкових рядків із наступним вибором пункту Спорожнити з контекстного меню. Щоб перезапустити відтворення із заданої часової позиції, скористайтеся пунктом Перейти до позиції з контекстного меню.

### Глави у файлах MP4

Назви файлів звукових книг MP4, зазвичай, мають суфікс `.m4b` і є доволі великим, оскільки у них містяться усі глави в одному файлі. Для навігації такими файлами використовують позначки глав, які можна редагувати у Kid3 за допомогою псевдополя «Chapters», використовуючи той самий редактор, що і для синхронізованих текстів пісень. Втім, зауважте, що цією можливістю можна скористатися лише за допомогою додатка Mp4v2Metadata. Тому, переконайтеся, що його увімкнено, і він перебуває у списку вище за додаток TaglibMetadata на вкладці Додатки вікна параметрів програми, якщо ви хочете редагувати дані глав MP4.

Інформація про розділи в аудіокнигах MP3 зберігається в кількох фреймах «Розділ» (CHAP), на які посилається фрейм «Зміст» (CTOC), і ці фрейми мають вбудовані субфрейми. Щоб редагувати ці дані в одному місці, можна також використовувати псевдофрейм «Розділи» для тегів ID3v2. Його вміст використовується для створення справжнього розділу, змісту та вбудованих фреймів: Опис використовується як заголовок змісту, стовпчик Текст містить заголовки розділів, а відповідне значення Час буде часом початку та закінчення попереднього розділу. Час завершення останнього розділу визначається Часом останнього рядка, якщо його Текст порожній.

## Меню «Файл»

Файл → Відкрити... (Ctrl+O)

  Відкрити теку. На панелі файлів буде показано усі файли, які відповідають вибраному фільтру назв файлів, вибраний файл буде позначено.

Файл → Відкрити недавні

  Відкрити нещодавно відкриту теку.

Файл → Відкрити теку... (Ctrl+D)

  Відкрити теку. На панелі файлів буде показано усі файли, які відповідають вибраному фільтру назв файлів.

Файл → Перезавантажити (F5)

  Перезавантажити теку. Перед перезавантаженням слід зберегти змінені файли. Розгорнуті підтеки буде згорнуто.

Файл → Зберегти (Ctrl+S)

  Зберегти усі змінені файли у теці. Пункти змінених файлів буде позначено піктограмою диска у списку файлів. Якщо буде змінено назви якихось із файлів, програма перейменує їх.

Файл → Повернути

  Скасувати зміни в одному або декількох файлах. Якщо у списку файлів не позначено жодних файлів, буде скасовано зміни в усіх файлах. Якщо ж файли позначено, буде скасовано зміни лише у позначених файлах.

Файл → Імпортувати...

  Діалоговим вікном імпортування можна скористатися для імпортування даних безпосередньо з сервера freedb.org, сервера MusicBrainz, Discogs, Amazon або інших джерел списків композицій в альбомах, які надають дані у текстовому форматі.

  Імпортування даних з сервера freedb.org реалізовано за допомогою діалогового вікна, яке програма відкриває, якщо вибрано Сервер джерела: gnudb.org. Дані щодо виконавця і назви альбому для пошуку можна ввести у два верхніх поля. Альбоми, які відповідають запиту буде показано після натискання кнопки Знайти і отримання результатів з www.gnudb.org. Імпортування даних доріжок для альбому виконується подвійним клацанням на пункті альбому у списку. Ви можете вибрати сервер freedb.org для імпортування даних та шлях CGI. Імпортовані дані буде показано у форматі таблиці попереднього перегляду діалогового вікна імпортування. Якщо вас задовольняють показані результати, ви можете імпортувати їх і закрити діалогове вікно за допомогою натискання кнопки Гаразд.

  Якщо у вас програмі для перегляду інтернету вже відкрито сторінку результатів пошуку, ви можете ввести адресу до першого поля пошуку. Результати буде показано у списку альбомів — їх можна буде безпосередньо імпортувати до Kid3.

  Адресу електронної пошти, яку зареєстровано на gnudb.org можна ввести у поле Жетон.

  Пошук на сервері Discogs можна виконати натисканням кнопки Discogs. Як і у вікні пошуку у gnudb.org, ви можете ввести ім'я виконавця та назву альбому, а потім вибрати потрібний пункт зі списку альбомів. Можна ввести Жетон для використання програмного інтерфейсу RESTful Discogs замість вебінтерфейсу, який часто змінюється, а тому може перешкоджати нормальній роботі обробника. Вам слід зареєструватися на Discogs, а потім створити жетон на сайті (Settings/Developers, Generate new token). Не забудьте натиснути кнопку Зберегти параметри після введення жетона, щоб скористатися ним для наступних запитів. Якщо позначено пункт Стандартні мітки, буде імпортовано стандартні відомості, наприклад, дані щодо виконавця, альбому та назв композицій. Якщо позначено пункт Додаткові мітки, буде імпортовано додаткові відомості, якщо такі виявляться доступними, зокрема дані щодо акомпанементу, аранжування та видавця. Якщо позначено пункт Зображення обкладинки, буде отримано зображення обкладинки, якщо таке виявиться доступним.

  Пошук на Amazon можна виконати натисканням кнопки Amazon/ Як і у вікні пошуку у gnudborg, ви можете ввести ім'я виконавця та назву альбому, а потім вибрати потрібний пункт зі списку альбомів. Якщо позначено пункт Додаткові мітки, буде імпортовано додаткові відомості, якщо такі виявляться доступними, зокрема дані щодо акомпанементу, аранжування та видавця. Якщо позначено пункт Зображення обкладинки, буде отримано зображення обкладинки, якщо таке виявиться доступним.

  Ви можете виконати пошук у той самий спосіб у базі даних випусків MusicBrainz за допомогою пункту З Випуск MusicBrainz. Процедура отримання даних подібна до описаної для пункту З gnudb.org.

  Імпортувати дані з сервера MusicBrainz можна за допомогою діалогового вікна, яке відкривається натисканням кнопки З Відбиток MusicBrainz. Сервер можна вибрати у спосіб, подібний до вибору сервера у вікні імпортування даних з freedb. Нижче у вікні розташовано таблицю для показу імпортованих даних доріжок. У правому стовпчику буде показано стан запиту до MusicBrainz. Одразу після запуску цим станом буде очікування. Якщо пошук за відбитком не дасть результатів, програма виконає повторну спробу із використанням міток у файлі. Таким чином, для успішного пошуку у MusicBrainz варто зберегти наявні дані (наприклад, дані щодо виконавця та альбому) до міток до імпортування. Якщо буде знайдено відповідний запис, пошук завершиться зі станом «розпізнано». Якщо знайти відповідний запис не вдасться, буде показано повідомлення про невдалий пошук або декілька результатів пошуку, один з яких можна буде вибрати. Натисканням кнопок Гаразд та Застосувати можна імпортувати дані. Натисканням кнопки Скасувати можна закрити діалогове вікно без імпортування даних. Для закриття вікна знадобиться деякий час, оскільки програма має зупинити усі процеси MusicBrainz.

  Для імпортування текстових даних. Відкриває допоміжне діалогове вікно З файла/буфера обміну даними, з якого можна отримати доступ до декількох попередньо налаштованих форматів імпортування. Першими двома, «CSV unquoted» і «CSV quoted», можна скористатися для імпортування даних, які було експортовано за допомогою діалогового вікна експортування. Дані CSV можна редагувати у програмі для роботи із електронними таблицями. Дані має бути збережено із використанням символів табуляції як роздільників. Після обробки дані можна імпортувати або з використанням формату «CSV quoted», який є дещо гнучкішим за формат «CSV unquoted». Втім, дані у такому форматі не можуть містити символів подвійних лапок. Якщо ви лише експортуєте дані з Kid3 для подальшого імпортування, можете скористатися форматом «CSV unquoted», як простішим. Зауважте, що у контекстному меню списку файлів також є пункти «Експортувати CSV» і «Імпортувати CSV». У цих пунктах для експортування та імпортування даних CSV використано скрипти, які надають повноти, потужності та гнучкості обробці.

  Наступним форматом, «freedb HTML text», можна скористатися для копіювання відомостей зі сторінки HTML freedb.org. Виконайте пошук альбому у freedb, і якщо бажані дані буде показано у вікні браузера, скопіюйте дані до буфера обміну даними. Далі, натисніть кнопку З буфера обміну даними, і імпортовані дані буде показано у таблиці попереднього перегляду у верхній частині діалогового вікна. Якщо вас вдовольняють імпортовані дані, закрийте діалогове вікно натисканням кнопки Гаразд. Дані буде вставлено до міток у поточній теці. Призначення для імпортування (Мітка 1, Мітка 2 або Мітка 1 і Мітка 2) можна вибрати за допомогою спадного списку. Для належного призначення міток файли у поточній теці мають перебувати у відповідному порядку. Досягти цього порядку можна нумеруванням файлів.

  Наступним попередньо налаштованим форматом імпортування, «freedb HTML source», можна скористатися, якщо дані доступні як документ HTML. Імпортування можливе за допомогою натискання кнопки З файла. У відповідь на натискання цієї кнопки програма відкриє вікно для вибору файлів. Крім того, можна скопіювати вміст файла з редактора, а потім імпортувати дані з буфера обміну даними. Цей формат може бути корисним для імпортування поза інтернетом, хоча документ HTML також можна відкрити у браузері, а потім імпортувати дані у першому форматі за допомогою буфера обміну даних.

  Доступні також інші попередньо налаштовані формати, наприклад «Track Title Time». Можна створити порожній нетиповий формат за допомогою кнопки Додати і пізніше його налаштувати. Два рядки під назвою формату є формальними виразами для захоплення полів з імпортованого тексту. Перший формальний вираз буде оброблено один раз на документ для збирання даних окремого альбому, зокрема даних щодо виконавця, альбому, року і жанру. За допомогою другого рядка програма намагатиметься встановити відповідність від початку документа до кінця отриманих даних доріжки, зазвичай, номеру доріжки і заголовка. У формальному виразі можна використовувати усі можливості, які передбачено у Qt™, тобто більшість можливостей формальних виразів Perl. Використання дужок, «(..)», створює буфери захоплення для полів для імпортування. Перед ними можна вказувати специфічні для Kid3 коди для захоплення полів. Коди є тими самими, які використовуються у форматі назв файлів. Окрім кодів із наведеного нижче списку, можна використовувати будь-яку назву кадру.

  - %s %{title} Заголовок (твору)

  - %a %{artist} Виконавець

  - %l %{album} Альбом

  - %c %{comment} Коментар

  - %y %{year} Рік

  - %t %{track} Доріжка

  - %g %{genre} Жанр

  - %d %{duration} Тривалість

  Наприклад, формальний вираз для доріжки (другий рядок) для імпортування зі списку відтворення `.m3u` може бути таким: «`%{track}(\d+)\s+%{title}(\S[^\r\n]*)\.mp3[\r\n]`». Усі формати можна змінити редагуванням формальних виразів і назви з наступним натисканням кнопки Зберегти параметри. Їх буде збережено у файлі `kid3rc` у теці налаштувань. Цей файл можна безпосередньо редагувати для створення додаткових форматів імпортування. Файл можна вилучити для повернення до типових форматів. Формати можна вилучати натисканням кнопки Вилучити.

  Точність показує оцінку того, наскільки добре імпортовані дані відповідають заданим композиціям. Для встановлення рівня відповідності у відсотках використовується тривалість відтворення або назви файлів. Обкладинка альбому показує адресу зображення обкладинки альбому, яку буде отримано.

  Щоб перевірити, чи імпортовані дані доріжок відповідають набору файлів, імпортовані дані щодо тривалості доріжок можна порівняти із тривалістю відтворення файлів. Таку перевірку можна увімкнути позначенням пункту Перевірити максимальну дозволену різницю у часі і визначенням максимальної похибки у секундах. Якщо буде виявлено невідповідність тривалостей відтворення, дані щодо тривалості відтворення буде позначено червоним тлом у таблиці попереднього перегляду.

  Якщо файли упорядковано інакше, ніж у імпортованих даних доріжок, пов'язані доріжки слід змінити. Полегшити це завдання можна за допомогою кнопок розділу Відповідність — Тривалість, Доріжка і Заголовок. Ці кнопки перевпорядкують доріжки за вмістом відповідних полів. Щоб виправити прив'язки вручну, ви можете перетягнути пункт доріжки за допомогою лівої кнопки миші із утриманням натиснутою клавіші Ctrl із наступним скиданням пункту на нове місце.

  Якщо імпортованих композицій більше, ніж файлів, наприклад, якщо у поточній теці міститься лише другий диск із дводискового альбому, але імпортовано композиції з обох дисків, можна вилучити композицій першого диска, позначивши їх клацанням на мітці рядка першої композиції із наступним клацанням на мітці рядка останньої композиції першого диска із одночасним утриманням натиснутою клавіші Shift і остаточним вилученням композицій натисканням клавіші Delete.

  Після відкриття діалогового вікна імпортування у ньому містяться дані міток. Тип мітки (Мітка 1, Мітка 2, Мітка 1 і Мітка 2) можна вибрати за допомогою спадного списку Призначення. За допомогою кнопки праворуч від цього спадного списку можна відновити поточний стан вмісту міток. За допомогою позначок у першому стовпчику таблиці можна позначити доріжки, для яких буде імпортовано дані. Це корисно, якщо у теці містяться доріжки із обох компакт-дисків подвійного компакт-диска, а імпортувати слід дані лише другого компакт-диска.

  Щоб ідентифікувати доріжки, дані яких буде імпортовано, можна увімкнути показ назв файлів і повних шляхів до файлів за допомогою контекстного меню заголовка таблиці. Значення у таблиці імпортування можна редагувати. Кнопкою скасування, розташованою праворуч від спадного списку Призначення, можна скористатися для відновлення вмісту міток. Нею також можна скористатися після зміни вмісту пункту Призначення.

  Майже у всіх діалогових вікнах є кнопка Зберегти параметри, якою можна скористатися для збереження специфічних для діалогового вікна параметрів та розміру вікна.

  Натискання кнопки З міток відкриває допоміжне діалогове вікно для встановлення кадрів міток на основі вмісту інших кадрів міток. Цим вікном можна скористатися для простого копіювання даних між мітками або видобування частин із одного кадру і вставляння її до іншого.

  Як і у діалоговому вікні імпортування з файла або буфера обміну даних, передбачено довільно налаштовувані формати для виконання різних дій. До вже налаштованих форматі належать формати копіювання значення назви альбому до полів виконавця альбому, композитора або диригента, та формат для видобування номера доріжки із поля заголовка, яке містить номер. Також передбачено формат для видобування значення підзаголовка із поля заголовка.

  У наведеному нижче прикладі пояснено, як додати нетиповий формат, який вставлятиме дані з поля підзаголовка до поля коментаря. Створіть новий формат за допомогою натискання кнопки Додати і встановлення нової назви, наприклад «Підзаголовок у коментар». Далі, введіть «`%{subtitle}`» у поле Джерело і «`%{comment}(.*)`» у поле Видобування і натисніть кнопку Зберегти параметри.

  Вираз у полі Джерело може містити коди форматів для довільних кадрів міток. Можна використати декілька кодів для поєднання вмісту з різних кадрів. Для кожної доріжки текст буде створено на основі її міток на основі формату Джерело, формальний вираз з поля Видобування буде застосовано до цього тексту для встановлення нових значень міток. Коди форматів, які вказано до дужок для захоплення тексту, визначають кадр мітки, до якого має бути збережено захоплений текст. Усе працює так само, як і для імпортування з файла або буфера обміну даними.

  Пунктом Імпортувати з міток... також можна безпосередньо скористатися у меню Файл. Відмінністю між цими двома інструментами є те, що допоміжне діалогове вікно діалогового вікна імпортування працює із усіма файлами у поточній теці, а пункт меню, лише зі позначеними файлами (які можуть зберігатися у різних теках). Для пункту меню передбачено підтримку додаткового коду «`%{__return}`» для повернення видобутого значення. Це може бути корисним для інтерфейсів командного рядка та QML.

Файл → Імпортувати з gnudb.org...

  Імпортувати з сервера freedb.org з використанням пошуку альбомів у gnudb.org. Цей пункт меню відкриває те саме діалогове вікно Імпортувати..., але скориговане за параметрами вікна З gnudb.org.

Файл → Імпортувати з Discogs...

  Імпортувати з сервера Discogs. Цей пункт меню відкриває те саме діалогове вікно Імпортувати..., але скориговане за параметрами вікна З Discogs.

Файл → Імпортувати з Amazon...

  Імпортувати з Amazon. Цей пункт меню відкриває те саме діалогове вікно Імпортувати..., але скориговане за параметрами вікна З Amazon.

Файл → Імпортувати з Випуск MusicBrainz...

  Імпортувати з бази даних випусків MusicBrainz. Цей пункт меню відкриває те саме діалогове вікно Імпортувати..., але скориговане за параметрами вікна З Випуск MusicBrainz.

Файл → Імпортувати з Відбиток MusicBrainz...

  Імпортувати з сервера MusicBrainz. Цей пункт меню відкриває те саме діалогове вікно Імпортувати..., але скориговане за параметрами вікна З Відбиток MusicBrainz.

Файл → Імпортувати з міток...

  Подібний до імпортування з міток, але імпортування стосується позначених файлів.

Файл → Автоматичне імпортування...

  Автоматичне імпортування надає змогу імпортувати відомості для декількох альбомів із різних інтернет-служб. Якщо у списку файлів позначено теки, буде імпортовано дані композицій для позначених тек. Якщо жодної теки не позначено, буде імпортовано дані для усіх тек у списку файлів.

  Тип мітки (Мітка 1, Мітка 2, Мітка 1 і Мітка 2) можна вибрати за допомогою спадного списку Призначення.

  Профілі визначають, з якими із серверів слід зв'язуватися для отримання даних щодо альбомів. Деякі з профілів попередньо визначено (Усі, MusicBrainz, Discogs, Обкладинки). Нетипові профілі можна додати за допомогою натискання кнопки Додати, розташованої праворуч від спадного списку Профіль.

  У наведеній нижче таблиці буде показано сервери, які програма використає при імпортування даних альбому за допомогою вибраного профілю. Процес імпортування даних для альбому буде завершено, коли буде знайдено усі потрібні дані, тому порядок рядків у таблиці є важливим. Змінити порядок можна натисканням кнопок Пересунути вище і Пересунути нижче. Натисканням кнопки Змінити можна перейти до внесення змін до наявного запису. За допомогою кнопки Сервер можна відкрити список серверів, дані з яких можна імпортувати. За допомогою полів Стандартні мітки, Додаткові мітки, Зображення обкладинки можна визначити дані, які буде отримано з сервера. Нарешті, за допомогою поля Точність можна встановити точність, якої слід досягти при імпортуванні даних. Якщо рівень точності є недостатнім, програма спробує скористатися наступним сервером у списку. Якщо натиснути кнопку Додати для додавання запису сервера, буде відкрито те саме діалогове вікно із параметрами сервера. Наявні записи можна вилучати натисканням кнопки Вилучити.

  Щоб запустити автоматичне пакетне імпортування із використанням вибраного профілю, натисніть кнопку Почати. Подробиці щодо процесу імпортування буде показано у верхній частині діалогового вікна. Процес можна перервати натисканням кнопки Перервати.

Файл → Навігація обкладинками...

  Діалогове вікно Навігація обкладинками допомагає шукати зображення обкладинок альбомів. Якщо наявні відповідні дані, поля Виконавець/Альбом буде заповнено автоматично. За допомогою списку Джерело можна вибрати один із сайтів для пошуку зображень обкладинок. Адресу із параметрами виконавця і альбому буде показано під назвою сайта. Закодовані значення адрес для виконавця і альбому можна вставляти за допомогою рядків `%u{artist}` і `%u{album}`. Також можна використовувати інші значення з міток, як це описано у розділі щодо налаштовування Kid3, Дії користувача. Додаткові джерела обкладинок можна додавати замінивши запис «Нетипове джерело» назвою нового джерела із наступним натисканням клавіші Enter. Далі, слід вказати адресу джерела і натиснути кнопку Зберегти параметри. Команду-результат буде показано у верхній частині діалогового вікна. Відповідну адресу можна відкрити у браузері натисканням кнопки Перейти. У відповідь буде запущено програму для перегляду інтернету, яку визначено у параметрах, на відповідній сторінці. Далі, зображення обкладинки можна перетягнути з вікна браузера до вікна Kid3. Зображення обкладинки буде записано до відповідного кадру міток позначених файлів.

  Оскільки підтримку перетягування зі скиданням передбачено не у всіх браузерах, а у зображень на сайтах часто є адреса, Kid3 може отримувати адресу URL, а не зображення. Якщо адреса вказує на зображення, програма просто отримає зображення. Втім, якщо адреса посилається на якийсь сторонній вебресурс, її має бути якось перетворено на відповідне зображення. Способи перетворення адреси на зображення визначено у таблиці Видобування адреси. У лівому стовпчику, Відповідність, міститься формальний вираз, який використовується для адреси. Якщо програмі вдасться встановити відповідність виразу адресі, захоплені дужками частини адреси буде встановлено до шаблона у правому стовпчику, Адреса зображення (на місце, яке вказано замінниками \1 тощо). Отриманий формальний вираз має визначати адресу зображення. У цей спосіб можна імпортувати зображення обкладинок із Amazon, Зображень Google тощо за допомогою перетягування зі скиданням. Також можна визначати власні прив'язки зображень.

Файл → Експортувати...

  Діалогове вікно експортування використовують для збереження даних з міток до файла або буфера обміну даними. У верхній частині вікна редактора буде показано попередній перегляд даних, які буде експортовано. Якщо у експортованих даних містяться символи табуляції, дані буде показано у форматі таблиці. Експортування відбуватиметься на сонові міток у поточній теці, відповідно до налаштованого формату.

  Параметри форматування є подібними до параметрів у діалоговому вікні імпортування: у найвищому полі міститься назва (наприклад «CSV unquoted»), далі йде заголовок, який буде записано на початку файла. Далі мають бути дані доріжки (використовується для кожної композиції). Нарешті, завершенням можна скористатися для додавання якогось завершального текстового фрагмента.

  У полях форматування не повинно міститися формальних виразів, як у діалоговому вікні імпортування. Там мають бути лише вирази форматування результату із спеціальними замінниками із символом «%». Ці замінники буде замінено значеннями з відповідних міток. Усе це працює так само, як для форматування назви файла — використовуються ті самі коди разом із додатковими. Можна використовувати не лише коду із наведеного нижче списку, але і інші коди із назвами кадрів міток.

  - %s %{title} Заголовок (твору)

  - %a %{artist} Виконавець

  - %l %{album} Альбом

  - %c %{comment} Коментар

  - %y %{year} Рік

  - %t %{track} Доріжка (наприклад 01)

  - %t %{track.n} Доріжка і шириною поля n (наприклад 001 для %{track.3})

  - %T %{tracknumber} Доріжка (без початкових нулів, наприклад 1)

  - %g %{genre} Жанр

  - %f %{file} Назва файла

  - %p %{filepath} Шлях

  - %{modificationdate} Дата внесення змін

  - %{creationdate} Поточна дата

  - %u %{url} Адреса

  - %{dirname} Назва теки

  - %d %{duration} Тривалість у хвилинах та секундах

  - %D %{seconds} Тривалість у секундах

  - %n %{tracks} Кількість доріжок у альбомі

  - %e %{extension} Суфікс назви файла

  - %O %{tag1} Формат мітки 1 (ID3v1.1 або порожнє значення, якщо мітки не існує)

  - %o %{tag2} Формат мітки 2 (ID3v2.3.0, ID3v2.4.0, ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF або порожнє значення, якщо мітки не існує)

  - %b %{bitrate} Бітова швидкість у кбіт/с

  - %v %{vbr} VBR або порожнє значення (лише для ID3v2.3 з id3lib)

  - %r %{samplerate} Частота дискретизації у Гц

  - %m %{mode} Режим каналів (стерео або з'єднане стерео)

  - %h %{channels} Кількість каналів (1 або 2)

  - %k %{codec} Кодек (наприклад MPEG 1 Layer 3, MP4, Ogg Vorbis, FLAC, MPC, APE, ASF, AIFF, WAV)

  Декілька форматів попередньо визначено. «CSV unquoted» поділяє поля табуляціями. Дані у цьому форматі можна згодом знову імпортувати до Kid3, скориставшись форматом імпортування із тією самою назвою. Якщо скористатися форматом «CSV quoted», програма додасть подвійні лапки навколо усіх значень полів. Додавання лапок має полегшити імпортування до програм для роботи із електронними таблицями. Втім, якщо ви користуєтеся цим форматом, у вмісті полів не повинно бути подвійних лапок. За допомогою пунктів «Extended M3U» та «Extended PLS» можна створити списки відтворення із розширеними атрибутами та абсолютними шляхами до файлів. Варіантом «HTML» можна скористатися для створення сторінки HTML із гіперпосиланнями на композиції. За допомогою пункту «Kover XML» можна створити файл, який можна буде імпортувати до програми для друку обкладинок компакт-дисків Kover. Використання формату «Technical Details» надасть змогу вивести дані щодо бітової швидкості, частоти дискретизації, каналів тощо звукових даних. Нарешті, пункт «Custom Format» навмисно залишено порожнім для визначення нетипового формату. Ви можете самі додавати формати шляхом дописування рядків до файла `kid3rc` у теці налаштувань. Інші формати можна адаптувати до ваших потреб.

  Джерело міток для створення експортованих даних (Мітка 1 або Мітка 2) можна вибрати за допомогою спадного списку. Натисканням кнопок До файла і До буфера обміну можна зберегти дані до файла і до буфера обміну даними, відповідно. Натисканням кнопок Гаразд і Скасувати можна закрити діалогове вікно. Натискання кнопки Гаразд призводить до зберігання поточних параметрів діалогового вікна для наступного використання.

Файл → Створити список відтворення...

  Створити список відтворення. Формат і вміст списку відтворення можна встановити за допомогою різних параметрів.

  Назва списку відтворення може бути Така сама, як назва теки або для її створення можна використати Формат зі значеннями із міток, наприклад, «`%{artist} - %{album}`» — формат назви файла списку відтворення, яка складається із імені виконавця і назви альбому. Коди полів збігаються із кодами для експортування. Змінити список доступних форматів можна за допомогою розділу Формат вкладки Файли у вікні параметрів програми. За допомогою кнопки Створити порожній список відтворення можна створити порожній список відтворення із заданою назвою. Суфікс назви залежатиме від формату списку відтворення.

  Місце зберігання створеного списку відтворення визначається за допомогою спадного списку Створити у.

  Поточна тека

    Список відтворення буде створено у поточній теці. Він міститиме лише файли з поточної теки. Поточною вважається тека, у якій розташовано поточний файл. Якщо позначено декілька файлів, поточним є, ймовірно, останній позначений файл.

  Кожна тека

    Список відтворення буде створено у кожній із тек, у яких зберігаються файли зі списку. Кожен зі списків відтворення міститиме лише файли із відповідної теки.

  Тека найвищого рівня

    Програма створює лише один список відтворення у теці найвищого рівня (тобто теці списку файлів). Цей список відтворення міститиме позначені файли у теці найвищого рівня і усіх її підтеках.

  Значенням Формат списку відтворення може бути M3U, PLS або XSPF.

  Якщо позначено пункт Включити лише позначені файли, до списку відтворення буде включено лише позначені файли. Якщо позначено теку, буде включено усі файли з теки. Якщо цей пункт не буде позначено, до списку відтворення буде включено усі файли.

  Упорядкувати за назвами файлів визначає звичайний випадок, у якому файли упорядковуються за назвою. За допомогою вибору варіанта Упорядкувати за полем мітки можна упорядкувати пункти за рядком форматування зі значеннями з полів мітки. Наприклад, «`%{track.3}`» можна скористатися для упорядковування за номером доріжки («`.3`» використано для отримання трьох цифр із початковими нулями, оскільки відповідні рядки використовуються для упорядковування). Також можна використовувати декілька полів одночасно. Наприклад, за допомогою рядка форматування «`%{genre}%{year}`» можна упорядкувати пункти за рядком, який складається із жанру та року випуску.

  Записи файлів у списку відтворення будуть відносними або абсолютними адресами файлів, залежно від того, який з пунктів, Відносний шлях до файлів у списку відтворення чи Повний шлях до файлів у списку відтворення, було позначено.

  Якщо позначено пункт Записати лише список файлів, список відтворення міститиме лише шляхи до файлів. Щоб створити розширений список відтворення із додатковими даними виберіть варіант Записати дані у форматі.

Файл → Вийти (Ctrl+Q)

  Вихід з програми.

## Меню «Зміни»

Зміни → Позначити все (Alt+A)

  Позначити усі файли.

Зміни → Скасувати вибір (Ctrl+Shift+A)

  Зняти позначення з усіх файлів.

Зміни → Позначити все у теці

  Позначити усі файли у поточній теці.

Зміни → Попередній файл (Alt+↑)

  Позначити попередній файл.

Зміни → Наступний файл (Alt+↓)

  Позначити наступний файл.

Зміни → Пошук... (Ctrl+F)

  Знайти рядки у назвах файлів і мітках. Діалогове вікно Знайти є частиною діалогового вікна Замінити, яке описано нижче.

Зміни → Замінити... (Ctrl+R)

  За допомогою цього пункту можна відкрити діалогове вікно для пошуку і заміни рядків у назвах файлів та мітках. Щоб визначити перелік кадрів, у яких виконуватиметься пошук, зніміть позначку з пункту Позначити все і виберіть кадри, у яких слід виконати пошук. Також можете скористатися параметрами пошуку для пошуку у зворотному напрямку, визначення чутливості пошуку до регістру літер та використання формальних виразів.

  Залежно від кількості файлів, пошук може бути доволі тривалою процедурою. Через це, передбачено можливість його переривання за допомогою закриття цього діалогового вікна.

## Меню «Інструменти»

Інструменти → Застосувати формат назв файлів

  Якщо знято позначку з пункту Автоматично застосувати формат для форматування назви файла у діалоговому вікні налаштувань програми, цим пунктом меню можна скористатися для застосування налаштованого формату до назв позначених файлів. Ним також можна скористатися для перевірки того, чи відповідають назви файлів налаштованому формату: просто застосуйте формат до усіх збережених файлів, а потім перевірте, чи не було внесено зміни до якогось із них (тобто, перевірте, чи не було позначено якийсь із пунктів файлів піктограмою диска на панелі списку файлів).

Інструменти → Застосувати формат мітки

  Якщо знято позначку з пункту Автоматично застосувати формат для форматування мітки у діалоговому вікні налаштувань програми, цим пунктом меню можна скористатися для застосування налаштованого формату до міток позначених файлів. Ним також можна скористатися для перевірки того, чи відповідають мітки файлів налаштованому формату: просто застосуйте формат до усіх збережених файлів, а потім перевірте, чи не було внесено зміни до якогось із них (тобто, перевірте, чи не було позначено якийсь із пунктів файлів піктограмою диска на панелі списку файлів).

Інструменти → Застосувати кодування тексту

  Встановити Кодування тексту, яке вказано на сторінці Параметри → Налаштувати Kid3... → Розділ «Мітки» → Вкладка «Мітка 2» до усіх позначених файлів. Якщо вибрано варіант кодування UTF8, для міток ID3v2.3.0 буде використано UTF16, оскільки у цій версії формату не передбачено підтримки UTF8.

Інструменти → Перейменувати теку...

  За допомогою цього діалогового вікна можна автоматично перейменувати поточну відкриту теку за мітками у файлах. Попередньо визначено декілька форматів, за допомогою яких можна включити до назви теки дані щодо виконавця, альбому та року випуску. Також передбачено можливість визначення нетипового формату та кнопку Змінити для редагування наявних форматів. Для вставлення значень міток до назви теки передбачено такі спеціальні коди:

  - %s %{title} Заголовок (твору)

  - %a %{artist} Виконавець

  - %l %{album} Альбом

  - %c %{comment} Коментар

  - %y %{year} Рік

  - %t %{track} Доріжка (наприклад 01)

  - %t %{track.n} Доріжка і шириною поля n (наприклад 001 для %{track.3})

  - %T %{tracknumber} Доріжка (без початкових нулів, наприклад 1)

  - %g %{genre} Жанр

  - %{dirname} Назва теки (наприклад %{year" "}%{dirname} додасть запис року перед поточною назвою теки)

  - %{max-year} Максимальне знайдене значення року для цієї теки, також можна використовувати із кодами, відмінними від «year»

  - %{min-year} Мінімальне знайдене значення року для цієї теки

  - %{unq-year} Унікальне знайдене значення року для цієї теки або порожнє значення, якщо унікального не знайдено

  Якщо у записі формату буде виявлено роздільник тек, «/», буде створено декілька вкладених тек. Якщо ви хочете створити теку, а не перейменовувати поточну теку, у списку Дія позначте пункт Створити теку, замість Перейменувати теку. Джерелом даних мітки можна вибрати Мітка 1 і Мітка 2, Мітка 1 або Мітка 2. Попередній перегляд виконання дії з перейменування можна бачити у розділах З та До діалогового вікна.

  За допомогою цього пункту можна одночасно перейменувати декілька тек.

Інструменти → Пронумерувати доріжки...

  Якщо номери доріжок у мітках не встановлено, або встановлено помилкові значення, за допомогою цього пункту можна пронумерувати доріжки автоматично за зростанням. Початковий номер можна вказати у діалоговому вікні. Якщо слід пронумерувати лише частину доріжок, слід позначити відповідні пункти у списку файлів.

  Якщо позначено пункт Загальна кількість доріжок, у мітках також буде встановлено кількість доріжок.

  Можлива нумерація доріжок у декількох теках одночасно. Теки має бути розгорнуто і позначено.

  Якщо позначено пункт Скидати лічильник для кожної з тек, нумерація доріжок перезапускатиметься із вказаного числа для кожної теки, якщо позначено декілька тек.

  Діалоговим вікном нумерування доріжок можна також скористатися для форматування наявних номерів доріжок без зміни значень, якщо зняти позначку ліворуч від пункту початковий номер. Загальну кількість доріжок буде додано, якщо позначено відповідний пункт, яким можна скористатися для додавання даних щодо загальної кількості доріжок до усіх позначених файлів. Якщо вам потрібне лише форматування наявних номерів, слід також зняти позначку з цього пункту.

Інструменти → Фільтрувати...

  Фільтруванням можна скористатися для того, щоб наказати програмі показувати лише ті файли, які відповідають певним критеріям. Фільтрування є корисним, якщо ви хочете упорядкувати велику збірку і виконати редагування лише тих файлів, які не відповідають бажаній схемі. У виразі, який визначає, які файли слід показувати, слід використовувати ті самі коди форматування, які використовуються під час форматування назв файлів при імпортуванні та експортуванні даних.

  - %s %{title} Заголовок (твору)

  - %a %{artist} Виконавець

  - %l %{album} Альбом

  - %c %{comment} Коментар

  - %y %{year} Рік

  - %t %{track} Доріжка (наприклад 01)

  - %t %{track.n} Доріжка і шириною поля n (наприклад 001 для %{track.3})

  - %T %{tracknumber} Доріжка (без початкових нулів, наприклад 1)

  - %g %{genre} Жанр

  - %f %{file} Назва файла

  - p %{filepath} Абсолютний шлях до файла

  - %e %{extension} Суфікс назви файла

  - %O %{tag1} Формат мітки 1 (ID3v1.1 або порожнє значення, якщо мітки не існує)

  - %o %{tag2} Формат мітки 2 (ID3v2.3.0, ID3v2.4.0, ID3v2.2.0, ID3v2.2.1, Vorbis, APE, MP4, ASF або порожнє значення, якщо мітки не існує)

  - %b %{bitrate} Бітова швидкість у кбіт/с

  - %v %{vbr} VBR або порожнє значення (лише для ID3v2.3 з id3lib)

  - %r %{samplerate} Частота дискретизації у Гц

  - %m %{mode} Режим каналів (стерео або з'єднане стерео)

  - %h %{channels} Кількість каналів (1 або 2)

  - %k %{codec} Кодек (наприклад MPEG 1 Layer 3, MP4, Ogg Vorbis, FLAC, MPC, APE, ASF, AIFF, WAV)

  - %w %{marked} Позначення, дорівнює 1, якщо файл містить позначку (наприклад, через обрізання або порушення стандартів), є порожнім, якщо позначок немає

  - %1a %{artist}, ... Використовувати префікс 1 для отримання значень мітки 1

  - %2a %2{artist}, ... Використовувати префікс 2 для отримання значень мітки 2

  Ці коди буде замінено значеннями із файла, а рядки-результати може бути порівняно за допомогою таких операцій:

  - s1 equals s2: виконується, якщо s1 дорівнює s2.

  - s1 contains s2: виконується, якщо s1 містить s2, тобто s2 є підрядком s1.

  - s matches re: виконується, якщо s відповідає формальному виразу re.

  Вирази, обчислення яких дає значення true, буде замінено на 1, ті, обчислення яких дає false, — на 0. Значення істинності (true) може бути представлене як 1, true, on або yes, значення хибності (false) — як 0, false, off або no. Булевими діями є not, and, or (у цьому порядку пріоритетності). Ці дії можна групувати за допомогою дужок.

  Ось декілька попередньо визначених правил фільтрування, які можуть слугувати прикладами для ваших власних виразів:

  Всі

    Те, що список файлів підлягає фільтруванню, позначається записом «[відфільтровано]» у заголовку вікна. За допомогою цього пункту можна зняти фільтрування, і усі файли буде знову показано. У відповідному фільтрі використовується порожній вираз, але значення «true» для фільтра теж призведе до того самого результату.

  Невідповідність міток назвам файлів

    `not (%{filepath} contains "%{artist} - %{album}/%{track} %{title}")`

    Перевіряє, чи відповідає шлях до файла формату назви файла. Це правило автоматично синхронізується зі змінами у форматі назв файлів.

  Немає мітки 1

    `%{tag1} equals ""`

    Показує лише ті файли, у яких немає мітки 1.

  Немає мітки 2

    `%{tag2} equals ""`

    Показує лише ті файли, у яких немає мітки 2.

  Мітка ID3v2.3.0

    `%{tag2} equals "ID3v2.3.0"`

    Показує лише ті файли, у яких є мітка ID3v2.3.0.

  Мітка ID3v2.4.0

    `%{tag2} equals "ID3v2.4.0"`

    Показує лише ті файли, у яких є мітка ID3v2.4.0.

  Мітка 1 != Мітка 2

    `not (%1{title} equals %2{title} and %1{album} equals %2{album} and %1{artist} equals %2{artist} and %1{comment} equals %2{comment} and %1{year} equals %2{year} and %1{track} equals %2{track} and %1{genre} equals %2{genre})`

    Показує файли, у яких значення мітки 1 не збігається зі значенням мітки 2.

  Мітка 1 == Мітка 2

    `%1{title} equals %2{title} and %1{album} equals %2{album} and %1{artist} equals %2{artist} and %1{comment} equals %2{comment} and %1{year} equals %2{year} and %1{track} equals %2{track} and %1{genre} equals %2{genre}`

    Показує файли, у яких значення мітки 1 і значення мітки 2 збігаються.

  Незавершені

    `%{title} equals "" or %{artist} equals "" or %{album} equals "" or %{year} equals "" or %{tracknumber} equals "" or %{genre} equals ""`

    Показує файли, у яких значення стандартних міток (заголовок, виконавець, альбом, дата, номер композиції, жанр) є порожніми.

  Зображення не вказано

    `%{picture} equals ""`

    Показує лише ті файли, у яких немає зображення.

  Позначено

    `not (%{marked} equals "")`

    Показує лише файли, які було позначено, оскільки у них порушено стандарт ID3, їх обрізано або зображення обкладинки альбому у них є надто великим.

  Нетиповий фільтр

    Виберіть цей пункт для додавання власного фільтра. Наприклад, якщо ви хочете створити фільтр, який пропускав би лише виконавців, назва яких починається із «The», замініть «Нетиповий фільтр» назвою «The-групи» і натисніть клавішу Enter. Далі, вставте такий вираз до поля для редагування тексту:

    `%{artist} відповідає «The.*»`

    Далі, натисніть кнопку Зберегти параметри. Натисніть кнопку Застосувати для фільтрування списку файлів. Усі оброблені файли буде показано у текстовому форматі із додаванням до запису символу «+», якщо файл проходить фільтрування, і символу «-», якщо не проходить. Після завершення фільтрування буде показано лише ті файли, запис виконавця у яких починається із рядка «The», у заголовку вікна ви побачите запис «[відфільтровано]».

Інструменти → Перетворити ID3v2.4 на ID3v2.3

  Якщо у позначених файлах зберігаються мітки ID3v2.4, їх буде перетворено до формату ID3v2.3. Кадри, підтримки яких не передбачено у TagLib, буде відкинуто. Перетворення буде виконано лише для файлів без незбережених змін.

Інструменти → Перетворити ID3v2.4 на ID3v2.3

  Якщо у позначених файлах зберігаються мітки ID3v2.4, їх буде перетворено до формату ID3v2.3. Перетворення буде виконано лише для файлів без незбережених змін.

Інструменти → Відтворити

  Відкрити просту панель інструментів для відтворення звукових файлів. На панелі буде показано кнопки для простих дій (Старт/Пауза, Зупинити відтворення, Попередня композиція, Наступна композиція, Закрити), повзунки для позиціювання та гучності та засіб показу поточної позиції. Якщо позначено декілька файлів, буде відтворено позначені композиції. Якщо нічого не позначено, програма відтворить усі файли.

  Перемкнутися між показом часу, що минув, і часу, що залишився, можна клацанням на дисплеї.

## Меню «Параметри»

Параметри → Показати пенал

  Вмикає або вимикає показ панелі інструментів.

Параметри → Показати смужку стану

  Вмикає або вимикає показ смужки стану, де програма показує відомості щодо поступу виконання довготривалих дій, зокрема відкриття або збереження теки із файлами.

Параметри → Показати зображення

  Вмикає або вимикає попередній показ зображення обкладинки альбому.

Параметри → Автоматично ховати мітки

  Якщо цей пункт позначено, програма автоматично ховатиме порожні мітки. Розділи Файл, Мітка 1 і Мітка 2 можна згортати і розгортати вручну за допомогою натискання відповідних кнопок -/+.

Параметри → Налаштувати скорочення...

  Відкрити діалогове вікно для визначення клавіатурних скорочень для більшості із функціональних можливостей програми. Клавіатурні скорочення можна призначити навіть для дій, які не мають відповідних пунктів меню або кнопок, наприклад для дій з переходу до наступного файла, попереднього файла або позначення усіх файлів.

Параметри → Налаштувати Kid3...

  Відкрити діалогове вікно налаштовування, у якому передбачено сторінки налаштовування обробки міток, файлів, дій користувача та параметрів мережі.

  Специфічні для міток параметри зібрано на сторінці Мітки, яку поділено на чотири вкладки: Мітка 1, Мітка 2, Мітка 3 і Усі мітки.

  Якщо позначено пункт Позначати обрізані поля, обрізані у ID3v1.1 поля буде позначено червоним кольором. Текстові поля у ID3v1.1 можуть містити не більше 30 символів, а поле коментаря — не більше 28 символів. Крім того, передбачено обмеження на поля жанру та номерів доріжок. Тому ці поля може бути обрізано при імпортуванні або перетворенні із ID3v2. Обрізані поля і пункт файла буде позначено червоним кольором. Позначення буде знято після редагування відповідного поля.

  За допомогою поля Кодування тексту для міток ID3v1 можна встановити набір символів, який буде використано для вмісту міток ID3v1. Стандартним кодуванням є ISO-8859-1, тому рекомендуємо не змінювати це значення. Втім, іноді кодування є іншим, отже, його можна встановити за допомогою цього пункту, щоб потім мітки ID3v1 можна було скопіювати до ID3v2, де передбачено підтримку Unicode.

  За допомогою пункту Використати формат доріжка/загальна кількість доріжок можна керувати тим, буде містити поле номера доріжки у мітках ID3v2 простий номер доріжки чи номер доріжки із загальною кількістю доріжок у теці.

  Якщо позначено пункт Жанр у текстовому форматі, а не у форматі числового рядка, усі записи жанрів у мітках ID3v2 буде збережено у текстовому форматі, навіть якщо існує відповідний код для жанрів ID3v1. Якщо цей пункт не позначено, записи жанрів, для яких існують коди ID3v1, буде збережено у форматі числа — коду жанру (у дужках для ID3v2.3). Отже, жанр «метал» буде збережено як «Metal» або «(9)», залежно від того, чи позначено цей пункт. Записи жанрів, яких немає у списку жанрів ID3v1, завжди зберігатимуться у форматі текстового рядка. Цей пункт налаштувань призначено для забезпечення сумісності із пристроями, які не здатні належним чином обробляти коди жанрів.

  Якщо позначено пункт Файли WAV із фрагментом id3 нижнім регістром, фрагмент RIFF, який використовується для зберігання міток ID3v2 у файлах WAV, матиме назву «id3 », а не «ID3 ». Типово, у Kid3 та інших програмах, у яких використано TagLib, можна використовувати обидва варіанти — із малими і великими літерами при читанні даних файлів WAV, але для запису міток ID3v2 до файлів WAV «ID3 ». Оскільки існують програми, у яких передбачено обробку лише варіанта «id3 » (наприклад JRiver Media Center і foobar2000), ви можете скористатися цим пунктом для створення міток, які можна буде прочитати у відповідних програмах.

  Якщо буде позначено пункт Позначати порушення стандарту, програма позначатиме поля, у яких виявлено порушення стандарту ID3v2, червоним кольором. Подробиці щодо порушення буде показано у форматі підказки:

  - Не повинна повторюватися

  - Не можна використовувати символ нового рядка

  - Не можна використовувати символ повернення каретки

  - Поле власника має бути непорожнім

  - Має бути числовим

  - Має бути числовим або «число/загалом»

  - Форматом є ДДММ

  - Форматом є ГГХХ

  - Формат є РРРР

  - Має починатися із року та символу пробілу

  - Має бути записом дати і часу у форматі ISO 8601

  - Має бути музичним ключем — 3 символи, A-G, b, #, m, o

  - Має містити код мови за ISO 639-2, 3 малі літери

  - Має бути кодом ISRC із 12 символів

  - Має бути списком рядків, відокремлених «|»

  - Містить зайвий пробіл

  Документи щодо стандартів ID3 у мережі:

  - Версія міток ID3 2.3.0

  - Версія міток ID3 2.4.0 — основна структура

  - Версія міток ID3 2.4.0 — власні кадри

  За допомогою пункту Кодування тексту можна визначити типове кодування, яке буде використано для кадрів ID3v2. Можна встановити значення ISO-8859-1, UTF16 або UTF8. Значення UTF8 не можна використовувати для кадрів ID3v2.3.0. Якщо ви встановите це значення для таких кадрів, програма використає замість нього UTF16. Для кадрів ID3v2.4.0 можна використовувати усі три кодування.

  За допомогою пункту Версія, яку буде використано для нових міток можна визначити версію для новостворених міток ID3v2 — 2.3.0 або 2.4.0.

  Кількість цифр номера доріжки — кількість цифр у полях номерів доріжок. Для доповнення номера доріжок до бажаної кількості цифр буде використано нулі. Наприклад, якщо встановлено значення кількості цифр 2, для доріжки із номером 5 буде встановлено значення «05».

  Спадний список Назва поля коментаря стосується лише файлів Ogg/Vorbis і FLAC. За його допомогою можна встановити назву поля, яке використовуватиметься для коментарів. У різних програмах, здається, використовують різні назви. Наприклад, у xmms використано назву «`COMMENT`», а в Amarok — «`DESCRIPTION`».

  Формат зображень у файлах Ogg/Vorbis визначається за допомогою поля Назва поля зображень, значеннями якого можуть бути `METADATA_BLOCK_PICTURE` або `COVERART`. Перша з назв є офіційним стандартом — використовується той самий формат, що і для зображень у мітках FLAC. `COVERART` є раннім неофіційним способом включення зображень до коментарів у файлах Vorbis. Цим форматом можна скористатися для забезпечення сумісності із застарілими програвачами.

  Якщо позначено пункт Позначати, якщо більше за (у байтах), програма позначатиме червоним кольором пункти файлів, у яких розмір вбудованого зображення обкладинки у байтах перевищує вказане значення. Цим пунктом можна скористатися для пошуку файлів, у яких містяться надто великі зображення, показ яких не передбачено у деяких програмах і програвачах. Типовим значенням граничного розміру є 131072 байтів (128 кБ).

  Полем Нетипові жанри можна скористатися для визначення жанрів, яких немає у стандартному списку жанрів, наприклад, жанру «Gothic Metal». Такі нетипові жанри буде показано у спадному списку Жанр на панелі Мітка 2. Для міток ID3v1.1 можна використовувати лише записи жанрів зі стандартного списку.

  Списком нетипових жанрів можна також скористатися для звуження списку жанрів, які будуть доступними зі спадного списку Жанр до типового набору. Якщо у вашій збірці здебільшого міститься музика жанрів метал, готичний метал, старовинна музика та хард-рок, ви можете ввести саме ці жанри і позначити пункт Показувати лише нетипові жанри. Після цього у спадному списку Жанр на панелі Мітка 2 буде показано лише ці чотири жанри, і вам не доведеться шукати їх у повному списку жанрів. У нашому прикладі у списку мітки 1 буде показано лише жанри «Metal» і «Hard Rock», оскільки лише ці два нетипових жанри є у списку стандартних жанрів. Якщо пункт Показувати лише нетипові жанри не буде позначено, пункти нетипових жанрів буде розміщено наприкінці списку жанрів.

  У Нетипових кадрах можна визначити до восьми нетипових назв кадрів, якими згодом можна буде користуватися як уніфікованими кадрами, наприклад, як кадрами швидкого доступу.

  За допомогою списку Кадри швидкого доступу можна визначити типи кадрів, які завжди буде показано у розділі Мітка 2. Дані для таких кадрів можна буде додавати без попереднього натискання кнопки Додати. Порядок цих кадрів швидкого доступу можна змінити перетягуванням зі скиданням пунктів у списку.

  Значення у спадному списку Назва поля номера доріжки стосується лише даних INFO RIFF. За його допомогою можна встановити назву поля, яке використовуватиметься для номерів доріжок. Назва поля номерів доріжок не визначається у початковому стандарті RIFF. У деяких програмах використовується «`ITRK`», у інших — «`IPRT`».

  На панелі Формат міток містяться пункти, які пов'язано із форматуванням міток. Якщо позначено пункт Автоматично застосовувати формат, налаштування форматування буде використано автоматично під час редагування у полях для редагування тексту. Пункт Перевірка вмикає або вимикає засоби перевірки значень номера доріжки за загальною кількістю доріжок та значень дати і часу. За допомогою списку Перетворення регістрів можна застосувати до текстових даних такі режими перетворення: Без змін, Усі малі, Усі великі, Верхній регістр для першої літери та Усі перші літери верхнім регістром. Локаль для перетворення літер між верхнім і нижнім регістрами можна вибрати нижче за допомогою спадного списку. У списку замінників можна вибрати довільне перетворення рядків. Щоб додати нове перетворення, позначте комірку у стовпчику З, впишіть до неї текст, який слід замінити, а потім перейдіть до відповідної комірки у стовпчику На і впишіть рядок, на який слід замінити раніше вказаний текст. Якщо текст, який слід замінити починається і завершується символом похилої риски («/»), програма вважатиме, що вказано формальний вираз. Якщо у формальному виразі використано групи захоплення у круглих дужках, відповідні їм замінники \1, \2, ... у комірці стовпчика На буде замінено на рядок, який було захоплено у відповідній за номером групі. Щоб вилучити перетворення, встановіть для вмісту відповідної комірки у стовпчику З порожнє значення (наприклад, натисніть клавішу пробілу, а потім натисніть клавішу Backspace). Крім того, вставляти і вилучати рядки можна за допомогою контекстного меню, яке буде відкрито, якщо ви наведете вказівник миші на таблицю і клацнете правою кнопкою миші. Перетворення виконуватимуться, лише якщо позначено пункт Заміна рядків.

  У таблиці Оцінка містяться дані прив'язки оцінки у зірочках до значень, які зберігатимуться у мітці. Список кадрів із даними щодо оцінок можна знайти у рядку «Оцінка» списку кадрів. Для цих кадрів можна вказати оцінку від однієї до п'яти зірочок. У різних форматах міток та різних програмах використовуються різні значення для прив'язки цієї оцінки у зірочках до значення, яке зберігається у мітці. Щоб показане Kid3 значення було правильним, використовується ця таблиця. Для застосування прив'язки програма шукає кадр із назвою із першого стовпчика, наприклад «RATING» у коментарях Vorbis або «IRTD» в INFO RIFF. Для міток ID3v2 використовується комбіноване значення, яке складається із ідентифікатора кадру «POPM» з кадру Popularimeter та його поля «Email», відокремленого крапкою. Тому існують різні значення назв для ID3v2, наприклад «POPM.Windows Media Player 9 Series» для прив'язки до значень у Windows Media Player та Explorer, і прості «POPM» для кадрів POPM із порожнім полем «Email». Оскільки може існувати декілька значень «POPM», важливим є їхні порядок. Коли Kid3 додає новий кадр Popularimeter, програма використовує перший запис «POPM» для визначення значення, яке слід записати до поля «Email». Це значення визначає прив'язку, яку буде використано для оцінок у зірочках. Перший запис також використовується, якщо не буде знайдено ніякого значення. Тому перший запис у таблиці є типовим записом.

  Окрім стовпчика Назва, у якому містяться назви значень, у таблиці передбачено стовпчики від 1 до 5 для значень параметрів, які буде записано до мітки, якщо доріжці буде призначено відповідну оцінку у зірочках. З іншого блоку, значення визначають кількість зірочок, які буде показано для значення, яке зберігається у кадрі. Нехай, наприклад, у рядку таблиці містяться значення 1, 64, 128, 196, 255. Порогові значення для кількості зірочок, які буде показано для оцінок, які лежать між цими значеннями, сумісні із тими, які використовують у Windows® Explorer.

  Таблиця 3.2. Запис у таблиці оцінок

  Назва | 1 | 2 | 3 | 4 | 5
  --- | --- | --- | --- | --- | ---
  POPM | 1 | 64 | 128 | 196 | 255
  Діапазон | 1-31 | 32-95 | 96-159 | 160-223 | 224-255

  На сторінці Файли можна позначити пункт Завантажувати останні відкриті файли, щоб наказати Kid3 під час наступного запуску відкривати і позначати останній вибраний файл. Пункт Не змінювати часові позначки файлів можна позначити, щоб програма зберігала часову позначку під час внесення змін до файла. За допомогою пункту Назва файла для обкладинки можна вказати назву файла, який буде використано як типове зображення для вбудовування при експортуванні даних до файла. За допомогою пункту Кодування тексту (експортування, список відтворення) можна визначити кодування, яке програма використовуватиме при записі даних до файлів. Типове кодування (System) можна, наприклад, змінити, якщо ви маєте намір використовувати списки відтворення на іншому пристрої.

  Якщо позначено пункт Позначати зміни, змінені поля буде позначено сірим тлом для мітки.

  Розділ Список файлів визначає те, які файли буде показано на панелі списку файлів. Пунктом Фільтр можна скористатися для обмеження спектра записів у списку до файлів із підтримуваними суфіксами назв. Щоб явним чином вказати, які теки слід показати у списку файлів, або виключити певні теки, можна скористатися пунктами Включити теки та Виключити теки. У відповідних полях можна вказати вирази шаблонів, наприклад `*/Музика/*`, щоб включити лише вміст теки `Музика`, або `*/iTunes/*`, щоб виключити теку iTunes зі списку файлів. Якщо потрібно вказати декілька виразів для фільтрування, вирази слід відокремити пробілом або крапкою з комою.

  За допомогою кнопок Назва файла з мітки і Мітка з назви файла у розділі Формат можна відкрити діалогові вікна для редагування форматів, які будуть доступними у спадних списках Формат (при натисканні кнопок зі стрілками вгору і вниз), які можна знайти у розділі Файл головного вікна програми.

  Кнопкою Список відтворення можна скористатися для редагування форматів назв файлів, доступ до яких здійснюється за допомогою вікна Створення списку відтворення.

  У розділі Формат назв файлів містяться пункти для форматування назв файлів. Це ті самі пункти, які доступні у розділі Формат міток.

  Крім того, можна встановити значення Максимальна довжина для назв файлів. У більшості сучасних файлових систем встановлено обмеження у 255 символів, але якщо вам потрібно записати файли на компакт-диск, вам слід встановити обмеження у 64 символів. Якщо позначено пункт Використовувати для назв списків відтворення і тек, формат назв файлів буде використано при створенні списків відтворення та перейменуванні тек.

  На сторінці Дії користувача розташовано таблицю із командами, доступ до яких можна отримати з контекстного меню панелі списку файлів. Для відповідальних дій, зокрема вилучення файлів, рекомендуємо позначати пункт у стовпчику Підтвердження, щоб програма показувала діалогове вікно підтвердження дії до її виконання. Можете позначити пункт у стовпчику Виведення, щоб переглянути виведені командою до консолі дані (стандартне виведення і виведення помилок). У стовпчику Назва буде показано пункт команди, який буде показано у контекстному меню. У стовпчику Команда буде наведено рядок команди, яку буде виконано. Аргументи можна передавати за допомогою таких кодів:

  - %F %{files} Шляхи до файлів (список, якщо позначено декілька файлів)

  - %f %{file} Шлях до окремого файла

  - %uF %{urls} Адреси (список, якщо позначено декілька файлів)

  - %uf %{url} Адреса окремого файла

  - %d %{directory} Тека

  - %s %{title} Заголовок (твору)

  - %a %{artist} Виконавець

  - %l %{album} Альбом

  - %c %{comment} Коментар

  - %y %{year} Рік

  - %t %{track} Доріжка (наприклад 01)

  - %t %{track.n} Доріжка і шириною поля n (наприклад 001 для %{track.3})

  - %T %{tracknumber} Доріжка (без початкових нулів, наприклад 1)

  - %g %{genre} Жанр

  - %b %{browser} Команда для запуску браузера

  - %q %{qmlpath} Базова тека супутніх файлів QML

  Можна встановити як команду спеціальний код — @separator — для вставляння роздільника у контекстне меню дій користувача. Щоб додати пункти меню як підменю, додайте навколо них команди @beginmenu і @endmenu. Назва підменю визначатиметься стовпчиком Name команди @beginmenu.

  Для виконання скриптів QML як назву команди слід використовувати @qml. Шлях до скрипту QML передається як параметр. Скрипти з пакунка з програмою зберігаються у теці `%{qmlpath}/script/` (у Linux® це типово `/usr/share/kid3/qml/script/`, у Windows — `qml/script/` у теці встановлення, а у macOS® у теці програми — `kid3.app/Contents/Resources/qml/script/`). Нетипові скрипти можуть зберігатися у будь-якій теці. Якщо у коді QML використовуються компоненти графічного інтерфейсу, замість @qml слід використовувати @qmlview. Скрипту QML передаються додаткові параметри, доступ до яких надає функція `getArguments()`. Огляд деяких функцій і властивостей, які доступні у QML можна знайти у додатку щодо інтерфейсу QML.

  Команду, яку буде вставлено замість %{browser}, можна визначити у полі Переглядач інтернету, яке розташовано вище. Командами, які починаються з %{browser} можна скористатися для отримання з інтернету даних щодо звукових файлів. Приклад:

      %{browser} http://lyricwiki.org/%u{artist}:%u{title}

  Ця команда надішле запити щодо тексту поточної пісні до LyricWiki. Літера «u» у %u{artist} та %u{title} означає, що це закодовані у форматі URL дані щодо виконавця %{artist} та назви композиції %{title}. Ви можете без проблем створити власні запити у подібний спосіб. Наприклад, створити запит для пошуку зображень у Google:

      %{browser} http://images.google.com/images?q=%u{artist}%20%u{album}

  Щоб додати зображення обкладинки альбому до мітки 2, ви можете просто пошукати зображення у Google або Amazon за допомогою наведених вище команд. Зображення можна буде додати до мітки перетягуванням зі скиданням. Ви також можете додати зображення за допомогою натискання кнопки Додати, потім вибрати кадр «Зображення» і імпортувати файл зображення або вставити зображення з буфера обміну даними. Кадри зображень передбачено у мітках ID3v2, MP4, FLAC, Ogg та ASF.

  Щоб додати записи до таблиці або вилучити їх з неї, можна скористатися контекстним меню.

  На сторінці Мережа передбачено лише одне поле для вставляння адреси проксі сервера та додаткового визначення порту, відокремленого від адреси двокрапкою. Проксі-сервер буде використано при імпортування даних з інтернет сервера, якщо позначено відповідний пункт.

  За допомогою сторінки Додатки можна вмикати або вимикати доступні додатки. Додатки поділено на два розділи. У списку Додатки метаданих і пріоритетність містяться пункти додатків для підтримки форматів звукових файлів. Порядок додатків у списку є важливим, оскільки програма використовує їх за списком з першої позиції до останньої. Підтримку деяких форматів реалізовано за допомогою декількох додатків, тому програма відкриватиме файли за допомогою першого додатка зі списку, у якому передбачено підтримку відповідних файлів. Підтримку більшості форматів передбачено у додатку TaglibMetadata. Якщо пункт цього додатка перебуває на вершині списку, його буде використано для відкриття більшості файлів. Якщо ви хочете скористатися іншим додатком для певного формату файлів, вам слід розмістити його пункт перед пунктом додатка TaglibMetadata у списку. Подробиці щодо додатків метаданих та відомості щодо того, чому варто використовувати той чи інший додаток замість TagLib наведено нижче.

  - Id3libMetadata: використовує id3lib для міток ID3v1.1 і ID3v2.3 у файлах MP3, MP2, AAC. Має дещо ширший спектр підтримуваних типів файлів за TagLib.

  - OggFlacMetadata: використовує libogg, libvorbis, libvorbisfile для файлів Ogg і, додатково, libFLAC++ і libFLAC для файлів FLAC. Ці бібліотеки є офіційними бібліотеками підтримки відповідних форматів.

  - TaglibMetadata: використовує бібліотеку TagLib, у якій реалізовано підтримку багатьох форматів файлів звукових даних. Може бути використана для усіх файлів звукових даних, підтримку яких передбачено у Kid3.

  - Mp4v2Metadata: mp4v2 було використано у початкових версіях Kid3 для забезпечення роботи із файлами M4A. Можна скористатися, якщо виникають проблеми із підтримкою M4A у TagLib.

  У розділі Доступні додатки буде наведено список решти додатків. Порядок додатків у цьому списку не є важливим. Додатки можна вмикати і вимикати за допомогою відповідних полів для позначок.

  - AmazonImport: використовується для пункту Імпортувати з Amazon....

  - DiscogsImport: використовується для пункту Імпортувати з Discogs....

  - FreedbImport: використовується для пункту Імпортувати з gnudb.org....

  - MusicBrainzImport: використовується для пункту Імпортувати з Випуск MusicBrainz....

  - AcoustidImport: використовується для пункту Імпортувати з Відбиток MusicBrainz..., працездатність якого залежить від бібліотек Chromaprint та libav.

  Додатки, які вимкнено, не завантажуватимуться. Цим можна скористатися для оптимізації вживання ресурсів та часу запуску. Змінені на цій сторінці параметри набудуть чинності лише після перезапуску Kid3.

## Меню «Довідка»

Довідка → Підручник з Kid3

  Відкриває цей підручник.

Довідка → Про Kid3

  Вивести коротку інформацію щодо Kid3.

# Розділ 4. kid3-cli

## Команди

kid3-cli є інтерфейсом командного рядка до Kid3. Якщо як аргумент команди буде використано шлях до теки, програма відкриє цю теку. Якщо буде вказано декілька шляхів, буде відкрито найдовшу спільну теку із цих шляхів, а вказані у шляхах файли буде позначено. Наступні команди оброблятимуть позначені файли. Команди можна вказувати у командному рядку за допомогою параметра `-c`. Якщо вказано декілька команд, їх буде виконано у вказаному порядку. Якщо команди вносять зміни до файлів, ці зміни буде збережено під час завершення роботи програми. Якщо програмі не буде передано параметрів-команд, kid3-cli буде запущено в інтерактивному режимі. Ви зможете вводити команди і працювати із поточними позначеними файлами. У наступних розділах наведено список усіх доступних команд.

### Довідка

`help` [`НАЗВА-КОМАНДИ`]

Вивести довідкові відомості щодо параметрів команди `НАЗВА-КОМАНДИ` або усіх команд, якщо назву команди не вказано.

### Час очікування

`timeout` [ default | off | `ЧАС` ]

Перезаписати типове значення часу очікування на виконання команди. Виконання команд командного інтерфейсу буде перервано, якщо буде перевищено вказаний час очікування. Типовим часом очікування є 10 секунд для команд ls і albumart, 60 секунд для команд autoimport і filter і 3 секунди для усіх інших команд. Якщо вам потрібно обробити багато файлів, ці часи очікування є надто жорсткими, тому ви можете встановити час очікування для усіх команд рівним `ЧАС` мілісекунд, вимкнути час очікування взагалі або лишити типові значення для часів очікування.

### Вийти з програми

`exit` [force]

Завершити роботу програми. Якщо деякі зі змінених файлів не збережено, для завершення роботи потрібен параметр `force`.

### Змінити теку

`cd` [`ТЕКА`]

Якщо значення `ТЕКА` не буде вказано, перехід буде здійснено до домашньої теки користувача. Якщо теку вказано, перехід відбудеться до вказаної теки. Якщо вказано один або декілька шляхів до файлів, перехід буде здійснено до теки, у якій зберігаються усі ці файли, а пункти файлів буде позначено.

### Вивести назву поточної теки

`pwd`

Вивести назву поточного робочої теки.

### Список тек

`ls`

Показати вміст поточної теки. Відповідає списку файлів у основному графічному інтерфейсі Kid3. П'ять символів перед назвою файла показують його поточний стан.

- `>` Файл позначено.

- `*` Файл змінено.

- `1` Файл містить мітку 1; якщо це не так, буде показано «`-`».

- `2` Файл містить мітку 2; якщо це не так, буде показано «`-`».

- `3` Файл містить мітку 3; якщо це не так, буде показано «`-`».

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

    > 12- 02 We Only Got This One.mp3
     *1-- 03 Outro.mp3

У нашому прикладі усі файли містять мітку 1, другий файл також містить мітку 2 і його позначено. До третього файла внесено зміни.

### Збереження змінених файлів

`save`

### Вибір файла

`select` [ all | none | first | previous | next | `ФАЙЛ`... ]

Щоб позначити усі файли, введіть команду `select all`. Щоб зняти позначення з усіх файлів, скористайтеся командою `select none`. Щоб пройтися усіма файлами у поточній теці, спочатку віддайте команду `select first`, а потім пересувайтеся списком за допомогою команд `select next` (перехід до наступного) та `select previous` (перехід до попереднього). Додати окремі файли до поточного позначення можна вказавши їхні назви безпосередньо. Можна використовувати символи замінники, наприклад, `select *.mp3` призведе до позначення усіх файлів MP3 у поточній теці.

    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` [`НОМЕРИ-МІТОК` ]

У багатьох командах передбачено необов'язковий параметр `НОМЕРИ-МІТОК`, який вказує, над якою міткою виконується команда — 1, 2 чи 3. Якщо цей параметр не вказано, буде використано типові номери міток, які можна вказати за допомогою цієї команди. Одразу після запуску буде встановлено значення `12`, тобто дані буде прочитано із мітки 2, якщо таку буде виявлено, і з мітки 1, якщо мітки 2 виявлено не буде; зміни вноситимуться до мітки 2. Ви можете встановити для змінної ``НОМЕРИ-МІТОК`` значення `1`, `2` або `3`, щоб працювати лише із відповідною міткою. Якщо параметр вказано не буде, у відповідь на команду буде показано поточне значення параметра номерів міток.

### Отримання кадру міток

`get` [ all | `НАЗВА-КАДРУ` ] [`НОМЕРИ-МІТОК`]

За допомогою цієї команди можна прочитати значення у певному кадрі мітки або отримати відомості щодо усіх кадрів мітки (якщо не вказано аргумент або вказано `all`). Змінені кадри буде позначено символом «`*`».

    kid3-cli> get
    Файл: MPEG 1 Layer 3 192 kbps 44100 Hz Joint Stereo
      Назва: 01 Intro.mp3
    Мітка 1: ID3v1.1
      Заголовок     Intro
      Виконавець    One Hit Wonder
      Альбом        Let's Tag
      Дата          2013
      Номер доріжки 1
      Жанр          Pop
    kid3-cli> get title
    Intro

Щоб зберегти вміст кадру зображення до файла, скористайтеся командою

    get picture:'/шлях/до/теки.jpg'

Щоб зберегти синхронізований текст пісні до файла LRC, скористайтеся командою

    get SYLT:'/шлях/до/тексту_пісні.lrc'

Можна отримати дані лише щодо одного вказаного поля кадру, наприклад `get POPM.Email` для поля Email у кадрі Popularimeter. Якщо у файлі зберігається декілька кадрів одного типу, різні кадри можна індексувати квадратними дужками. Наприклад, дані першого з виконавців у коментарі Vorbis можна отримати за допомогою команди `get performer[0]`, а дані другого — за допомогою команди `get performer[1]`.

Псевдополем із назвою «selected» можна скористатися для перевірки, чи позначено кадр. Наприклад, `get artist.selected` поверне `1`, якщо кадр виконавця позначено, і `0`, якщо ні.

Для отримання значення поля «rating» може бути використано псевдополе «ratingstars», яке містить специфічне для формату значення, що відповідає кількості зірочок (від 0 до 5). При використанні «rating» буде повернуто внутрішнє значення.

### Встановити обгортку мітки

`set` {`НАЗВА-КАДРУ`} {`ЗНАЧЕННЯ-КАДРУ`} [`НОМЕРИ-МІТОК`]

Ця команда встановлює значення вказано кадру мітки. Якщо значення `ЗНАЧЕННЯ-КАДРУ` є порожнім, кадр буде вилучено.

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

Щоб встановити вміст кадру зображення з файла, скористайтеся командою

    set picture:'/шлях/до/теки.jpg' 'Опис зображення'

Щоб використати синхронізований текст пісні з файла LRC, скористайтеся командою

    set SYLT:'/шлях/до/тексту_пісні.lrc' 'Опис тексту пісні'

Щоб встановити певне поле у кадрі, слід вказати назву поля після крапки. Наприклад, щоб встановити значення поля лічильника у кадрі Popularimeter, скористайтеся командою

    set POPM.Counter 5

Можливим застосуванням до специфікації полів є випадок, коли вам потрібно створити нетиповий кадр TXXX зі описом «rating», замість стандартного кадру Popularimeter (такі оцінки використовуються у деяких додатках). Ви можете створити такий кадр оцінки TXXX за допомогою kid3-cli. Втім, спершу вам слід створити кадр TXXX із описом «rating», а потім вже встановити значення оцінки для цього кадру.

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

Перша команда вилучає наявний кадр POPM, оскільки якщо такий кадр існує, `set rating 5` запише значення до кадру POPM, а не до кадру TXXX. Іншим варіантом встановлення значення є команда `set TXXX.Text 5`, але вона працюватиме, лише якщо немає ніяких інших кадрів TXXX.

Для встановлення декількох кадрів однакового типу можна вказати індекс у дужках. Цим можна скористатися, наприклад, для встановлення декількох акомпаніаторів у коментарі Vorbis. Приклад:

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

Для позначення певних кадрів до дій з копіювання, вставляння або вилучення, можна скористатися псевдоназвою поля «selected». Зазвичай, буде позначено усі кадри. Щоб зняти позначення з усіх кадрів, скористайтеся командою `set '*.selected' 0`. Після цього, наприклад, можна віддати команду `set artist.selected 1`, щоб позначити лише кадр виконавця.

Для встановлення значення поля «rating» може бути використано псевдополе «ratingstars», яке містить специфічне для формату значення, що відповідає кількості зірочок (від 0 до 5). Для встановлення внутрішнього значення може бути використано поле із назвою «rating».

Встановлення «ratingstars» одразу для декількох файлів призведе до непрацездатності різних форматів міток, оскільки пов'язане із полем значення буде створено для першого файла, а потім використано для усіх інших файлів. Тому, замість `kid3-cli -c "set ratingstars 2" *`, вам слід скористатися командою `for f in *; do kid3-cli -c "set ratingstars 2" "$f"; done`.

### Скасувати

`revert`

Скасувати усі зміни у позначених файлах (або усіх файла, якщо нічого не позначено).

### Імпортувати з файла

`import` {`ФАЙЛ`} {`НАЗВА-ФОРМАТУ`} [`НОМЕРИ-МІТОК`]

Мітки буде імпортовано з файла `ФАЙЛ` у форматі з назвою `НАЗВА-ФОРМАТУ` (наприклад, `"CSV unquoted"`, див. імпортування).

Якщо команду `tags` віддано із параметром `ФАЙЛ`, мітки буде імпортовано з інших міток. Якщо не вказано параметр `НАЗВА-ФОРМАТУ`, має бути вказано параметри `ДЖЕРЕЛО` і `ВИДОБУВАННЯ`, див. імпортування з міток. Щоб застосувати імпортування з міток до позначених файлів, скористайтеся командою `tagsel` замість `tags`. У цій функції також передбачено підтримку виведення видобутого значення за допомогою значення параметра `ВИДОБУВАННЯ` `%{__return}(.+)`.

### Автоматичне імпортування

`autoimport` [`НАЗВА-ПРОФІЛЮ`] [`НОМЕРИ-МІТОК`]

Пакетне імпортування на основі профілю `НАЗВА-ПРОФІЛЮ` (див. Автоматичне імпортування; якщо профіль не вказано, буде використано `"All"`).

### Отримати зображення обкладинки альбому

`albumart` {`АДРЕСА`} [all]

Встановити зображення обкладинки альбому шляхом отримання зображення з адреси `АДРЕСА`. Для перетворення звичайних адрес (наприклад, з Amazom) на адреси зображень буде використано правила, які визначено у діалоговому вікні Навігація обкладинками. Щоб встановити зображення обкладинки з локального файла зображення, скористайтеся командою set.

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

### Експортувати до файла

`export` {`ФАЙЛ`} {`НАЗВА-ФОРМАТУ`} [`НОМЕРИ-МІТОК`]

Мітки буде експортовано до файла `ФАЙЛ` у форматі з назвою `НАЗВА-ФОРМАТУ` (наприклад, `"CSV unquoted"`, див експортування).

### Створити список відтворення

`playlist`

Створення списку відтворення у форматі, який вказано у налаштуваннях, див. створення списку відтворення.

### Застосувати формат назв файлів

`filenameformat`

Застосувати формат назви файла, який встановлено у налаштуваннях, див. застосування формату назв файлів.

### Застосувати формат мітки

`tagformat`

Застосувати формат міток, який встановлено у налаштуваннях, див. застосування формату міток.

### Застосувати кодування тексту

`textencoding`

Застосувати кодування тексту, яке встановлено у налаштуваннях, див. застосування кодування тексту.

### Перейменувати теку

`renamedir` [`ФОРМАТ`] [ create | rename | dryrun ] [`НОМЕРИ-МІТОК`]

Перейменувати або створити теки на основі значень міток відповідно до вказаного формату `ФОРМАТ` (наприклад, `%{artist} - %{album}`, див. перейменування теки). Якщо формат не вказано, буде використано формат, визначений за допомогою діалогового вікна Перейменування теки. Типовим режимом є `rename`; для створення тек слід явним чином вказати параметр `create`. Дії з перейменовування буде виконано негайно. Щоб попередньо переглянути список дій, які буде виконано, скористайтеся параметром `dryrun`.

### Кількість доріжок

`numbertracks` [`НОМЕР-ДОРІЖКИ`] [`НОМЕРИ-МІТОК`]

Нумерувати позначені доріжки, починаючи з номера `НОМЕР-ДОРІЖКИ` (`1`, якщо не вказано).

### Фільтр

`filter` [ `НАЗВА-ФІЛЬТРА` | `ФОРМАТ-ФІЛЬТРУВАННЯ` ]

Фільтрувати файли так, що видимими будуть лише файли, які відповідають формату `ФОРМАТ-ФІЛЬТРУВАННЯ`. Можна скористатися попередньо визначеним виразом фільтрування (наприклад, `«Невідповідність мітки і назви файла»`) замість виразу для фільтрування, див. фільтрування.

    kid3-cli> filter '%{title} contains "tro"'
    Початок
      /home/urs/One Hit Wonder - Let's Tag
    + 01 Intro.mp3
    - 02 We Only Got This One.mp3
    + 03 Outro.mp3
    Завершено
    kid3-cli> ls
      1-- 01 Intro.mp3
      1-- 03 Outro.mp3
    kid3-cli> filter All
    Початок
      /home/urs/One Hit Wonder - Let's Tag
    + 01 Intro.mp3
    + 02 We Only Got This One.mp3
    + 03 Outro.mp3
    Завершено
    kid3-cli> ls
      1-- 01 Intro.mp3
      12- 02 We Only Got This One.mp3
      1-- 03 Outro.mp3

### Перетворити ID3v2.3 на ID3v2.4

`to24`

### Перетворити ID3v2.4 на ID3v2.3

`to23`

### Назва файла з мітки

`fromtag` [`ФОРМАТ`] [`НОМЕРИ-МІТОК`]

Встановлення назв позначених файлів на основі значень у мітках. Приклад: `fromtag '%{track} - %{title}' 1`. Якщо формат не вказано, буде використано формат, який встановлено у графічному інтерфейсі.

### Мітка з назви файла

`totag` [`ФОРМАТ`] [`НОМЕРИ-МІТОК`]

Встановити вміст кадрів міток на основі назв файлів. Приклад: `totag '%{albumartist} - %{album}/%{track} %{title}' 2`. Якщо формат не вказано, буде використано формат, який визначено у графічному інтерфейсі програми. Якщо формат назви файла не відповідає вказаному взірцю, програма спробує використати інші поширені формати.

### Мітку на іншу мітку

`syncto` {`НОМЕР-МІТКИ`}

Копіювати вміст кадрів міток з одної мітки до іншої мітки. Наприклад, щоб заповнити мітку ID3v2 даними з мітки ID3v1, скористайтеся командою `syncto 2`.

### Копіювати

`copy` [`НОМЕР-МІТКИ`]

Копіювати вміст кадрів мітки позначеного файла до внутрішнього буфера копіювання даних. Далі, вміст можна записати до іншого файла за допомогою команди paste.

Щоб скопіювати лише вміст певної підмножини кадрів, скористайтеся псевдополем «selected» за допомогою команди set. Наприклад, щоб скопіювати лише вміст кадрів номера диска та авторських прав, скористайтеся такими командами:

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

### Вставити

`paste` [`НОМЕР-МІТКИ`]

Встановити вміст кадрів мітки на основі вмісту буфера copy для позначених файлів.

### Вилучити

`remove` [`НОМЕР-МІТКИ`]

Вилучити мітку.

Передбачено можливість вилучення вмісту лише підмножини кадрів. Вибрати потрібні кадри можна у спосіб, який описано у документації до команди copy.

### Налаштовування Kid3

`config` [`ПАРАМЕТР`] [`ЗНАЧЕННЯ`]

Виконати опитування значення параметра налаштувань або встановлення цього значення.

`ПАРАМЕТР` складається з назви групи і назви властивості, відокремлених крапкою. Якщо `ПАРАМЕТР` не вказано, буде показано усі доступні групи. Якщо вказано лише назву групи, буде показано усі доступні у групі властивості. Для заданої групи і властивості буде показано поточне налаштоване значення. Щоб змінити значення параметра, можна просто передати нове значення як другий аргумент.

Якщо значенням параметра є список, як аргументи слід передати усі елементи списку. Це означає, що для додавання елемента до наявного списку, слід передати усі наявні елементи, наприкінці яких слід вказати новий елемент. У таких випадках простіше скористатися режимом JSON, у якому поточний список можна скопіювати із дописуванням нового елемента.

### Виконати програму або скрипт QML

`execute` [@qml] {`ФАЙЛ`} [`АРГУМЕНТИ`]

Виконати скрипт QML або виконуваний файл.

Без `@qml` програму буде виконано з аргументами. Якщо першим аргументом вказано `@qml`, наступними аргументами є скрипт QML та його аргументи. Наприклад, мітки теки може бути експортовано до файла `export.csv` за допомогою вказаної нижче команди.

    kid3-cli -c "execute @qml
    /usr/share/kid3/qml/script/ExportCsv.qml export.csv"
    /шлях/до/теки/

Тут `export.csv` є аргументом до скрипту `ExportCsv.qml`, а `/шлях/до/теки/` є аргументом ``ФАЙЛ`` до kid3-cli.

## Приклади

Встановити заголовок, який містить апостроф. Команди, які передаються kid3-cli за допомогою `-c`, слід брати у лапки, якщо вони складаються із декількох слів. Якщо якась із команд сама має аргумент, який містить пробіли, цей аргумент також має бути взято у лапки. У командних оболонках UNIX® можна використовувати одинарні і подвійні лапки, але у командній оболонці Windows цього робити не можна. Важливо використовувати для зовнішніх лапок подвійні лапки, а внутрішніх — одинарні. Якщо у тексті всередині одинарних лапок містяться одинарні лапки, їх слід екранувати за допомогою символу зворотної похилої риски, як це продемонстровано у наступному прикладі:

    kid3-cli -c "set title 'I\'ll be there for you'" /шлях/до/теки

Встановлення зображення обкладинки альбому для усіх файлів у теці за допомогою функціональної можливості пакетного імпортування:

    kid3-cli -c "autoimport 'Cover Art'" /шлях/до/теки

Вилучити кадри коментарів та застосувати форматування мітки у обох мітка усіх файлів MP3 у теці:

    kid3-cli -c "set comment '' 1" -c "set comment '' 2" \
    -c "tagformat 1" -c "tagformat 2" /шлях/до/теки/*.mp3

Автоматично імпортувати мітку 2, синхронізувати із міткою 1, встановити назви файлів на основі мітки 2 і, нарешті, створити список відтворення:

    kid3-cli -c autoimport -c "syncto 1" -c fromtag -c playlist \
      /шлях/до/теки/*.mp3

Для усіх файлів із міткою ID3v2.4.0 виконати перетворення на мітку ID3v2.3.0 і вилучити кадр аранжувальника:

    kid3-cli -c "filter 'ID3v2.4.0 Tag'" -c "select all" -c to23 \
      -c "set arranger ''" /шлях/до/теки

У цьому скрипті мовою Python використано kid3-cli для створення кадрів iTunNORM перевірки звуку iTunes на основі даних щодо підсилення гучності.

    #!/usr/bin/env python3
    # Generate iTunes Sound Check from ReplayGain.
    import os, sys, subprocess

    def rg2sc(dirpath):
      for root, dirs, files in os.walk(dirpath):
        for name in files:
          if name.endswith(('.mp3', '.m4a', '.aiff', '.aif')):
            fn = os.path.join(root, name)
            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('Value %s of %s in not a float' % (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])

## Формат JSON

Для полегшення обробки результатів роботи kid3-cli, передбачено можливість отримання виведених даних у форматі JSON. Якщо запит буде виконано у форматі JSON, відповідь буде виведено також у форматі JSON. Компактний формат запиту також даватиме компактне представлення відповіді. Якщо у запиті міститиметься поле «id», він вважатиметься запитом JSON-RPC, і у відповіді міститиметься поле «jsonrpc» і значення «id» запиту. У форматі запиту використовуються ті самі команди, що і у стандартному інтерфейсі командного рядка, поле «method» має містити команду, а параметри (якщо такі є) задаються списком «params». Відповідь міститиме об'єкт «result», який також може бути порожнім, якщо відповідна команда kid3-cli не повернула жодного результату. Якщо станеться помилка, буде повернуто об'єкт «error» із полями «code» та «message», — типово для запитів JSON-RPC.

    kid3-cli> {"method":"set","params":["artist","An Artist"]}
    {"result":null}
    kid3-cli> {"method":"get","params":["artist",2]}
    {"result":"An Artist"}
    kid3-cli> {"method": "get", "params": ["artist"]}
    {
        "result": "An Artist"
    }

    kid3-cli> {"jsonrpc":"2.0","id":"123","method":"get","params":["artist"]}
    {"id":"123","jsonrpc":"2.0","result":"An Artist"}

# Розділ 5. Авторські права та ліцензування

Kid3

Автором програми є Urs Fleisch `<ufleisch at users.sourceforge.net>`

Переклад українською: Юрій Чорноіван `<yurchor@ukr.net>`

FDL

GPL

# Додаток A. Встановлення

## Як отримати Kid3

Код і пакунки Kid3 зберігаються на https://kid3.kde.org.

## Технічні вимоги

Для роботи Kid3 потрібні бібліотеки Qt™. Використання KDE є рекомендованим, але необов'язковим, оскільки Kid3 можна зібрати як програму, яка залежить лише від Qt™. Kid3 можна зібрати для систем, де доступні відповідні бібліотеки, наприклад для GNU/Linux®, Windows® та macOS®. Для роботи з мітками у файлах Ogg/Vorbis потрібні libogg, libvorbis і libvorbisfile. Для роботи з файлами FLAC — libFLAC++ і libFLAC. Для роботи з файлами MP3 програма використовує id3lib. Підтримку цих чотирьох форматів передбачено також у бібліотеці TagLib. Ця бібліотека може працювати із файлами Opus, MPC, APE, MP2, Speex, TrueAudio, WavPack, WMA, WAV, AIFF та модулями tracker. Для імпортування акустичних відбитків у програмі використовуються Chromaprint і libav.

Пакунки Kid3 можна встановити зі сховищ більшості дистрибутивів Linux®. Передбачено пакунки для Windows® і macOS®. Відповідні посилання можна знайти на https://kid3.kde.org.

## Збирання і встановлення

Ви можете зібрати Kid3 з бібліотеками KDE або без них. Без бібліотек KDE Kid3 є простою програмою Qt™, у якій не передбачено деяких можливостей із налаштовування програми та сеансів роботи з нею.

Щоб зібрати версію із бібліотеками KDE, перейдіть до базового теки коду і віддайте такі команди

    % cmake .
    % make
    % make install

Щоб зібрати нестандартну версію із використанням бібліотек Qt™ або KDE, встановіть відповідні параметри `cmake`.

Якщо у системі встановлено не усі бібліотеки, Kid3 буде зібрано із обмеженими функціональними можливостями. Тому перед збиранням слід подбати про встановлення усіх потрібних пакунків для розробки. З іншого боку, керувати переліком бібліотек, які буде використано, можна за допомогою параметрів `cmake`. Типовим набором параметрів є `-DWITH_TAGLIB:BOOL=ON -DWITH_MP4V2:BOOL=OFF -DWITH_ID3LIB:BOOL=ON -DWITH_CHROMAPRINT:BOOL=ON -DWITH_VORBIS:BOOL=ON -DWITH_FLAC:BOOL=ON` . Вимкнути збирання компонентів можна за допомогою визначення для параметрів значення `OFF`.

Щоб зібрати Kid3 як програму Qt™, без бібліотек KDE, скористайтеся параметром `cmake` `-DWITH_APPS=Qt`. Щоб зібрати одразу програми для KDE і Qt™, вкажіть такий параметр: `-DWITH_APPS="Qt;KDE"`.

Щоб скористатися певним встановленим набором бібліотек Qt™, вкажіть `-DQT_QMAKE_EXECUTABLE=/шлях/до/qmake`.

Створити пакунки RPM можна за допомогою файла `kid3.spec`. Для створення пакунків Debian можна скористатися скриптом `build.sh deb`.

Програму із використанням бібліотек Qt™ можна також зібрати для Windows® і macOS®. Для отримання із збирання усіх потрібних бібліотек і створення пакунка Kid3 можна скористатися скриптом `build.sh`.

## Налаштування

У версії для KDE параметри роботи програми зберігаються у файлі `.config/kid3rc`, стан програми — у файлі `.local/share/kid3/kid3staterc`.. Програма із використанням лише Qt™ зберігає параметри у файлі `.config/Kid3/Kid3.conf`. У Windows® налаштування зберігаються у реєстрі. У macOS® — у файлі plist.

Для встановлення шляху до файла налаштувань можна скористатися змінною середовища `KID3_CONFIG_FILE`.

# Додаток B. Інтерфейс D-Bus

## Приклади D-Bus

У Linux® для керування Kid3 зі скриптів можна скористатися інтерфейсом D-Bus. Скрипти може бути написано будь-якою мовою програмування із прив'язкою до D-Bus (наприклад, мовою Python) і додано до Дій користувача для розширення функціональних можливостей Kid3.

Вказати для запису виконавця мітки 2 поточного файла значення «One Hit Wonder» можна за допомогою такого коду:

Оболонка

      dbus-send --dest=org.kde.kid3 --print-reply=literal \
      /Kid3 org.kde.Kid3.setFrame int32:2 string:'Artist' \
      string:'One Hit Wonder'

  або, простіше, за допомогою програми із набору інструментів Qt™ qdbus (для вивчення графічного інтерфейсу програми можна скористатися програмою qdbusviewer):

      qdbus org.kde.kid3 /Kid3 setFrame 2 Artist \
      'One Hit Wonder'

Python

      import dbus
      kid3 = dbus.SessionBus().get_object(
        'org.kde.kid3', '/Kid3')
      kid3.setFrame(2, 'Artist', 'One Hit Wonder')

Perl

      use Net::DBus;
      $kid3 = Net::DBus->session->get_service(
        "org.kde.kid3")->get_object(
        "/Kid3", "org.kde.Kid3");
      $kid3->setFrame(2, "Artist", "One Hit Wonder");

## Програмний інтерфейс D-Bus

Програмний інтерфейс D-Bus визначено у файлі `org.kde.Kid3.xml`. У програмному інтерфейсі Kid3 передбачено такі методи:

### Відкриття файла або теки

`boolean openDirectory(` | шлях`)`; |

`string шлях`;

`шлях`

  шлях до файла або теки

Повертає true, якщо виконано вдало.

### Вивантаження міток усіх файлів, які не змінено і не позначено

`unloadAllTags(` | `)`; |

### Збереження усіх змінених файлів

`boolean save(` | `)`; |

Повертає true, якщо виконано вдало.

### Отримання докладного повідомлення щодо помилки, яке надається іншими методами

`string getErrorMessage(` | `)`; |

Повертає докладне повідомлення про помилку.

### Скасовування змін у позначених файлах

`revert(` | `)`; |

### Запуск автоматичного пакетного імпортування

`boolean batchImport(` | маскаМітки, |
| назваПрофілю`)`; |

`int32 маскаМітки`;
`string назваПрофілю`;

`маскаМітки`

  маска мітки (біт 0 для мітки 1, біт 1 для мітки 2)

`назваПрофілю`

  назва профілю пакетного імпортування, яким слід скористатися

### Імпортуванням міток з файла

`boolean importFromFile(` | маскаМітки, |
| шлях, |
| індексФормату`)`; |

`int32 маскаМітки`;
`string шлях`;
`int32 індексФормату`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

`шлях`

  шлях до файла

`індексФормату`

  індекс формату

Повертає true, якщо виконано вдало.

### Імпортування міток з інших міток

`importFromTags(` | маскаМітки, |
| джерело, |
| видобування`)`; |

`int32 маскаМітки`;
`string джерело`;
`string видобування`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

`джерело`

  формат для отримання тексту-джерела для міток

`видобування`

  формальний вираз із назвами кадрів або вирізаних підрядків для видобування із тексту-джерела

### Імпортування міток з інших міток позначених файлів

`array importFromTagsToSelection(` | маскаМітки, |
| джерело, |
| видобування`)`; |

`int32 маскаМітки`;
`string джерело`;
`string видобування`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

`джерело`

  формат для отримання тексту-джерела для міток

`видобування`

  формальний вираз із назвами кадрів або вирізаних підрядків для видобування із тексту-джерела

`повернутіЗначення`

  видобуте значення для «%{__return}(.+)»

### Отримання зображення обкладинки альбому

`downloadAlbumArt(` | адреса, |
| усіФайлиУТеці`)`; |

`string адреса`;
`boolean усіФайлиУТеці`;

`адреса`

  адреса файла зображення або ресурсу зображення обкладинки альбому

`усіФайлиУТеці`

  true, якщо зображення слід додати до усіх файлів у теці

### Експортування міток до файла

`boolean exportToFile(` | маскаМітки, |
| шлях, |
| індексФормату`)`; |

`int32 маскаМітки`;
`string шлях`;
`int32 індексФормату`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

`шлях`

  шлях до файла

`індексФормату`

  індекс формату

Повертає true, якщо виконано вдало.

### Створення списку відтворення

`boolean createPlaylist(` | `)`; |

Повертає true, якщо виконано вдало.

### Отримання записів у списку відтворення

`array getPlaylistItems(` | шлях`)`; |

`string шлях`;

`шлях`

  шлях до файла списку відтворення

Повертає список абсолютних шляхів до файлів-пунктів списку відтворення.

### Встановлення записів списку відтворення

`boolean setPlaylistItems(` | шлях, |
| пункти`)`; |

`string шлях`;
`array пункти`;

`шлях`

  шлях до файла списку відтворення

`пункти`

  список абсолютних шляхів до файлів-пунктів списку відтворення

Повертає true, якщо дію виконано вдало, і false, якщо знайдено не усі пункти і додавання або збереження не було вдало виконано.

### Вийти з програми

`quit(` | `)`; |

### Позначення усіх файлів

`selectAll(` | `)`; |

### Зняття позначення з усіх файлів

`deselectAll(` | `)`; |

### Встановлення першого файла як поточного файла

`boolean firstFile(` | `)`; |

Повертає true, якщо існує перший файл.

### Встановлення попереднього файла як поточного файла

`boolean previousFile(` | `)`; |

Повертає true, якщо існує попередній файл.

### Встановлення наступного файла як поточного файла

`boolean nextFile(` | `)`; |

Повертає true, якщо існує наступний файл.

### Позначення першого файла

`boolean selectFirstFile(` | `)`; |

Повертає true, якщо існує перший файл.

### Позначення попереднього файла

`boolean selectPreviousFile(` | `)`; |

Повертає true, якщо існує попередній файл.

### Позначення наступного файла

`boolean selectNextFile(` | `)`; |

Повертає true, якщо існує наступний файл.

### Позначення поточного файла

`boolean selectCurrentFile(` | `)`; |

Повертає true, якщо існує поточний файл.

### Розгортання або згортання поточного пункту у файловій ієрархії, якщо це тека

`boolean expandDirectory(` | `)`; |

Пункт списку файлів є текою, якщо getFileName() повертає назву із останнім символом «/».

Повертає true, якщо поточний пункт у ієрархії файлів є текою.

### Застосування формату назви файла

`applyFilenameFormat(` | `)`; |

### Застосування формату мітки

`applyTagFormat(` | `)`; |

### Застосувати кодування тексту

`applyTextEncoding(` | `)`; |

### Встановлення назви теки на основі міток

`boolean setDirNameFromTag(` | маскаМітки, |
| формат, |
| створення`)`; |

`int32 маскаМітки`;
`string формат`;
`boolean створення`;

`маскаМітки`

  маска мітки (біт 0 для мітки 1, біт 1 для мітки 2)

`формат`

  формат назви теки

`створення`

  true для створення, false для перейменування

Повертає true, якщо дію виконано вдало. Якщо дію не вдалося виконати, повертає повідомлення про помилку, доступ до якого можна отримати за допомогою getErrorMessage().

### Встановлення послідовної нумерації доріжок для позначених файлів

`numberTracks(` | маскаМітки, |
| номерПершоїДоріжки`)`; |

`int32 маскаМітки`;
`int32 номерПершоїДоріжки`;

`маскаМітки`

  маска мітки (біт 0 для мітки 1, біт 1 для мітки 2)

`номерПершоїДоріжки`

  номер, який слід використати для першого файла

### Фільтрування файлів

`filter(` | вираз`)`; |

`string вираз`;

`вираз`

  вираз для фільтрування

### Перетворення міток ID3v2.3 на ID3v2.4

`convertToId3v24(` | `)`; |

### Перетворення міток ID3v2.4 на ID3v2.3

`convertToId3v23(` | `)`; |

Повертає true, якщо виконано вдало.

### Отримання шляху до теки

`string getDirectoryName(` | `)`; |

Повертає абсолютний шлях до теки.

### Отримання назви поточного файла

`string getFileName(` | `)`; |

Повертає абсолютну назву поточного файла, яка завершуватиметься на «/», якщо це тека.

### Встановлення назви позначеного файла

`setFileName(` | назва`)`; |

`string назва`;

`назва`

  назва файла

Файл буде перейменовано при збереженні теки.

### Встановлення формату, який буде використано при встановленні назв файлів на основі міток

`setFileNameFormat(` | формат`)`; |

`string формат`;

`формат`

  формат назви файла

### Встановлення назв позначених файлів на основі міток

`setFileNameFromTag(` | маскаМітки`)`; |

`int32 маскаМітки`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

### Отримання значення кадру

`string getFrame(` | маскаМітки, |
| назва`)`; |

`int32 маскаМітки`;
`string назва`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

`назва`

  назва кадру (наприклад "artist")

Щоб отримати двійкові дані, наприклад зображення, можна додати назву файла, куди буде записано дані, після `name`. Приклад: «Picture:/шлях/до/файла». У той самий спосіб можна експортувати синхронізований текст пісні. Приклад: «SYLT:/шлях/до/файла».

Повертає значення кадру.

### Встановлення значення кадру

`boolean setFrame(` | маскаМітки, |
| назва, |
| значення`)`; |

`int32 маскаМітки`;
`string назва`;
`string значення`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

`назва`

  назва кадру (наприклад "artist")

`значення`

  значення кадру

Для мітки 2 (`tagMask` 2), якщо не існує кадру `name`, буде додано новий кадр. Якщо значення `value` є порожнім, кадр буде вилучено. Щоб додати двійкові дані, зокрема зображення, можна додати назву відповідного файла після `name`. Приклад: «Picture:/шлях/до/файла». Для імпортування синхронізованого тексту пісні можна скористатися виразом «SYLT:/шлях/до/файла».

Повертає true, якщо виконано вдало.

### Отримання усіх кадрів мітки

`array of string getTag(` | маскаМітки`)`; |

`int32 маскаМітки`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

Повертає список із послідовно розташованими назвами кадрів та значеннями.

### Отримання технічних даних щодо файла

`масив рядків getInformation(` | `)`; |

Властивостями є Format, Bitrate, Samplerate, Channels, Duration, Channel Mode, VBR, Tag 1, Tag 2. Властивості, які є недоступними буде пропущено.

Повертає список із послідовно розташованими назвами властивостей та значеннями.

### Встановлення мітки на основі назви файла

`setTagFromFileName(` | маскаМітки`)`; |

`int32 маскаМітки`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

### Встановлення мітки на основі іншої мітки

`setTagFromOtherTag(` | маскаМітки`)`; |

`int32 маскаМітки`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

### Копіювання мітки

`copyTag(` | маскаМітки`)`; |

`int32 маскаМітки`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

### Вставлення мітки

`pasteTag(` | маскаМітки`)`; |

`int32 маскаМітки`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

### Вилучення мітки

`removeTag(` | tagMask`)`; |

`int32 tagMask`;

`маскаМітки`

  біт мітки (1 для мітки 1, 2 для мітки 2)

### Повторно обробити налаштування

`reparseConfiguration(` | `)`; |

Автоматизацію обробки змін у налаштуваннях можна реалізувати внесенням змін до файла налаштувань із наступною повторною обробкою налаштувань.

### Відтворення позначених файлів

`playAudio(` | `)`; |

# Додаток C. Інтерфейс QML

## Приклади QML

Скрипти QML можна викликати за допомогою контекстного меню панелі списку файлів. Перелік використаних скриптів можна визначити за допомогою сторінки Дії користувача діалогового вікна параметрів програми. Скриптами, які вже є частиною пакунка із програмою, можна скористатися як прикладами для створення власних скриптів. QML використовує синтаксис JavaScript. Ось типовий приклад простого скрипту:

    import Kid3 1.0

    Kid3Script {
      onRun: {
        console.log("Hello world, folder is", app.dirName)
        Qt.quit()
      }
    }

Якщо цей скрипт зберігається за адресою `/шлях/до/Example.qml`, команду користувача можна визначити так: @qml /шлях/до/Example.qml і назвати `Перевірка QML`. Також варто позначити пункт у стовпчику Виведення. Запустити скрипт можна за допомогою пункту Перевірка QML у контекстному меню списку файлів. Виведені скриптом дані буде показано у вікні програми.

На жаль, запуск скриптів QML за допомогою qml (наприклад, qml -apptype widget -I /usr/lib/kid3/plugins/imports /шлях/до/Example.qml) став неможливим у свіжих версіях Qt. Втім, kid3-cli пропонує інший спосіб запуску скриптів QML з командного рядка за допомогою власної команди execute.

    kid3-cli -c "execute @qml /шлях/до/Example.qml"

Щоб отримати список заголовків у мітках 2 усіх файлів у поточній теці, можете скористатися таким скриптом:

    import Kid3 1.0

    Kid3Script {
      onRun: {
        app.firstFile()
        do {
          if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
            console.log(app.getFrame(tagv2, "title"))
          }
        } while (app.nextFile())
      }
    }

Якщо у теці міститься багато файлів, робота скрипту може на певний час заблокувати можливість користуватися інтерфейсом системи. Тому для виконання тривалих дій слід час від часу переривати роботу скрипту. У альтернативній реалізації, яку наведено нижче, обробку окремого файла винесено до функції. Ця функція викликає себе із часом очікування у 1 мілісекунду наприкінці, якщо виконується обробка декількох файлів. Таким чином буде забезпечено можливість роботи із графічним інтерфейсом під час виконання скриптом поставленого завдання.

    import Kid3 1.0

    Kid3Script {
      onRun: {
        function doWork() {
          if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
            console.log(app.getFrame(tagv2, "title"))
          }
          if (!app.nextFile()) {
            Qt.quit()
          } else {
            setTimeout(doWork, 1)
          }
        }

        app.firstFile()
        doWork()
      }
    }

Якщо використано app.firstFile() із app.nextFile(), буде оброблено усі файли у поточній теці. Якщо слід обробити лише позначені файли, скористайтеся замість цих функцій firstFile() і nextFile(). Ці зручні функції визначено у компоненті `Kid3Script`. У наведеному нижче прикладі скрипт копіює з позначеного файла лише кадри номера диска та авторських прав.

    import Kid3 1.1

    Kid3Script {
      onRun: {
        function doWork() {
          if (app.selectionInfo.tag(Frame.Tag_2).tagFormat) {
            app.setFrame(tagv2, "*.selected", false)
            app.setFrame(tagv2, "discnumber.selected", true)
            app.setFrame(tagv2, "copyright.selected", true)
            app.copyTags(tagv2)
          }
          if (!nextFile()) {
            Qt.quit()
          } else {
            setTimeout(doWork, 1)
          }
        }

        firstFile()
        doWork()
      }
    }

Інші зразки скриптів постачаються разом із Kid3 і вже є зареєстрованими командами користувача.

- ReplayGain to SoundCheck (`ReplayGain2SoundCheck.qml`): створює дані для iTunNORM SoundCheck на основі кадрів мітки із даними щодо підсилення гучності.

- Resize Album Art (`ResizeAlbumArt.qml`): змінює розміри вбудованих зображень обкладинок альбомів, якщо ці розміри перевищують розмір у 500x500 пікселів.

- Extract Album Art (`ExtractAlbumArt.qml`): видобуває усі вбудовані зображення обкладинок альбомів без дублювання.

- Embed Album Art (`EmbedAlbumArt.qml`): вбудовує зображення обкладинки альбому з файлів зображень до файлів звукових даних у тій самій теці.

- Embed Lyrics (`EmbedLyrics.qml`): отримує несинхронізовані слова пісень зі сторінок служб інтернету.

- Text Encoding ID3v1 (`ShowTextEncodingV1.qml`): допомагає визначати кодування міток ID3v1, показуючи вміст міток у поточному файлі в усіх доступних кодуваннях.

- ID3v1 to ASCII (`Tag1ToAscii.qml`): перетворити усі додаткові символи латиниці у мітці ID3v1 на символи ASCII.

- English Title Case (`TitleCase.qml`): форматує текст у мітках за правилами використання регістру символів англійської мови.

- Перезаписати мітки (`RewriteTags.qml`): Перезаписати мітки в усіх позначених файлах.

- Export CSV (`ExportCsv.qml`): рекурсивно експортує усі мітки в усіх файлах до файла CSV.

- Import CSV (`ImportCsv.qml`): імпортувати рекурсивно усі мітки усіх файлів з файла CSV.

- Export JSON (`ExportJson.qml`): експортувати рекурсивно усіх мітки усіх файлів до файла JSON.

- Import JSON (`ImportJson.qml`): імпортувати рекурсивно усі мітки усіх файлів з файла JSON.

- Export Playlist Folder (`ExportPlaylist.qml`): копіює усі файли зі списку відтворення до теки і перейменовує їх відповідно до їхньої позиції у списку.

- Консоль QML (`QmlConsole.qml`): проста консоль для вправляння із програмним інтерфейсом QML Kid3.

## Програмний інтерфейс QML

Із програмним інтерфейсом доволі просто ознайомитися за допомогою консолі QML, яку включено як приклад скрипту із інтерфейсом користувача.

### Kid3Script

`Kid3Script` — звичайний компонент QML, який зберігається у теці додатків. Ви можете скористатися будь-яким іншим компонентом QML. Використання `Kid3Script` спрощує запуск функції скрипту за допомогою обробника сигналів `onRun`. Крім того, у ньому передбачено декілька функцій:

    onRun: обробник сигналів, який викликається під час запуску скрипту
    tagv1, tagv2, tagv2v1: сталі для параметрів міток
    script: доступ до функцій скриптів
    configs: доступ до об'єктів налаштувань
    getArguments(): список аргументів скрипту
    isStandalone(): true, якщо скрипт не було запущено з Kid3
    setTimeout(callback, delay): запускає зворотний виклик після затримки, яку слід вказувати у мілісекундах
    firstFile(): до першого позначеного файла
    nextFile(): до наступного позначеного файла

### Функції скриптів

У JavaScript, а отже і у QML, для скриптів можна використовувати доволі обмежену множину функцій. У об'єкта `script` є деякі додаткові методи, зокрема такі:

    script.properties(obj): рядок із властивостями Qt
    script.writeFile(filePath, data): записати дані до файла; true, якщо запис вдалий
    script.readFile(filePath): прочитати дані з файла
    script.removeFile(filePath): вилучити файл; true, якщо вилучення вдале
    script.fileExists(filePath): true, якщо файл існує
    script.fileIsWritable(filePath): true, якщо файл придатний до запису
    script.getFilePermissions(filePath): отримати бітову карту режиму доступу до файла
    script.setFilePermissions(filePath, modeBits): встановити бітову карту режиму доступу до файла
    script.classifyFile(filePath): отримати клас файла (тека — «/», символічне посилання — «@»,
      виконуваний файл — «*», просто файл — « »)
    script.renameFile(oldName, newName): перейменувати файл; true, якщо перейменування вдале
    script.copyFile(source, dest): скопіювати файл; true, якщо копіювання вдале
    script.makeDir(path): створити теку; true, якщо створення вдале
    script.removeDir(path): вилучити теку; true, якщо вилучення вдале
    script.tempPath(): шлях до теки тимчасових даних
    script.musicPath(): шлях до теки із музикою
    script.listDir(path, [nameFilters], [classify]): список записів у теці
    script.system(program, [аргументи], [мілісекунди]): синхронно запустити загальносистемну команду,
      [код виходу, стандартне виведення, стандартна помилка], якщо не перевищено час очікування
    script.systemAsync(program, [аргументи], [зворотний виклик]): асинхронно запустити загальносистемну команду;
    зворотний виклик буде виконано із даними [код виходу, стандартне виведення, стандартна
    помилка]
    script.getEnv(varName): отримати значення змінної середовища
    script.setEnv(varName, value): встановити значення змінної середовища
    script.getQtVersion(): рядок версії Qt, наприклад «5.4.1»
    script.getDataMd5(data): отримати шістнадцятковий рядок хешу MD5 для даних
    script.getDataSize(data): отримати розмір байтового масиву
    script.dataToImage(data, [формат]): створити зображення з байтів даних
    script.dataFromImage(img, [формат]): отримати байти даних із зображення
    script.loadImage(filePath): завантажити зображення з файла
    script.saveImage(img, filePath, [формат]): зберегти зображення до файла; true, якщо збереження вдале
    script.imageProperties(img): отримати властивості зображення; карта, яка містить
      значення «width», «height», «depth» та «colorCount»; порожнє значення, якщо зображення некоректне
    script.scaleImage(зображення, ширина, [висота]): масштабувати зображення; повертає масштабоване зображення

### Контекст програми

За допомогою QML можна отримати доступ до значної кількості функціональних можливостей Kid3. Програмний інтерфейс є подібним до використаного для D-Bus. Щоб дізнатися більше, зверніться до відповідних нотаток.

    app.openDirectory(path): відкрити теку
    app.unloadAllTags(): вивантажити усі мітки
    app.saveDirectory(): зберегти теку
    app.revertFileModifications(): скасувати
    app.importTags(tag, path, fmtIdx): імпортувати файл
    app.importFromTags(tag, source, extraction): імпортувати дані з міток
    app.importFromTagsToSelection(tag, source, extraction): імпортувати дані з міток позначених файлів
    app.downloadImage(url, allFilesInDir): отримати зображення
    app.exportTags(tag, path, fmtIdx): експортувати файл
    app.writePlaylist(): записати список відтворення
    app.getPlaylistItems(path): отримати пункти списку відтворення
    app.setPlaylistItems(path, items): встановити пункти списку відтворення
    app.selectAllFiles(): позначити усе
    app.deselectAllFiles(): зняти позначення з усього
    app.firstFile([select], [onlyTaggedFiles]): до першого файла
    app.nextFile([select], [onlyTaggedFiles]): до наступного файла
    app.previousFile([select], [onlyTaggedFiles]): до попереднього файла
    app.selectCurrentFile([select]): позначити поточний файл
    app.selectFile(path, [select]): позначити певний файл
    app.getSelectedFilePaths([onlyTaggedFiles]): отримати шляхи до позначених файлів
    app.requestExpandFileList(): розгорнути усе
    app.applyFilenameFormat(): застосувати формат назв файлів
    app.applyTagFormat(): застосувати формат міток
    app.applyTextEncoding(): застосувати кодування тексту
    app.numberTracks(nr, total, tag, [параметри]): нумерувати доріжки
    app.applyFilter(expr): фільтрувати
    app.convertToId3v23(): перетворити ID3v2.4.0 на ID3v2.3.0
    app.convertToId3v24(): перетворити ID3v2.3.0 на ID3v2.4.0
    app.getFilenameFromTags(tag): назва файла з міток
    app.getTagsFromFilename(tag): мітки з назви файла
    app.getAllFrames(tag): отримати об'єкт із усіма кадрами
    app.getFrame(tag, name): отримати кадр
    app.setFrame(tag, name, value): встановити кадр
    app.getPictureData(): отримати дані з кадру зображення
    app.setPictureData(data): встановити дані у кадрі зображення
    app.copyToOtherTag(tag): мітки за іншими мітками
    app.copyTags(tag): копіювати
    app.pasteTags(tag): вставити
    app.removeTags(tag): вилучити
    app.playAudio(): відтворити
    app.readConfig(): прочитати налаштування
    app.applyChangedConfiguration(): застосувати налаштування
    app.dirName: назва теки
    app.selectionInfo.fileName: назва файла
    app.selectionInfo.filePath: абсолютний шлях до файла
    app.selectionInfo.detailInfo: дані щодо формату
    app.selectionInfo.tag(Frame.Tag_1).tagFormat: формат мітки 1
    app.selectionInfo.tag(Frame.Tag_2).tagFormat: формат мітки 2
    app.selectionInfo.formatString(tag, format): замінити коди у рядку форматування
    app.selectFileName(caption, dir, filter, saveFile): відкрити діалогове вікно вибору файла
    app.selectDirName(caption, dir): відкрити діалогове вікно вибору теки

Для асинхронних дій зворотні виклики можна з'єднувати із сигналами.

    function automaticImport(profile) {
      function onAutomaticImportFinished() {
        app.batchImporter.finished.disconnect(onAutomaticImportFinished)
      }
      app.batchImporter.finished.connect(onAutomaticImportFinished)
      app.batchImport(profile, tagv2)
    }

    function renameDirectory(format) {
      function onRenameActionsScheduled() {
        app.renameActionsScheduled.disconnect(onRenameActionsScheduled)
        app.performRenameActions()
      }
      app.renameActionsScheduled.connect(onRenameActionsScheduled)
      app.renameDirectory(tagv2v1, format, false)
    }

### Об'єкти налаштовування

Доступ до різних розділів налаштовування можна отримати за допомогою методів `configs`. Список їхніх властивостей можна переглянути за допомогою консолі QML.

    script.properties(configs.networkConfig())

Можна встановити такі властивості:

    configs.networkConfig().useProxy = false

    configs.batchImportConfig()
    configs.exportConfig()
    configs.fileConfig()
    configs.filenameFormatConfig()
    configs.filterConfig()
    configs.findReplaceConfig()
    configs.guiConfig()
    configs.importConfig()
    configs.mainWindowConfig()
    configs.networkConfig()
    configs.numberTracksConfig()
    configs.playlistConfig()
    configs.renDirConfig()
    configs.tagConfig()
    configs.tagFormatConfig()
    configs.userActionsConfig()