最近 Gmail 收到一封邮件说是 7 月份就不能用 takeout 批量导出 Archive Albums 了, 我之前 Blogger 上存的图片不多, 绝大部分都在 Google Photos 里面.
想着这样下去指不定哪天 Google 就把 Google photos 的免费 takeout 关了, 想想上面还是存了几千张照片的.
而且因为最近都一直用 immich 代替 google photos, 体验也挺不错的, 干脆把 Google photos 里的旧照片打包弄出来导入 immich, 完全告别 google photos.
于是看到了这个 issue https://github.com/immich-app/immich/discussions/1340 正是我想要的
想了解 immich 功能的可以看看项目地址 https://github.com/immich-app/immich 更新非常频繁而且时不时有 breaking change, 如果想稳定使用建议固定版本或者更新服务端前仔细阅读 changelog
首先肯定是去 takeout.google.com 把你的照片打包弄出来, 最好选择英语导出, 我只选了 Google photos 和 AlbumArchive, 格式 zip, 单个包直接选 50G, 反正系统很新不怕解不了压. 几个小时后就收到 Google 的邮件和下载链接了.
然后重要的地方是: 把下载好解压出来的 Takeout 文件夹复制到你 linux 文件系统里, 不要在挂载的 smb 共享里操作, 因为文件系统的区别(比如大小写敏感度的不同), issue 里提到的几个工具都有可能会报错!
接下来就是选择你希望的导入方式, 如果你想保留 google photos 里面的一个个的相册.
那么可以用https://github.com/MrYakobo/exif-wrapper
这个脚本
它会在你的 Takeout/Google Photos 里生成 mattwilson1024/google-photos-exif 这个工具需要的文件夹
然后你就可以用 bash 脚本批量上传到你的 immich 服务器
#!/bin/bash
KEY="YOURKEYHERE"
SERVER="https://photos.yourdomain.com/api"
BASE_DIR="/foo/bar/Takeout/Google Photos/AlbumsProcessed"
# Change the working directory to BASE_DIR
cd "$BASE_DIR"
for album in "$BASE_DIR"/*; do
if [ -d "$album" ]; then
echo "Uploading album: $album"
immich upload \
-y \
--key "$KEY" \
--server "$SERVER" \
-d "$album" -t 16 -al
fi
done
我自己选择的是第二个工具, 因为我从来没有手动整理过 Google 相册, 所以我只需要简单的时间线和地理位置就行了, 而且相比第一个工具, 第二个工具能处理的文件扩展名更多 https://github.com/garzj/google-photos-migrate
我用的 ubuntu cloud 22.04 的虚拟机, 用别的发行版的可以自行改动一下 先安装 nodejs, 注意版本需要>=14, 我这里装 16 并安装 Yarn 包管理器
curl -sL https://deb.nodesource.com/setup_16.x | sudo bash -
sudo apt install gnupg2
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
sudo apt update && sudo apt install yarn
然后下载 google-photos-migrate 并安装依赖
git clone https://github.com/garzj/google-photos-migrate.git
cd google-photos-migrate
yarn
此时要注意, 如果你 takeout 选择的语言不是英语, 需要修改 src/meta/find-meta-file.ts 加入你相册里面可以看到的对应语言的'edited'后缀, 不加的话这部分的图片会找不到对应的 meta file.
woExt = woExt.replace(/-(edited|bearbeitet|modifié)$/i, '');
修改完保存然后继续编译执行
yarn build
mkdir output error
yarn start '/path/to/takeout/Google Photos' './output' './error'
等待它执行完, 你需要上传的就是 output 文件夹里的内容, 重复的会放在 /output/duplicateXX 文件夹里, 可以自行决定删除哪个, 也可以直接上传, immich 会过滤掉 hash 一致的图片, 如果还有重复的估计就是缩略图, 自己看着删除或者写个比较大小的脚本删吧.
上传直接用 immich cli 就行了
yarn add immich
yarn immich upload --key YOUR_IMMICH_API_KEY --server http://docker.lan:3001 --recursive /home/bar/google-photos-migrate/output/
注意一下, immich 新加的 typesense 识图的时候会把 cpu 吃饱(我的 13400 直接 16 线程吃满 90%了...), 如果你上传的虚拟机不幸卡死, 可以等 immich 服务器那边 load 下去以后, 再上传一次, 它会自动对比云端和本地的文件, 不会上传重复的照片.
上传完就可以和 Google Photos 说再见了. 当然如果你用的 icloud 之类的,可以先把 icloud 的图片全部下载到手机, 然后用 immich 的 app 同步手机里的图片视频到 nas, 同步完以后再关闭 icloud 的图片同步功能, icloud 会直接腾出空间给你同步其它的内容, 照片会在暂存一个月后永久删除.
1
stephen2009 2023-06-24 20:31:30 +08:00
楼主好,使用 rclone 挂载网络硬盘(比如 onedrive ),然后把照片储存在网络硬盘上,这样情况下,可以使用 immich 吗?谢谢!
|
2
zx900930 OP @stephen2009 只要你能挂载到你的文件系统下,immich 就能处理,我 immich 的数据文件夹就是远程挂载的。
|
3
stephen2009 2023-06-24 20:46:54 +08:00
@zx900930 #2 好的,immich 对硬件要求高吗?甲骨文 AMD 免费机不知道能不能带的动?
|
4
ggmood 2023-06-24 20:49:26 +08:00 via iPhone
楼主感觉 OneDrive 算不算一个好的替代方案?我这里上传下载不算稳定,有时抽风
|
5
0o0O0o0O0o 2023-06-24 20:51:45 +08:00 via iPhone
|
6
winterbells 2023-06-24 21:32:35 +08:00
@ggmood 收费之后我就转到 Onedrive 了,速度还算可以,但客户端真的差劲(包括网页端)。刚上传的本地文件都还没删呢,点击查看就是已删除 /没权限。。
|
7
zx900930 OP @stephen2009 只建议在 nas 上跑,不建议上公共云
|
8
iooco 2023-06-24 21:59:24 +08:00 via Android
@winterbells 我也是 onedrive 好废材的感觉 客户端不好用 win 的文件管理器照片多了加载缩略图好卡 我 tm 都 i9 了 还是卡 佛了 那个照片应用只能用个人账号 企业教育版的账号都用不了 不知道用起来咋样
|
9
xlsepiphone 2023-06-24 23:07:48 +08:00
目前我的照片都是先同步群晖 Photo ,群晖 syncthing 到 pixel ,pixel 无损备份到 Google Photos 。
|
10
jeesk 2023-06-25 01:05:47 +08:00
@0o0O0o0O0o 加 https 不就行了吗? 如果服务厂商要查你文件, 你还真没办法。
|
11
williamx 2023-06-25 07:24:49 +08:00
嗯……什么情况需要 takeout ?
|
12
0o0O0o0O0o 2023-06-25 07:40:51 +08:00 via iPhone
@jeesk 被黑的风险啊,谷歌微软有顶级团队来确保不被黑,自建哪有。
|
13
lyz1990 2023-06-25 07:54:04 +08:00 via Android
@xlsepiphone 我跟你一样的路径😬
|
14
yyysuo 2023-06-25 08:46:15 +08:00
@0o0O0o0O0o 大部分人的照片也没什么机密吧。
|
15
0o0O0o0O0o 2023-06-25 08:52:14 +08:00 via iPhone
@yyysuo #14 选择自建服务的本来就是少数,在这个群体里我觉得注重数据安全的占比还是高一些的。
|
16
winterx 2023-06-25 09:00:55 +08:00
@xlsepiphone syncthing 是 docker 部署的吗?
|
17
Planehi 2023-06-25 09:01:25 +08:00 via Android
我的服务器跑着 photoprism, 在犹豫要不要转 immich
|
18
chronos 2023-06-25 09:22:22 +08:00
@Planehi 我是从 Photoprism 转到 immich 的,第一感受就是浏览速度真快。immich 有 ios 和 android 的 app ,我在家里的 nas 使用 docker-compose 方式部署 immich server 后定期用 app 同步上传一下照片,也解决了我老婆的 iphone 只有 256G 但又经常给娃拍照拍视频导致空间不够用的问题。
|
19
l4ever 2023-06-25 09:35:56 +08:00
我都是丢到"时光相册"的. 好像用了好多年也没关闭.
|
20
Planehi 2023-06-25 09:37:29 +08:00 via Android
@chronos 大佬,我现在的方案是通过 app 同步到 nextcloud ,然后 photoprism 读取存储图片的路径内的所有文件,如果换 immich 的话用他的 app 上传图片,就得在 nextcloud 手动更新索引才能在 nextcloud 也显示照片,是不是会比较麻烦?还是说我应该把图片从 nextcloud 里搬出来单独存储会比较好?
|
21
conky 2023-06-25 09:39:56 +08:00
感觉和我的 sysnology photo 没啥区别,就不搞了
|
22
qW7bo2FbzbC0 2023-06-25 09:43:58 +08:00
刚好周末从 google photos 上批量把因为硬盘故障丢失的照片传回本地了,本地+syncthing 异机备份
|
23
Misyo 2023-06-25 09:55:23 +08:00
immich 好像没人脸识别功能吧,看时间线说的是后面会增加
|
26
willxiang 2023-06-25 10:09:10 +08:00
|
27
chronos 2023-06-25 10:10:44 +08:00 1
@Planehi 刚刚发现昨天 immich 又更新了一版,添加了对只读的现有库的支持。看起来可以将 nextcloud 之类的现有的图片文件夹纳入进来。
|
28
winterbells 2023-06-25 10:18:00 +08:00
@willxiang 我一直都以为它没这个功能。我之前试过汉字是搜不到的(只能搜到几张),几个月前的验光单也找不到了(因为缩略图很多不显示)
|
29
willxiang 2023-06-25 10:21:57 +08:00
@winterbells #28
能搜,但效果很烂,拿英文单词搜跟拿中文会搜到不同的结果 会识别图片中的文字(比如搜“车”,保险单中包含“车”,于是搜出来一大堆保险单或者带车这个文字的截图) 搜"car"会搜出汽车或者坐在汽车里的照片 也可以加标签,但是总体来说跟谷歌的比,很烂 |
30
jstony 2023-06-25 10:40:48 +08:00
瞄了一眼,还是继续用我的群辉
|
31
BlueBing 2023-06-25 10:54:13 +08:00
前几天尝试 compose 安装,不太流畅。
然后试用过程中总是莫名报错或卡住,数次重新安装未果,已被劝退。 |
33
jeesk 2023-06-25 11:26:21 +08:00
@0o0O0o0O0o 我的建议是使用组网工具, 在隧道里面安全
|
34
xlsepiphone 2023-06-25 13:49:31 +08:00
|
35
52acca 2023-06-25 23:59:15 +08:00 via Android
看了一下介绍,看来终于不用折腾黑群了
|
36
7lQM1uTy635LOmbu 2023-06-26 00:00:26 +08:00 via Android
感谢,教程很详细很实用,我前段时间 k8s 造了个 immich ,正愁不知道咋 upload 之前的一堆就看到了你这个。
|
37
lozzow 2023-06-26 09:17:10 +08:00 via Android
可以自己写识别的那个服务来中文化
|
38
nanoswit 2023-07-03 10:58:54 +08:00
感谢分享。正在做相同的操作,自己写了一个 python 脚本转换 GP 导下来的照片,这下可以抄作业了。
|
40
zx900930 OP @Misyo 不知道什么意思,那个 upload 不是路径是 immich 上传的 option 啊。
你可以在后面定义你想上传的路径。 |
41
Misyo 2023-07-12 14:03:26 +08:00
@zx900930 下载试用了一下,可以以不同设备及用户来备份及管理,可以在 Storage Template 中的 TEMPLATE 参数调整,但对于已有的照片及视频还不知道如何拿入 IMMICH 的管理(不采用 upload 的方式)
|
42
wishuloveme 2023-09-03 13:05:06 +08:00
@Misyo 用 npm 命令直接可导入已有目录,本质上还是通过 api 上传给 immich 再做输入,因此 immich 的 db 备份极为重要
|
43
ixdeal 327 天前
各位如果手机重置,如何把备份到 immich 中的图片/视频导回到新手机中?
|