Глава 4. kid3-cli

Команды

kid3-cli предоставляет интерфейс командной строки к Kid3. Если в качестве аргумента будет указан путь к каталогу, будет открыт соответствующий каталог. Если будет указан один или несколько путей к файлам, будет открыт общий каталог, а файлы будут выделены. Последующие команды будут применены к этим файлам. Команды возможно указывать с помощью параметра -c. Если передано несколько команд, они будут выполнены в указанном порядке. Если команды вносят изменения в файлы, эти изменения будут сохранены при выходе из приложения. Если команды не будут переданы, интерфейс kid3-cli будет запущен в интерактивном режиме. Можно будет вводить команды и работать с текущими выделенными файлами. В следующих разделах приведён список доступных команд.

Справка

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

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

Время ожидания

timeout [ default | off | ВРЕМЯ ]

Позволяет перезаписать стандартное значение времени ожидания выполнения команды. Выполнение команд командного интерфейса будет прервано, если будет превышено указанное время ожидания. Стандартное время ожидания для команд ls и albumart — 10 секунд, для команд autoimport и filter — 60 секунд, а для остальных команд — 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, если фрейм не выделен.

Указать фрейм тега

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.

Отменить изменения

revert

Отменить все изменения в выбранных файлах (или во всех файлах, если файлы не выбраны).

Импортировать из файла

import {ФАЙЛ} {НАЗВАНИЕ-ФОРМАТА} [НОМЕРА-ТЕГОВ]

Теги будут импортированы из файла ФАЙЛ в формате под названием НАЗВАНИЕ-ФОРМАТА (например, «CSV unquoted», подробные сведения доступны в описании функции «Импорт»).

Если указать tags для параметра ФАЙЛ, теги будут импортированы из других тегов. Вместо параметра НАЗВАНИЕ-ФОРМАТА следует указать параметры ИСТОЧНИК и ИЗВЛЕЧЕНИЕ, подробные сведения доступны в описании функции «Импорт из тегов...». Чтобы применить импорт из тегов к выделенным файлам, используйте tagsel вместо tags. Эта функция также поддерживает вывод полученного значения: укажите параметр ИЗВЛЕЧЕНИЕ со значением %{__return}(.+).

Автоматический импорт

autoimport [ИМЯ-ПРОФИЛЯ] [НОМЕРА-ТЕГОВ]

Пакетный импорт на основе профиля НАЗВАНИЕ-ПРОФИЛЯ (смотрите описание функции «Автоматический импорт»; если профиль не указан, используется «All»).

Загрузить обложку

albumart {URL-АДРЕС} [all]

Установить обложку альбома путём загрузки изображения с адреса URL-адрес. Правила, определённые в диалоге «Найти обложки», используются для преобразования обычных URL-адресов (например, Amazon) в адрес изображения. Чтобы установить обложку альбома из локального файла изображения, воспользуйтесь командой 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; это позволит скопировать текущий список и добавить новый элемент.