Lightroom: добавьте ключевые слова из текстового файла в необработанные изображения (файл xmp)

на этот вопрос был дан общий ответ здесь: https://photo.stackexchange.com/a/38507/9913

В моем случае у меня есть сотни необработанных файлов image-xmp в разных папках, к которым я хотел бы добавить (не заменять, возможно, существующие) ключевые слова, содержащиеся в текстовом файле. Этот текстовый файл имеет 2 столбца:

полный путь/имя файла ключевое слово(я) TAB, разделенные запятыми

Я уверен, что это можно сделать с помощью exiftool. Но как?

Кто-то, безусловно, делал это раньше, поэтому я надеюсь, что кто-то поделится рабочей командной строкой для exiftool.

Спасибо за советы и отзывы.

Ответы (1)

Я считаю, что ваш файл CSV потребует пары изменений. Во-первых, я не думаю, что Exiftool будет читать csv с разделителями табуляции. Документы, похоже, указывают только запятую. Вы можете импортировать в Excel или OpenOffice с установленным разделителем табуляции и экспортировать новый CSV, который должен быть читаем Exiftool.

Во-вторых, в первой строке должны быть заголовки столбцов, указывающие теги, которые вы хотите импортировать. Первый столбец должен быть SourceFile. Второй столбец может быть «Ключевые слова» (для IPTC:Keywords) или «Тема» (для XMP:Subject). Я бы предложил тему, так как это более современный стандарт. Я верю, что LR будет читать и то, и другое.

После этого команда должна выглядеть примерно так:
Exiftool -sep ", " -csv=/path/to/file.csv /path/to/target/files
Если файлы находятся в нескольких каталогах, просто добавьте эти каталоги. Вы можете добавить -rв рекурсию. Exiftool должен обрабатывать только те файлы в CSV-файле, которые включены в каталоги командной строки.

Параметр -sepуказывает значение, которое следует использовать для разделения каждого элемента ключевых слов.

Дополнительная литература
Exiftool docs on -csv
Exiftool FAQ 26, Как мне импортировать информацию из базы данных?

Спасибо. Я прочитал часто задаваемые вопросы. Существующие файлы XMP содержат ключевые слова, разделенные запятыми, в поле XMP:Subject. В файле CSV легко заменить TAB запятой или двоеточием. Что касается исходного файла: вы имеете в виду XMP или файл изображения? На мой взгляд, исходным файлом является TXT-файл, содержащий полный путь к XMP-файлу (целевому) в 1-м. столбец и значение (ключевое слово) во втором столбце, которое exiftool должен добавить в поле XMP:Subject соответствующего целевого файла в первом столбце. Итак, зачем мне «/путь/к/цели/файлам»?
> В файле CSV легко заменить TAB запятой или двоеточием. Извините, я делаю предположения о вашем CSV. Чтобы Exiftool мог его прочитать, второй столбец должен быть заключен в кавычки. Вы не упомянули об этом в своем примере, поэтому я предложил импорт/экспорт. Чтобы быть более явным, csv должен выглядеть такSourceFile,Subject c:\path\to\image.jpg,"keyword 1, keyword 2, keyword 3"
Что касается необходимости /path/to/target/files, из документов «При импорте из CSV-файла обрабатываются только файлы, указанные в командной строке. Любые дополнительные записи в CSV-файле игнорируются». Я считаю, что это означает, что если у вас есть в вашем CSV, например, один путь к файлу /path/to/target/files/image.jpg и /path/to/other/files/image2.jpg и только /path/to /target/files/ в вашей командной строке, image2.jpg не будет обработан.
Спасибо еще раз. Не беспокойтесь о редактировании CSV. Я начну разбираться в этом. Я уверен, что exiftool может получить целевой путь и связанные значения из TXT-файла, а затем записать значения в соответствующий XMP-файл. Я отпишусь, как только получу решение (может занять некоторое время).