Google 相册迁移到群晖 NAS,怎样让日期不乱?
怎样把 Google Takeout 导出搬到群晖 NAS,让 Synology Photos 显示正确的拍摄日期,以及一个以后也好用的文件夹结构。
你把 Takeout 文件夹复制到了群晖上,打开 Synology Photos,时间线上是一整面墙的照片,全在复制那天。文件夹里混着几千个 .json 文件,相册文件夹又把一半的照片重复了一遍。
NAS 只是照做而已。文件得先修好再放上去。
Synology Photos 怎么给照片定日期
Synology Photos 索引每个文件时,图片从 EXIF 的 DateTimeOriginal 读日期,视频从容器元数据读。两者都没有,就用文件的修改时间。它不读 Google 的 .json 附属文件,要么列为不支持,要么直接隐藏。
通过 SMB 或 File Station 复制文件时,很多情况下修改时间会变成复制的那一刻,而解压时在你电脑上就已经变过一次了。所以任何 EXIF 缺失的照片,现在显示的都是你复制的那天。
旧版 DSM 的 Photo Station 一样,你指向这个共享文件夹的任何其他索引工具也一样,比如 Container Manager 里跑的 Plex 或 Immich。
先在电脑上把元数据修好
NAS 处理几万个小文件很慢。在台式机或笔记本上修好,再把完成的文件夹一次性复制过去。
把所有 Takeout 分卷解压到同一个文件夹。然后把附属文件里的日期写进文件。用 exiftool:
exiftool -r -d %s -tagsfromfile "%d/%F.supplemental-metadata.json" \
"-DateTimeOriginal<PhotoTakenTimeTimestamp" "-FileModifyDate<PhotoTakenTimeTimestamp" \
"-GPSLatitude<GeoDataLatitude" "-GPSLatitudeRef<GeoDataLatitude" \
"-GPSLongitude<GeoDataLongitude" "-GPSLongitudeRef<GeoDataLongitude" \
-ext jpg -ext heic -ext png -overwrite_original .
视频用 QuickTime 日期标签再跑一遍,截断的和带 (1) 的附属文件名要单独处理。完整流程见 exiftool 修复指南。免费脚本 GooglePhotosTakeoutHelper 能做配对,也能按年份分文件夹。
Takeout JSON Metadata Fixer 把这件事做成了桌面软件,支持 Windows、Linux 和 Mac,界面有简体中文。
选择 Takeout 的 zip。软件把真正的日期和 GPS 写进每张照片和视频,把文件时间改成一致,再按你选的文件夹结构整理输出。它可以直接写到挂载的网络共享上,但写到本地硬盘再把完成的目录树复制到 NAS 更快。前 1000 张照片免费,无限制一次性 19.99 美元。
给 NAS 选一个文件夹结构
Synology Photos 不需要什么结构,它按日期建时间线。但你也会从电脑上浏览这个共享文件夹,好的结构让备份和以后再搬家都更省事。
年然后月对大多数人合适:2019/07-July/2019-07-14-1105_Shanghai.jpg。这是软件「年/月」模板的输出。每个文件夹都不会太大,找一次旅行只要打开两层。只按年分,一个文件夹里会有几千个文件。按年月日分,又会有几百个很小的文件夹。取舍见照片按年月整理进文件夹。
想让全家人都在 Synology Photos 里看到,就放在共享的 photo 文件夹下;只是你自己的,放在个人空间 homes/你的用户名/Photos。不要两处都放。
跳过 Takeout 的相册文件夹。每一个都是年份文件夹里已有照片的副本。Synology Photos 有自己的相册功能,可以从时间线上重建,而一个全是重复文件的文件夹会让每次备份都大一倍。用软件整理的话,同一个源文件不会往同一个目标写两次,大部分相册副本在路上就被去掉了。
复制到 NAS
把完成的目录树一次性复制过去。Mac 上在访达里拖到挂载的共享上。Windows 上用文件资源管理器,或者用 robocopy 加 /COPY:DAT 保留时间戳。Linux 上 rsync -a 保留日期。千兆网络下,200 GB 的相册大约半小时;Wi-Fi 要一整夜,所以插网线。
不想走网络的话,把目录树放到移动硬盘上,插到 NAS 上,再用 File Station 复制到位。大相册通常在 NAS 上从 USB 复制最快。USB 那一步见照片复制到 U 盘并保留日期。
索引
Synology Photos 在后台索引新文件。大相册要几个小时,而且会拖慢 NAS。放一晚上。完成后打开时间线,滚到某个早年份。照片在那里显示真实日期,说明元数据写对了。某一批显示的是复制日期,用 exiftool 检查这些文件是不是缺 DateTimeOriginal。
时间线不更新的话,可以在 Synology Photos 设置里强制重新索引。删掉隐藏的 @eaDir 文件夹会强制重新生成缩略图,一般用不着。
群晖上的 HEIC
Synology Photos 能显示 HEIC,但只限装了 Advanced Media Extensions 套件的型号,而这个套件要登录群晖账号。你的型号不支持,或者你不想登录,就在复制之前把 HEIC 转成 JPG。软件可以转,元数据一起带过去。见 Takeout 的 HEIC 转 JPG 不丢日期。
常见问题
Synology Photos 会读 GPS 吗?
会。它读 EXIF 的 GPS,在地图视图里显示照片。Takeout 里没有真实位置的照片不会出现在地图上。
JSON 文件能留在 NAS 上吗?
能,但 Synology Photos 不会用它们,而且每个文件夹都会很乱。日期写进文件之后,删掉。
用 Synology Photos 还是在 NAS 上跑 Immich?
都行。两者都从文件里读日期,准备工作一样。Immich 搜索和人脸识别更好;Synology Photos 不用配置。有人在同一个文件夹上两个都跑。
视频对了照片不对,或者反过来,为什么?
照片和视频把日期存在不同的地方。只写 EXIF 的工具修好了照片。只改文件时间的工具,Synology 从元数据读的那部分一样没修。分别用 exiftool 检查。