五分钟搞定,群晖NAS自动同步iCloud照片(原尺寸或自动转换为JPG格式)
追加修改(2022-02-11 02:05:35):
做个追加修改,针对部分值友担心的安全问题讲几句:
1.教程里用到的映像来自于Docker Hub,官方源,大家可以点映像右侧的链接图标进入官方页面,全球拉取次数已经1M+,如软件有什么问题,应该已经炸锅了,Docker也会干预。
2.映像源码在github上有发布,贡献者不少,活跃度也很高,更新频率不错,有条件的朋友可以上去看看,进一步放心一些。另外有值友在2018年就分享了这个开源软件,现在已经2022年了。
3.软件同步策略是根据iCloud文件列表单向向NAS下载同步,不会反向对iCloud文件造成影响,就连同步“最近删除”功能,也是通过文件对比来实现的,如果文件列表里以前有的文件,现在没有了,表示已经删除,如删除的文件回复了,列表里又有了,再次下载进行恢复,纯单向操作。
4.如果实在是不放心,当个技术文档看一下,网上部署该软件的教程几乎都是先装个Linux操作系统,通过大量的命令来执行,我这个教程无非是多个思路,让更多不理解命令的人轻松部署,也节省一些不必要的硬件性能开销。
前情提要:
由于网上看到的所有教程,几乎没一个靠谱的,全部都是小白自行捣腾出来的步骤,评论里问题很多,看得让人心疼,所以趁娃子睡了,赶忙整理一篇保姆式的避坑教程。
本教程优势如下:
1.全程在群晖桌面上窗口式操作,不需要开启SSH权限,不需要下载SSH客户端,不需要使用群晖SSH最高权限,也不需要懂Linux命令,避免一切不必要的风险;
2.不浪费一丝一毫的NAS硬件资源,不需要Docker运行Linux操作系统容器,也不需要装什么Docker网页管理面板,Docker原生运行,性能直接拉满;
3.关键步骤反复叮嘱加图解,避免踩坑,贴心呵护直至顺利配置完成。
先说正题,操作流程如下:
一、管理员登录群晖桌面,这是句废话,但还是要说,举例,我的管理员账号为【xlang】。
二、打开群晖【File Station】,新建所需文件夹及文件:
docker/icloudpd/xlang
homes/xlang/Photos/iCloud
homes/xlang/Photos/iCloud/.mounted
三、打开群晖【套件中心】安装【Docker】套件。
四、打开安装好的【Docker】套件,点击左侧菜单【注册表】,搜索关键词“icloudpd”,双击下载星标最多的那个【boredazfcuk/icloudpd】。
五、左侧菜单切换到【映像】,稍等片刻,待下载完成后,双击开始创建容器。
六、容器名称,看你喜好,例如我就随手输了个“icloudpd-xlang”,然后点击左下方的【高级设置】。
七、勾选“启用自动重新启动”,这个不是必须的,如果你想长期丢那让NAS自动运行,那就勾上,不勾也是可以的。
八、切换到【存储空间】设置栏,添加以下两个文件夹的状态路径:
docker/icloudpd/xlang --> /config
homes/xlang/Photos/iCloud --> /iCloud
1.选择文件夹docker/icloudpd/xlang,装载路径/config
2.选择文件夹homes/xlang/Photos/iCloud,装载路径/iCloud
如下图所示:
九、切换到【环境】设置栏,新增以下三个变量:
apple_id:xxx@xxx.com
TZ:CST-8
download_path:/iCloud
1. apple_id:xxx@xxx.com
必须,输入你的iCloud服务的AppleID。
2. TZ:CST-8
非必须,中国时区按这个填写,网上清一色的要求填写Asia/Shanghai是无效的,还不如不新增这个变量。
3. download_path:/iCloud
必须,否则默认为/home/${user}/iCloud。
如下图所示:
十、点击右下角“应用”,返回到创建容器主界面,点击“下一步”,最后点击“完成”启动创建好的容器。
十一、回到Docker界面,双击刚刚创建好的“icloudpd-xlang”容器,查看日志,可以看到容器的运行情况,右下角转圈圈的图标多刷新几次,会看到下面的错误提示,就可以进入最激动人心的密钥文件创建的过程。
ERROR Keyring file /config/python_keyring/keyring_pass.cfg does not exist.
INFO - Please add the your password to the system keyring using the --Initialise script command line option.
INFO - Syntax: docker exec -it <container name> sync-icloud.sh --Initialise
INFO - Example: docker exec -it icloudpd sync-icloud.sh --InitialiseINFO Restarting in 5 minutes...
如下图所示:
十二、好了,到了要屏住呼吸的时刻了:1.切换到【终端机】一栏,点击【新增】右侧的下拉小箭头;
2.选择【通过命令启动】;
3.在弹出的对话框输入“/bin/sh”后点击【确定】;
4.左侧菜单选择打开刚刚新建的【sh】终端;
5.输入以下命令后回车,进行初始化:
sync-icloud.sh --Initialise
十三、开始进行苹果账号的双重认证了,创建cookie文件,有效期默认为90天,到期后需再进行一次认证:
1.如下图所示,按提示输入你的AppleID密码,盲输,这里不会显示你输入的内容,输入完成后回车;
Enter iCloud password for email@address.com:
2.如密码正确,会提示询问你是否保存,输入“y”后回车,不然就全剧终了;
Save password in keyring? [y/N]: y
3.这时候你登录了AppleID的设备上会提示是否允许登录的弹窗,先不要理会,在提示询问后输入数字“0”后回车;
Which device would you like to use? [0]: 0
4.在收到提示的设备上,点击【允许】登录,获取弹窗验证码,将该验证码按下面提示输入后回车;
Please enter validation code: 123456
5.校验通过后,Apple会通过短信,注意是短信发送二次验证码,这时候你设备上再有弹窗点击【允许】即可,弹窗验证码无需理会,短信验证码收到后,如下图所示,按提示输入数字0后回车,按提示输入6位数字的短信验证码,回车后完成二次验证文件的创建。
Please choose an option: [0]: 0
Please enter two-factor authentication code: 123456
十四、所有配置到此结束,重启容器,查看日志,看到以下内容,说明运行成功,在iCloud中生成文件列表,等着自动下载iCloud照片即可,默认为24小时增量下载一次,默认下载原始尺寸文件。
用上述方法,
下载iCloud上12740个原尺寸照片及视频,
用时9小时45分钟完成,
而采用iPhone下载,
从2月6日18点52分13秒开始,
到现在(2月9日18点56分)刚好72个小时,
还剩5660个文件等待下载中,
期间无数次因为手机内存被占满,
导致微信无法使用(提示微信正常使用需5.4G空间),
只能删除已下载已备份的内容,
来腾出一点运行空间。
一些扩展小知识:
1.网上最开始的开源软件是icloud_photos_downloader,也就是【注册表】里搜到的排第二的那个【icloudpd/icloudpd】,由于作者弃更,已经一年多没有更新了,虽然如此,但仍要感谢鼻祖大佬作出的贡献。
2.目前用的【boredazfcuk/icloudpd】是现作者在原【icloudpd】的基础上拓展而来,功能相当全面,配置也很简单,简直上天,可能由于作者对Docker的了解不够深入,所以给出的操作方法依然是Linux命令行的方式来配置,这一点可能导致了很多人第一步就去用Docker去安装一个Linux的操作系统,然后再安装Portainer来管理Docker,白白浪费大量的性能资源,这里还是要提醒大家避坑。
例如以下教程:
【知乎】如何备份iCloud照片到NAS?
作者一开始就用Docker安装了Ubuntu 20.04环境,然后再用大量的命令行部署Docker环境,接着再安装Docker管理面板Portainer以方便日后管理Docker,循环套娃,浪费掉大量性能。
【知乎】通过icloudpd间接实现iOS后台自动备份照片至群晖
作者进行了基础研究,避免了部分资源的浪费,但是用开启群晖SSH,安装SSH客户端,用群晖系统root权限来进行配置,里面也有大量的没必要的操作。
【知乎】群晖用docker的icloudpd同步icloud照片至Synology Photos并自动刷新
作者在上一篇教程上进行了修改,可能是排版原因,看的更加不知所云。
【小白记录】群辉 docker iCloud照片原尺寸备份
作者采用的是最开始的icloudpd,也是一开始就安装了Ubuntu,最后应该是成功了,但是配置繁琐,容易出错,每次备份100个照片。
3.所有的教程中,时区的设置都是Asia/Shanghai,这是个无效设置,最终结果就是容器运行时间为UTC时间,比北京时间晚8个小时,正确的设置应该是【CST-8】,不介意的话,影响不大,创建容器时可以不新增【TZ】这个变量。
icloudpd的一些扩展功能:
小提示:以下变量均可以在容器停止运行时进行增改,来调整相应的设置。
1.设置同步时间周期,默认为86400秒(24小时),自动运行同步iCloud上新增的 内容,如需修改,可在创建容器时,新增一下变量synchronisation_interval,并设置相应的值,例如43200(12小时)、129600(36小时)等,理论上设置为1秒也是可以的,但是苹果倾向于限制过于频繁的访问其服务器链接,默认设置个人认为是最佳值,iPhone会立即将文件上传到iCloud,如果手机丢失,当天拍摄的内容在iCloud也是安全的,容器会在晚上运行时下载这些内容。
synchronisation_interval:43200
2.设置多个容器同步的分钟数,默认为0,如果需要自动同步过多AppleID的iCloud内容,可以进行设置,新增变量synchronisation_delay,例如30分钟,避免多账户同时访问遭到苹果的风控限制。
synchronisation_delay:30
3.设置iCloud账户身份验证类型,默认为2FA,如果启用了双重认证,则有效值为2FA,否则为Web,如iCloud账户未启用双重认证,则必须新增变量authentication_type,设置为Web,如下所示:
authentication_type:Web
4.设置下载目标目录的文件夹结构,变量folder_structure,默认为 {:%Y/%m/%d}(年/月/日),可按需进行调整,例如:年/月
folder_structure:{:%Y/%m}
5.设置是否跳过已下载检查(增量同步),默认为False(不跳过),也就是默认为每次启动只同步新增内容,如果要重新完全同步,可设置变量skip_check的值为True
skip_check:True
6.设置扫描“最近删除”文件夹,并删除其中找到的所有文件,意思是,你手机上删除的照片,是否同步删除,默认为不扫描,也就是不同步删除,如果你想同步删除或恢复,可设置变量auto_delete的值为True
auto_delete:True
7.设置要下载的照片大小,默认为original(原始尺寸),如需调整,可设置变量photo_size的值为original(原始尺寸)、medium(中等质量)、thumb(缩略图),如下所示(二选一):
photo_size:medium
photo_size:thumb
8.设置是否下载时将HEIC文件转换为JPEG格式,同时保留原始文件,如设置此变量convert_heic_to_jpeg,不论为何值,则转换。
9.设置HEIC文件到JPEG转换的质量,可设置变量jpeg_quality,数值为0(最低质量)到100(最高质量),默认为90,如想得到最高质量的转换,可如下设置:
jpeg_quality:100
10.设置是否强制使用云上贵州为下载源,如你的iCloud由云上贵州运营,而你的NAS又在国外,可以设置变量icloud_china,不论何值,将强制以icloud.com.cn作为下载源,NAS在国内不用,自动会解析到云上贵州的IP。
以上就是一般用得到的变量设置,如需了解其它不常用的功能设置,可以访问【boredazfcuk/icloudpd】作者在Docker Hub页面,地址:https://registry.hub.docker.com/r/boredazfcuk/icloudpd/
好了,教程到此结束,那么多照片那么好看、值得纪念,是应该好好保存,祝大家配置顺利,使用愉快!熟练的话,2分钟应该是可以配置好的。
我是王小浪,一个很懒的人,所以很少会耐心出教程,本来准备录个视频的,但是因为懒,不准备出了,我要去带娃子了,以后再检查是否有错别字。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~




















Vic王小浪
1.主要操作流程第二步里的「.mounted」是个文件,需要在电脑上创建好后上传到NAS,这是一个防出错机制,检测到文件夹内有这个文件,才会往这个文件夹内下载照片。
2.创建验证文件过程中,输入iCloud 密码后,提示再次输入密码,而非双重认证验证码,停止容器,编辑,在环境里新增变量“icloud_china”,值随意,有强迫症的话可以设为“True”,应用后启动容器再进行验证,这个变量的目的是强制使用icloud.com.cn作为下载源,感谢值友【oceanlovewj】提供的解决方案。
校验提示文案
Vince-Ding
校验提示文案
iamnio
校验提示文案
Raikko
校验提示文案
Hi王蕴
校验提示文案
空中铁匠
校验提示文案
飞扬的雪
校验提示文案
瀚海_阑干
校验提示文案
xmcd2002
校验提示文案
无知无觉也这样
校验提示文案
6BBBBB
校验提示文案
毅丝不狗
校验提示文案
非著名坐家
校验提示文案
ba4hun
校验提示文案
solvil
校验提示文案
你们跟我拼了
校验提示文案
Blueshadow8818
校验提示文案
八戒的酒
校验提示文案
rororoyyyy
校验提示文案
MojiJio
校验提示文案
值就一个字我值买一次
非必须,中国时区按这个填写,网上清一色的要求填写Asia/Shanghai是无效的,还不如不新增这个变量。"
LZ,按你的填CST-8报错了,填Asia/Shanghai就正常了,供参考
校验提示文案
bbselang
校验提示文案
Torrace
校验提示文案
值友8946169933
校验提示文案
Torrace
我是国区云上贵州icloud,安装最新版本boredazfcuk/icloudpd,其他步骤都一样,关键点是最新版本有3个环境变量不同,仅供参考,后续如果版本有改动可能还需要修改,建议自行分析日志报错确定问题原因并添加变量解决。
auth_china=true
icloud_china=true
TZ=Asia/Shanghai
校验提示文案
ViewF
校验提示文案
软盘收藏家
1、重新下载镜像,选择标签时,下拉框拉到最后,选择stable版(这一步很关键,否则会旧版本会一直在弹出二次验证前就报错退出);
2、安装设置后,删除/config目录下,以你名字命名的那几个文件,以及python开头的那个文件夹,等着一会儿自动重建;
3、先用网页去iCloud.com.cn访问一下,确保你的appleid可以正常登录;
4、TZ参数,楼主说设置成CST-8,但是我设置这个报错,错误提示:tzlocal.utils.ZoneInfoNotFoundError: 'tzlocal() does not support non-zoneinfo timezones like CST-8. \nPlease use a timezone in the form of Continent/City',所以还是要设置成Asia/Shanghai;
5、设置参数中,icloud_china这一项,楼主说设置成True。但是我设置这个它一直强调iCloud.com,不知道为什么,于是我参考conf文件,把True改成了true。
现在一切正常了。
校验提示文案
Jackliu4587
校验提示文案
Jackliu4587
校验提示文案
Jackliu4587
校验提示文案
[已注销]
校验提示文案
我要买相因
2023-02-16 12:48:06 ERROR Failed check for new files files
2023-02-16 12:48:06 ERROR - Can you log into iCloud.com without receiving pop-up notifications?
2023-02-16 12:48:06 ERROR Error debugging info:
2023-02-16 12:48:06 ERROR Usage: icloudpd
Error: Invalid value for "-d" / "--directory": Path "/iCloud" is not readable.
校验提示文案
我要买相因
2023-02-16 12:48:06 ERROR Failed check for new files files
2023-02-16 12:48:06 ERROR - Can you log into iCloud.com without receiving pop-up notifications?
2023-02-16 12:48:06 ERROR Error debugging info:
2023-02-16 12:48:06 ERROR Usage: icloudpd
Error: Invalid value for "-d" / "--directory": Path "/iCloud" is not readable.
大家帮忙看一下我这个是什么情况呀?其它都是对的.就这样了.这个错误说是一个参数有问题.不知道是哪个?麻烦各位大佬帮一下.
校验提示文案
老司机王师傅
校验提示文案
中年威基
2023-02-09 10:41:56 ERROR 2FA information missing from cookie. Authentication has failed
2023-02-09 10:41:56 ERROR - Was the correct password entered?
2023-02-09 10:41:56 ERROR - Was the 2FA code mistyped?
2023-02-09 10:41:56 ERROR - Can you log into iCloud.com without receiving pop-up notifications?
校验提示文案
柠檬菌
校验提示文案
pino714
校验提示文案
大脸猫爱吃虾
校验提示文案
思嘉惠
校验提示文案
[已注销]
校验提示文案