如何导出 Google Photos 的照片 您所在的位置:网站首页 djigo怎么导出照片 如何导出 Google Photos 的照片

如何导出 Google Photos 的照片

2024-05-11 09:54| 来源: 网络整理| 查看: 265

Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。

承接上一篇《我为什么弃用 Google Photos》,这篇讲述如何将照片导出 Google Photos。我将说下遇到的不少问题,以及提出两个方法去解决。

遇到问题

Google Photos 以相册形式去管理,你会通过自带的 Album 功能,把相关的照片放在同一个相册下。

你将遇到三个问题:

重复Meta 弄乱照片 Meta 文件不见了重复

例如,去天津旅游,就建一个「天津」,把相关的照片放一起。问题是,谷歌同样把你的照片都放在一个个以日期为名的相册里。我 10 月 10 日去的天津,拍了张 food.jpg,旅程结束后,我把这张照片以及其他沿途拍的放在「天津之旅」相册中。此时food.jpg出现在了两个文件夹里:

. ├── 2020-10-10 │ ├── food.jpg ├── 天津之旅 │ ├── food.jpg

所以将所有照片导出的时候,你会有两张一样的照片。

Meta 被移除

使用官方工具 Google Takeout 导出所有照片时,照片的 Exif 数据被移除,并放到一个额外的 JSON 文件里。以上面的例子,导出 2020-10-10 的照片,会得到 .jpg 和 .json:

. ├── 2020-10-10 │ ├── food.jpg │ ├── food.jpg.json │ ├── metadata.json

JPG 和 JSON 一般以成双出现,有的时候 JSON 命名为 文件名.扩展.json(上面的例子),有的时候则是 文件名.json。每一个相册,还会有一份 metadata.json,记录相册的 metadata。

谷歌把每一张照片原本的 Exif 数据(e.g. 地点、日期)抹掉,放到对应的 JSON 里。

{ "title": "IMG_7545.HEIC", "description": "", "imageViews": "0", "creationTime": { "timestamp": "158202xxxx", "formatted": "18 Feb 2020, 10:35:07 UTC" }, "modificationTime": { "timestamp": "158362xxxx", "formatted": "8 Mar 2020, 00:50:35 UTC" }, "geoData": { "latitude": 25.382409333333334, "longitude": 169.39753444444445, "altitude": 78.39409156147392, "latitudeSpan": 0.0, "longitudeSpan": 0.0 }, "geoDataExif": { "latitude": 22.242533333333334, "longitude": 114.15739444444445, "altitude": 80.11492156147392, "latitudeSpan": 0.0, "longitudeSpan": 0.0 }, "photoTakenTime": { "timestamp": "1581511593", "formatted": "12 Feb 2020, 12:46:33 UTC" } }

如果不管 JSON 直接导入到新的照片服务,你照片会没有日期、地点,时间次序是错的。

注:有些照片我的 Exif 丢了,有些照片则没丢。可能和是否使用原图上传的设置有关,可能压缩后,就会把原本的 Exif 移除掉,变成 JSON。

JSON 并非一一对应

导出后,JSON 并不一定有与之一一对应的照片。有可能有照片,却不见了 JSON;也可能有 JSON,却没找到照片。

Google Takeout 在导出照片时,会把所有数据根据总体大小切割成一份份 .zip 文件,有可能在分割的过程里,JSON 和照片归在不同的 ZIP 中。解压后,自然在不同文件夹。

导出方法

我摸索后,发现有两种方法:

先导出,后处理先处理,后导出(我的做法)

第一个方法,偏技术性,需要用到命令行。第二个方法是我用的方法,比较简单,不过重复性的动作较多。

无论前者还是后者,你都需要从 Google Takeout 导出数据:

去 Google Takeout选取需要的相册后,导出下载解压先导出,后处理(第一个方法)

(当时进行迁移时,网上还没有那么多关于 Google Photos 导出教程,所以我自己并没有使用这个方法。)

简介:在 Google Takeout 一键导出,然后治理照片重复以及 Exif 问题。这需要使用第三方开源工具 ExifTool,将 JSON 里的信息再次转换为图片的 Exif。

先导出

Google Takeout 导出时,应该全选所有相册,避免有漏掉的照片。下载并解压后,得到庞大的文件数量,我四年的数据导出时生成了八万多个文件(照片、视频、JSON)。

├── 2018-05-27-28 │ ├── IMG_20180528_122431.jpg │ ├── IMG_20180528_122431.jpg.json │ ├── IMG_20180528_132828.jpg │ ├── IMG_20180528_132828.jpg.json ├── 2019-06-29 │ ├── IMG_20190629_161802.jpg.json │ ├── IMG_20190629_161804.jpg.json │ ├── IMG_20190629_161809_Bokeh.jpg.json

能看到有些文件夹(e.g. 2019-06-29)只有 JSON,而没有与之对应的照片。接下来,把 JSON 里的内容合成到原本照片里。

后处理

首先,安装免费开源工具 ExifTool,支持 Windows、macOS 和 Linux。macOS 用户可以使用 Homebrew 下载 brew install exiftool。

我们通过这个工具来对照片的 Exif 进行读写,将 JSON 信息抽取出来,写到 Exif 中。

用到的命令如下,按需修改。

如果文件名为 文件名.扩展.json,使用的代码格式为:

exiftool -tagsfromfile '%d/%F.json' '-ImageTag


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有