Instagram media.json Как добавить их в exif? - PullRequest
0 голосов
/ 18 июня 2019

Я получаю свои фотографии из Instagram, и я получаю zip-файл со всеми фотографиями, которые у меня есть, но на них нет данных exif.

В zip-файле также есть json-файл, называемый media.где все эти важные метаданные.Так есть ли способы получить метаданные для этих фотографий exif?

Exiftool может импортировать вещи из файлов в exif, но сначала мне нужно знать, какой формат должен быть в файле метаданных?

Это пример того, что такое содержимое файла instagram media.json и какой формат:

{
   "photos": [
      {
         "caption": "#nautitaan #kesä2019",
         "taken_at": "2019-06-08T03:30:25",
         "location": "Jokioinen",
         "path": "photos/201906/b65bbda42ba74424a9d7be0c5163f78d.jpg"
      },
      {
         "caption": "#lupanauttia #kesä2019",
         "taken_at": "2019-06-07T07:42:38",
         "location": "Jokioinen",
         "path": "photos/201906/29fb24838136a1e80439ad7dcae00b4f.jpg"
      }
   ]
}

Мне нужны только эти taken_at записи, все остальные вещи просто плюс.

1 Ответ

0 голосов
/ 18 июня 2019

Exiftool может читать файлы JSON.Если вы запустите команду exiftool -g1 -a -s в своем примере JSON-файла, вы получите список имен тегов, которые вы можете использовать для копирования в файл изображения.Используя ваш пример, результат будет

[JSON]          PhotosCaption                   : #nautitaan #kesä2019, #lupanauttia #kesä2019
[JSON]          PhotosLocation                  : Jokioinen, Jokioinen
[JSON]          PhotosPath                      : photos/201906/b65bbda42ba74424a9d7be0c5163f78d.jpg, photos/201906/29fb24838136a1e80439ad7dcae00b4f.jpg
[JSON]          PhotosTaken_at                  : 2019-06-08T03:30:25, 2019-06-07T07:42:38

Проблема сейчас в том, что существует несколько элементов для каждого имени тега.Инструмент Exiftool очень гибок в отношении того, как он читает числа для отметок времени (см. exiftool FAQ 5 ), поэтому, если первая запись правильная, вы можете просто использовать
exiftool -TagsFromFile FILE.Json "-DateTimeOriginal<PhotosTaken_at" FILE.jpg

Если вы хотите использовать вторую запись, вы можете использовать опцию -listitem .
exiftool -listitem 1 -TagsFromFile FILE.Json "-DateTimeOriginal<PhotosTaken_at" FILE.jpg
Обратите внимание, что индекс списка начинается с 0, поэтому для получения второго элемента, вы должны индексировать # 1.

Для массового копирования, предполагая, что базовое имя файла json совпадает с файлом изображения и в том же каталоге, вы можете использовать эту команду
exiftool -TagsFromFile %d%f.Json "-DateTimeOriginal<PhotosTaken_at" /path/to/image/files/

Эта команда создает файлы резервных копий.Добавьте -overwrite_original для подавления создания файлов резервных копий.Добавьте -r, чтобы перейти в подкаталоги.Если эта команда запускается под Unix / Mac, поменяйте местами двойные / одинарные кавычки, чтобы избежать интерпретации bash.

...