Takeout JSON

Google 相册的照片怎么搬到百度网盘或本地硬盘,日期不乱?

把 Google Takeout 导出搬到百度网盘、其他国内网盘或移动硬盘的顺序:先在电脑上修好日期和位置,再选一个文件夹结构,最后一次性上传或复制。

很多人是这样的情况:在国外用了几年 Google 相册,现在要回国,或者单纯不想再依赖它,想把照片搬到百度网盘、别的国内网盘,或者干脆放到一块移动硬盘上。Takeout 下载下来了,一解压,几千个 .json 文件,相册文件夹里全是重复,每张照片的日期都是解压那天。

直接把这个文件夹传上网盘,网盘里看到的就是同样的一团乱。先修,再传。

网盘和硬盘怎么看照片的日期

网盘的图片时间线,和大多数相册软件一样,读的是照片文件内部 EXIF 里的拍摄时间。读不到,就用上传时间,或者文件的修改时间。移动硬盘上用文件资源管理器或访达看,默认按修改时间排,「拍摄日期」列也是从 EXIF 读的。

Takeout 导出的问题是,相当一部分照片的 EXIF 里没有拍摄时间。相机直接拍的通常有,截图、微信保存的图片、扫描件,还有你在 Google 相册里手动改过日期的照片,都没有。Google 把这些照片的真实日期放在旁边的 .json 文件里,网盘和硬盘都不读它。上传的过程还会把文件的修改时间再改一次。

结果就是:一部分照片日期对,一部分全落在上传那天。原因详见 Google Takeout 导出的照片日期全不对

第一步:在电脑上把日期和位置写进照片

这一步在上传或复制之前做,只做一次。目标是让每张照片的 EXIF 里有拍摄时间和 GPS,文件时间和它一致。这样照片以后去哪都不会再错,网盘、硬盘、新手机、NAS 都一样。

把所有 Takeout 分卷解压到同一个文件夹。然后把附属文件的数据合并进照片。手动的话用 exiftool,命令和坑在 exiftool 修复指南

Takeout JSON Metadata Fixer 把这件事做成了桌面软件,Windows、Linux 和 Mac 都有,界面是简体中文。选择 Takeout 的 zip 或解压后的文件夹,选一个输出文件夹,点开始。它把每张照片和附属文件配对,包括截断的文件名和带 (1) 的重复,把拍摄时间和 GPS 写进照片和视频,把文件时间改成一致。相册文件夹里的重复照片只写一次。全部在你的电脑上完成,不上传,不需要账号。前 1000 张照片免费,之后一次性 19.99 美元。

第二步:选一个网盘里也好用的文件夹结构

Takeout 原来的结构是 Photos from 2019 这样的年份文件夹,加一堆相册文件夹。相册文件夹是年份文件夹里照片的副本,传上去会让空间翻倍,不要传。

按年/月分是最稳的:2019/07-July/2019-07-14-1105_Shanghai.jpg。在网盘的文件视图里一眼能找到,在硬盘上不用任何软件也看得懂。文件名带日期和地点之后,就算网盘的时间线读不出什么,光看名字也知道这是哪年哪月在哪拍的。取舍见照片按年月整理进文件夹

软件的「年/月」模板直接输出这个结构。地名来自 GPS 坐标,查询用 OpenStreetMap,需要联网;不想联网就关掉,文件名里就没有地点。

HEIC 要不要转成 JPG,看目标。移动硬盘以后要在 Windows 电脑上看,或者要给长辈的手机和电视看,转成 JPG 省事,软件可以在同一次运行里转,元数据一起带过去。只是放网盘备份,可以保留 HEIC,文件小一半。见 Takeout 的 HEIC 转 JPG 不丢日期

第三步:一次性上传或复制

修好、整理好的输出文件夹,整个传上网盘。用网盘的电脑客户端拖整个文件夹,比网页一批批选稳。大相册要传很久,插网线,放一晚上。传完在网盘的图片视图里滚到某个早年份,看日期是不是对的。

移动硬盘的话,直接把输出文件夹复制过去。Windows 上用 robocopy 加 /COPY:DAT 能保留文件时间戳,Mac 上访达拖过去就行。复制会不会重置文件时间其实无所谓,因为日期已经在文件内部了。软件也可以直接把输出写到 U 盘或移动硬盘上。

不管去哪,.json 文件不用带。日期写进照片之后它们就没用了。见 Takeout 的 JSON 文件可以删除吗

网盘不是唯一的副本

网盘是一份备份,不是相册的家。账号可能被限速、被清理,服务也可能变。整理好的那份放在自己的移动硬盘上,网盘再放一份,是比较稳的做法。原始的 Takeout zip 再留一个月,确认新的一份没缺什么再删。

常见问题

能不修直接传,以后在网盘里改日期吗?

网盘一般没有批量改拍摄时间的功能,就算有也只改网盘自己的记录,文件本身还是错的。下载下来再去别的地方,问题又回来。在电脑上修一次,写进文件,一劳永逸。

上传之后文件的修改时间变了,日期会错吗?

不会,只要拍摄时间在 EXIF 里。网盘和相册软件先读 EXIF,读不到才看文件时间。这就是修的时候要写进文件内部的原因。

视频的日期呢?

MP4 和 MOV 不用 EXIF,日期存在视频容器的另一组标签里。软件写的就是那里。只改文件时间的工具修不好视频。

传回 Google 相册或者另一个 Google 账号呢?

一样先修再传。Google 相册上传时只读文件里的 EXIF,不读附属文件。