下载iCloud相册

使用docker-icloudpd同步。文档在这里

准备工作

首先需要创建一个docker网络:

1
2
3
4
5
6
docker network create `
--driver=bridge `
--subnet=192.168.115.0/24 `
--gateway=192.168.115.254 `
--opt com.docker.network.bridge.name=icloudpd_br0 `
icloudpd_bridge

然后创建两个文件夹,config和icloud,分别用于存放配置文件和同步下来的相册。

如果有多个账号需要同步,可以启动多个容器,每个容器使用不同的config和icloud文件夹。
假如用户名为alice,文件夹可以设为config_alice和icloud_alice,之后都以alice为例。

运行容器

1
2
3
4
5
6
7
8
9
docker run `
--name icloudpd_alice `
--hostname icloudpd_alice `
--network icloudpd_bridge `
--restart=always `
--env TZ=Asia/Shanghai `
--volume "$(pwd)/config_alice:/config" `
--volume "$(pwd)/icloud_alice:/home/alice/iCloud" `
boredazfcuk/icloudpd

这里直接指定了环境变量TZTZ的取值可以在https://nodatime.org/TimeZones查看。

容器中的/config目录为配置目录,/home/$(user)/iCloud目录为下载目录,$(user)取值为/config/config.cnf配置中的user项。

注意user要有访问$(pwd)/icloud_alice$(pwd)/icloud_alice的权限。

比如在linux下,不要挂载到/root/目录下,容易出现权限问题。

配置

在运行容器后,会因为没有设置apple_id而挂起。此时在$(pwd)/config_alice/目录下会产生config.cnf配置文件,我们需要先修改配置。

user: 将user改为alice。注意默认的user_idgroup_id都为1000:第一个普通用户。

apple_id: 将apple_id改为你的Apple ID。

icloud_china: 如果使用国内网络,需要设为true,使用icloud.com.cn,不然苹果会将icloud.com重定义到icloud.com.cn引起混乱。
auth_china: 如果使用国内网络,需要设为true,使用icloud.com.cn,不然苹果会将icloud.com重定义到icloud.com.cn引起混乱。

其余配置参见文档

初始化/登录

运行初始化命令:

1
docker exec -it icloudpd_alice sync-icloud.sh --Initialise

根据命令行显示的提示,输入登录密码和2次两步认证码。输完第1次验证码后,点确认将框取消,准备

完成

此时容器会自动开始同步,可以通过docker logs icloudpd_alice -n 10 -f查看同步进度。

默认同步周期为每24小时同步一次,这个时间间隔不要配置成小于12小时,会触发苹果限流。

登录过期

保持的登录信息有效期是90天,可以在$(pwd)/config_alice/DAYS_REMAINING文件查看剩余天数。

默认提前7天会每天发通知,需要在配置文件里设置通知notification_type类型。