一尘不染

来自Google Takeout的jpg批量加入json和jpg

json

我想留下Google照片,并且已经使用Google
Takeout下载了所有照片。现在,我有一大堆包含json文件(我认为包含exif数据)和图像的文件夹。结构如下所示:home / user /
Billeder / Takeout / Google Photos / 2011-06-09 / file.json。主页/用户/ Billeder /
Takeout(2)/ Google相册/2011-07-09/file.json。

我想将json数据与正确的图像合并,并在与它们的创建日期相对应的文件夹中组织图像。我一直在看Exiftool,但是到目前为止找到的所有答案仅显示了如何针对单个图像执行此操作。我正在寻找的是一种将所有数据与正确的图像批量合并的方法。

我正在尝试在linux命令行中执行此操作。有没有办法做到这一点?


阅读 1266

收藏
2020-07-27

共1个答案

一尘不染

从版本10.47开始,Exiftool现在可以执行此操作。

在我的测试中,我看到了json文件名的两种不同格式,有的格式filename.ext.json和有的格式(json文件名中filename.json没有扩展名)。这里有两个命令可以解决这两种情况。如果像我一样混合使用,请同时运行。

json文件名中带有扩展名的文件
exiftool -tagsfromfile '%d/%F.json' '-ImageTag<JsonTag' FileOrDir

json文件名中没有扩展名的文件
exiftool -tagsfromfile '%d/%f.json' '-ImageTag<JsonTag' FileOrDir

FileOrDir您要处理的文件或目录替换。替换ImageTag为要复制到的图像中标签的名称。替换JsonTag为您要复制的json文件中标签的名称。如果您使用的是Windows而不是Linux,请使用双引号而不是单引号。

这是我在json文件中遇到的一些更有用的标签,以及将它们复制到哪里的建议。标签名称中的两个(描述和标题)与相关的XMP标签相同,因此无需将其重定向到图像标签名称,可以简单地用上述命令-Description-Title在命令中保留。
description :文件描述。适当的放置位置是IPTC:Caption-
Abstract,XMP:Description和EXIF:ImageDescription。你可以用复制这些'-Caption- Abstract<Description'-Description'-ImageDescription<Description'
title :上传文件的名称。这可以被复制到TitleObjectDescriptionPreservedFileName

:不确定,但是我猜测如果文件中有人在Picasa之类的程序中标记了人,则这将是名称列表,很可能来自RegionPersonDisplayName
url :这是可以从中下载图像的URL。警告:这是一个公共共享的URL,即使该图像被标记为私有,仍可以使用该URL下载。
GeoInfoAltitude_GeoInfoLatitude_GeoInfoLongitude_
:如果上载的文件已进行地理标记,则这些将是图像的高度,纬度和经度。这些将最好复制到GPSAltitudeGPSLatitudeGPSLatitudeRefGPSLongitude,和GPSLongitudeRef。由于GPS标签(无符号),图像是在西方和/或南半球的性质
必须 也设置了Ref标签。

示例命令:
复制gps标签
exiftool -tagsfromfile '%d/%F.json' '-GPSAltitude<GeoInfoAltitude_' '-GPSLatitude<GeoInfoLatitude_' '-GPSLatitudeRef<GeoInfoLatitude_' '-GPSLongitude<GeoInfoLongitude_' '-GPSLongitudeRef<GeoInfoLongitude_' FileOrDir

复制关键字
exiftool -tagsfromfile '%d/%F.json' '-Keywords<Tags' '-Subject<Tags' FileOrDir

复制说明
exiftool -tagsfromfile '%d/%F.json' '-Caption-Abstract<Description' '-ImageDescription<Description' -Description FileOrDir


编辑(2018年1月):谷歌将一如既往地改变一切。上面的 GeoInfo 标签已根据以下注释弃用,并已由 GeoDataAltitude
GeoDataLatitudeGeoDataLongitude取代* 。

Exiftool可以读取Json文件,因此,如果有其他更改,运行命令exiftool -s FILE.Json将列出所有可以复制的标签和可用数据。

2020-07-27