icloudpd 使用教程:iCloud 照片视频如何备份到本地
2026/9/14 14:56:36 网站建设 项目流程

icloudpd 使用教程:iCloud 照片视频如何备份到本地

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

icloudpd 是一个开源的命令行工具,能把 iCloud 账户里的照片和视频库批量下载到本地磁盘,支持 Windows、macOS 和 Linux。它的仓库名为 icloud_photos_downloader,本文面向零基础的新手,按安装、认证、定时同步的顺序讲清 icloudpd 的完整用法。

🧩 它解决什么问题

  • 云端照片没有本地副本:账户异常或订阅到期后照片可能无法访问,icloudpd 下载后的文件完全属于自己
  • 释放 iCloud 空间:支持"移动"模式,旧照片下载完成后从 iCloud 删除,只保留近几天的照片
  • 开源且运行在本地:照片不经过任何第三方服务器,Windows、macOS、Linux 乃至 NAS 都能跑
  • 增量同步:重复运行时只下载新照片,已存在的文件自动跳过

📦 安装

三种方式按人群任选其一,装完后命令都叫icloudpd

  • pip(机器上已有 Python 环境的人):pip install icloudpd,装完终端直接就能用
  • Docker(想装在 NAS、服务器,或不想污染系统环境的人):docker run -it --rm --name icloudpd -v $(pwd)/Photos:/data icloudpd/icloudpd:latest icloudpd --directory /data --username you@example.com,把本地文件夹挂载进容器即可
  • npm(前端开发者,免安装直接跑):npx --yes icloudpd --directory /data --username you@example.com,npx 会自动拉取最新版执行

🚀 首次运行

前置条件

在 iPhone 或 iPad 上开启"设置 > Apple ID > iCloud > 在网页上访问 iCloud 数据",并关闭"高级数据保护"(Advanced Data Protection,一种端到端加密模式),否则 Apple 服务器会返回 ACCESS_DENIED 错误。

认证测试

icloudpd --username you@example.com --password your-password --auth-only

该命令只做登录并把会话信息保存到~/.pyicloud,不下载任何文件;账户开启双重认证时会提示输入验证码。认证成功后,后续运行不再需要输入密码(双重认证约两个月过期一次)。

小批量验证

icloudpd --directory ~/iCloudPhotos --username you@example.com --recent 10

--recent 10只检查最近加入 iCloud 的 10 个资产,用来确认目录结构和文件能正常打开,再开始完整备份。首次运行若报 Bad Request (400),等 5~10 分钟重试即可,那是 Apple 服务端在为你的图库准备数据。

📋 参数速查

参数作用什么时候用
--directory指定下载根目录每次运行必写
--recent N只处理最近加入 iCloud 的 N 个资产初次试跑、控制下载量
--watch-with-interval N常驻运行,每 N 秒检查一次 iCloud 变化想要持续自动同步
--size选择下载的文件尺寸,如original要原图或想省空间时
--dry-run试算:只报告差异,不下载、不修改任何文件正式跑之前验证参数

其余参数(RAW 格式、文件夹结构、多账号等)完整列表见 docs/reference.md,也可以在终端执行icloudpd --help查看。

🎯 按需求选方案

家庭多账号

一条命令依次处理多个账户,每个账户的照片落到各自文件夹:

icloudpd --cookie-directory ./cookies \ --username dad@apple.com --directory ./dad \ --username kid@apple.com --directory ./kid

会话文件按账户名区分,所以共用一个 cookie 目录不会冲突。

摄影师原图

icloudpd --directory ~/Work/Originals \ --username pro@apple.com --size original \ --set-exif-datetime --threads-num 8

--size original下载原始尺寸文件,--set-exif-datetime把拍摄时间写进图片 EXIF,--threads-num 8用 8 个线程并行下载加快速度。RAW 文件的处理规则见 docs/raw.md。

轻量备份

icloudpd --directory ~/Photos/Backup \ --username you@example.com --recent 100 --skip-videos

只取最近 100 个资产并跳过视频,几分钟内就能完成一轮,适合先建立日常小批量备份的习惯。

🩹 排障手册

认证失败

  • 现象:报 ACCESS_DENIED,或反复要求重新登录
  • 处理:先确认"在网页上访问 iCloud 数据"已开启、"高级数据保护"已关闭;仍失败则删除主目录下的.pyicloud会话缓存,重新执行认证测试

下载速度慢

  • 现象:大图库进度条推进缓慢
  • 处理:把并行度提高到--threads-num 8;日常增量同步可加--until-found 10,连续 10 个文件本地已存在就提前停止,省去全量核对

存储空间不足

  • 现象:下载中途因磁盘写满而中断
  • 处理:先加--dry-run跑一遍,统计待下载资产的数量和体积,再把--directory指向外置硬盘或 NAS 上的大目录

⏰ 自动化

推荐用 cron 定时任务(仓库已附示例脚本 examples/cron_script.sh.example,内容如下):

pgrep -f icloudpd && exit 0 icloudpd /data/photos \ --username you@example.com \ --recent 500 --auto-delete

pgrep那一行防止上一轮还没跑完时重复启动;--recent 500每轮只核对最近 500 个资产;--auto-delete让本地文件跟随 iCloud"最近删除"相册同步删掉。用crontab -e加入一行0 3 * * * /path/to/script.sh,即每天凌晨 3 点自动执行。

如果选择 Docker 部署,则把--watch-with-interval 3600放进容器命令常驻运行,每小时自查一次,无需系统级定时。

邮件通知只需加一组参数,即可在双重认证到期时收到提醒:

icloudpd --username you@example.com \ --smtp-username smtp@example.com --smtp-password app-password \ --smtp-host smtp.example.com --smtp-port 587 \ --notification-email receive@example.com

🔍 继续深入

  • 文档:docs/install.md 安装细节(含 macOS 二进制的放行步骤)、docs/authentication.md 认证与多因子细节、docs/mode.md Copy/Sync/Move 三种模式、docs/reference.md 全部参数
  • 源码:src/icloudpd/cli.py 命令行参数定义、src/icloudpd/download.py 下载主流程、src/pyicloud_ipd/ 与 iCloud 服务通信的接口层

最小可行第一步:先跑--auth-only确认账户能登录,再加--recent 10下载 10 个最近资产并确认文件可打开。这两步通过后,再决定目录规划和定时策略,整条备份链路就算跑通了。

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

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

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

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

立即咨询