icloudpd 使用指南:一条命令完整备份你的 iCloud 照片库
2026/9/14 16:15:53 网站建设 项目流程

icloudpd 使用指南:一条命令完整备份你的 iCloud 照片库

【免费下载链接】icloud_photos_downloaderA command-line tool to download photos from iCloud项目地址: https://gitcode.com/GitHub_Trending/ic/icloud_photos_downloader

照片只存在 iCloud 里,就像把鸡蛋全放一个篮子里——账号受限、存储涨价、服务调整,都可能让你被动。icloudpd(iCloud Photos Downloader)是一个开源命令行工具,把 iCloud 照片库完整地下载到本地硬盘、NAS 或任何 Linux/Windows/macOS 设备上,让你真正拥有自己的照片。全程只需要会敲一条命令。

它适合什么样的你

icloudpd 解决的是一件很具体的事:把 iCloud 照片库变成你自己的本地副本。它由志愿者维护(MIT 协议),特点是:

  • 跨平台:Linux、Windows、macOS 都能跑,笔记本、桌面机、NAS 均可
  • 不挑格式:Live Photos 会拆成图片+视频两个文件,RAW 照片连同配套 JPEG 一起下载
  • 自动去重:同名重复文件自动跳过,重复运行不会浪费时间
  • 元数据完整:拍摄时间等 EXIF 信息完整保留,还可以按需补齐

如果你只是想在网盘里"存一份",那网盘工具就够了;但如果你想把照片当作真正属于自己的数字资产,本地副本才是答案。

三种方式把工具跑起来

不需要懂编程,任选一种最顺手的方式即可。

方式一:Docker(最省心,适合 NAS 用户)

docker run -it --rm --name icloudpd -v $(pwd)/Photos:/data icloudpd/icloudpd:latest icloudpd --directory /data --username my@email.address

人话:把当前目录下的Photos文件夹挂载进容器,容器里直接开始下载,依赖问题一概不用管。

方式二:PyPI(适合已有 Python 环境的人)

pip install icloudpd

装完直接在终端敲icloudpd就能用。

方式三:从源码构建(适合想改一改的开发者)

git clone https://gitcode.com/GitHub_Trending/ic/icloud_photos_downloader

另外还有 npm 途径(npx --yes icloudpd)和 AUR 包可选,详细步骤见 docs/install.md。

三种工作模式:复制、同步、移动

这是 icloudpd 最核心的设计,决定了它在下载之后"动手动脚"的程度,务必分清再上生产:

模式怎么开启它会做什么
复制(默认)不加参数只把 iCloud 里新增的照片下载到本地,谁都不删
同步--auto-delete下载新照片的同时,把 iCloud 中已删除(进了"最近删除"相册)的文件从本地也删掉,本地与云端完全一致
移动--keep-icloud-recent-days 30下载后把 30 天以前的老照片从 iCloud 中删除,只留最近的,释放云端空间

注意:同步和移动模式都会删除文件。第一次用,请只用默认复制模式。

定时自动同步与归档整理

一次性备份之后,你可能希望它"永远保持最新"。加上一个参数就能变成常驻任务:

icloudpd --directory /data --username my@email.address --watch-with-interval 3600

人话:每小时检查一次 iCloud,有新照片就下载,程序自己循环不退出。配合系统定时任务(cron / Windows 任务计划程序)即可实现全自动归档。

照片落盘后的组织方式由--folder-structure控制,默认就是{:%Y/%m/%d},即按"年/月/日"三层文件夹存放;改成{:%Y/%m}只按年月分,或设为none全部平铺在一个目录里。

常用的"精细化"参数一览:

参数作用(人话版)
--recent 10只下载最近 10 张,用来先试水
--until-found 5遇到 5 张连续已下载的照片就停止,让增量运行更快
--size medium下载中等尺寸而非原图,省空间
--skip-videos视频一概不碰,只下照片
--set-exif-datetime缺拍摄时间的照片,用文件创建时间补上 EXIF
--xmp-sidecar额外导出 XMP 旁车文件,保存更多元数据
--dry-run预演:只打印将要做什么,不实际下载或删除任何东西
--mfa-provider webui在浏览器(8080 端口)输入密码和验证码,而不是在终端里

全部参数跑icloudpd --help即可看到完整清单。

避坑指南:先做这两件事,再谈下载

绝大多数"连不上"都不是 icloudpd 的问题,而是 iCloud 账号配置没对齐:

  1. 开启网页访问:iPhone/iPad 上进入"设置 > Apple ID > iCloud > 通过网页访问 iCloud 数据"并开启
  2. 关闭高级数据保护:在"设置 > Apple ID > iCloud > 高级数据保护"中禁用——icloudpd 模拟的是网页访问,高级数据保护开启时网页通道是被禁止的,Apple 服务器会直接返回 ACCESS_DENIED

另外几个高频坑:

  • 首次运行报Bad Request (400):通常是该账号从没通过 API 访问过,Apple 服务器需要 5~10 分钟准备数据,稍后再试即可;超过 30 分钟仍报错才需要排查
  • 双因素验证码:默认在终端输入;Apple 的 MFA 授权约两个月过期,过期后要重新验证。可以配--smtp-username/--smtp-password,让验证过期时给你发邮件提醒
  • 认证反复失败:尝试清空主目录下的.pyicloud缓存文件夹重来
  • 可执行文件名是icloudpd不是icloud:后者是另一个小工具,用于管理存在系统钥匙串里的密码
  • 中国大陆网络:可用--domain cn参数,但社区反馈效果参差不齐,详见 docs/authentication.md

想深入了解实现的话,认证、下载、文件命名策略等核心逻辑都在 src/icloudpd/ 目录下,iCloud API 封装在 src/pyicloud_ipd/。

建议的起步路线

别一上来就全库下载。推荐顺序:先跑icloudpd --directory /data --username 你的邮箱 --recent 10只拉 10 张验证配置;确认无误后加--dry-run看一眼完整库会怎么落盘;最后才是正式全量备份,并挂上--watch-with-interval让它长期值守。走完这三步,你的照片就有了一个云端之外的、完全属于你的家。

【免费下载链接】icloud_photos_downloaderA command-line tool to download photos from iCloud项目地址: https://gitcode.com/GitHub_Trending/ic/icloud_photos_downloader

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询