iCloud照片下载器完全使用指南
🚀 基础入门:3分钟上手iCloud照片备份
三步安装法
-
获取代码
git clone https://gitcode.com/GitHub_Trending/ic/icloud_photos_downloader cd icloud_photos_downloader -
安装依赖
./scripts/install_deps -
验证安装
icloudpd --version
首次使用流程
-
基础命令模板
icloudpd --username your_apple_id@example.com --directory ~/Pictures/icloud_backup -
认证流程
- 输入Apple ID密码(推荐使用系统密钥链存储)
- 完成两步验证(根据提示输入验证码)
常见问题
Q: 提示"认证失败"但密码正确?
A: 检查是否开启了双重认证,需要使用专用App密码而非账户密码
Q: 能否在无图形界面的服务器上使用?
A: 可以,通过--cookie-directory参数指定缓存位置实现无交互认证
🚀 核心功能:5大场景化解决方案
🌴 旅行照片备份方案
场景需求:旅行期间自动备份手机拍摄的照片,避免存储空间不足
解决方案:
icloudpd --username me@example.com \
--directory ~/TravelPhotos/2024_Summer \
--until-found 5 \
--skip-videos \
--set-exif-datetime
💡 技巧:--until-found 5会在发现5张已存在的照片后停止检查,大幅提升增量同步效率
🧹 空间清理方案
场景需求:下载后自动清理云端旧照片,释放iCloud存储空间
解决方案:
icloudpd --username me@example.com \
--directory ~/Pictures/icloud_archive \
--keep-icloud-recent-days 30 \
--size original
⚠️ 注意:此操作会删除云端照片,请先确认本地备份完整
🎥 视频专项备份
场景需求:仅下载视频文件并按年份分类存储
解决方案:
icloudpd --username me@example.com \
--directory ~/Videos/iCloud \
--folder-structure "{:%Y}" \
--skip-photos \
--recent 50
💡 技巧:--folder-structure支持strftime格式,可按拍摄时间自动分类
🕵️ 选择性下载方案
场景需求:仅下载特定相册的照片
解决方案:
# 先列出所有相册
icloudpd --username me@example.com --list-albums
# 下载指定相册
icloudpd --username me@example.com \
--directory ~/Pictures/FamilyAlbum \
--album "家庭聚会"
🌐 国内用户优化方案
场景需求:解决国内访问iCloud速度慢的问题
解决方案:
icloudpd --username me@example.com \
--directory ~/Pictures/iCloud \
--domain .cn \
--watch-with-interval 3600
💡 技巧:--domain .cn参数将请求路由到中国区服务器,提升访问速度
常见问题
Q: 如何查看所有可用相册?
A: 使用--list-albums参数获取相册列表,中文相册名需注意编码问题
Q: 下载的照片方向不正确怎么办?
A: 添加--set-exif-datetime参数会自动修复EXIF方向信息
🚀 高级应用:专家级功能探索
🔄 无人值守同步方案
场景需求:7×24小时自动同步iCloud照片
实现步骤:
-
创建同步脚本
sync_icloud.sh:#!/bin/bash icloudpd --username me@example.com \ --directory /media/backup/icloud \ --until-found 10 \ --watch-with-interval 1800 \ --log-level info \ --log-file /var/log/icloud_sync.log -
设置权限并添加到系统服务:
chmod +x sync_icloud.sh # 配置systemd服务实现开机自启
📊 元数据管理方案
场景需求:保留照片完整元数据,支持专业后期处理
解决方案:
icloudpd --username me@example.com \
--directory ~/ProfessionalPhotos \
--xmp-sidecar \
--keep-unicode-in-filenames \
--set-exif-datetime
⚠️ 注意:--xmp-sidecar会为每张照片生成.xmp元数据文件,需确保存储空间充足
🔒 多账户隔离方案
场景需求:管理多个iCloud账户的照片备份
解决方案:
# 账户1:个人照片
icloudpd --username personal@example.com \
--directory ~/iCloud/Personal \
--cookie-directory ~/.pyicloud/personal
# 账户2:工作照片
icloudpd --username work@example.com \
--directory ~/iCloud/Work \
--cookie-directory ~/.pyicloud/work
常见问题
Q: 如何监控同步状态?
A: 结合--log-file和邮件通知功能,使用--email-notifications参数配置告警
Q: 同步中断后会重复下载吗?
A: 不会,工具会自动识别已下载文件,可使用--until-found 0强制完整检查
🚀 实战案例:从新手到专家
新手避坑指南
错误案例1:命令行直接输入密码
错误做法:
icloudpd --username me@example.com --password mypassword123 # 危险!
正确做法:
省略--password参数,让工具交互式提示输入,或使用密钥链存储
错误案例2:盲目使用自动删除功能
错误做法:
icloudpd --username me@example.com --delete-after-download # 已废弃!
正确做法:
使用更安全的--keep-icloud-recent-days参数:
icloudpd --username me@example.com --keep-icloud-recent-days 30
错误案例3:忽视存储空间监控
错误做法:
无限制同步所有照片导致磁盘空间耗尽
正确做法:
结合--size和--recent参数控制下载量:
icloudpd --username me@example.com --size medium --recent 100
参数组合速查表
| 使用场景 | 命令模板 | 核心优势 |
|---|---|---|
| 快速测试 | icloudpd --username me@example.com --recent 5 --dry-run |
安全验证配置,不实际下载 |
| 增量同步 | icloudpd --username me@example.com --until-found 10 |
智能断点续传,节省时间 |
| 空间清理 | icloudpd --username me@example.com --keep-icloud-recent-days 30 |
自动清理旧照片,释放空间 |
| 视频备份 | icloudpd --username me@example.com --skip-photos --folder-structure "{:%Y/%m}" |
按年月分类存储视频 |
| 服务器同步 | icloudpd --username me@example.com --watch-with-interval 3600 --log-file sync.log |
无人值守,持续同步 |
企业级部署建议
- 多账户管理:为每个账户创建独立配置文件和缓存目录
- 存储策略:使用RAID存储确保数据安全,定期校验文件完整性
- 监控告警:配置日志监控和邮件通知,及时发现同步异常
- 权限控制:限制执行用户权限,避免敏感信息泄露
常见问题
Q: 企业环境中如何批量部署?
A: 使用配置文件存储参数,结合脚本实现批量账户管理
Q: 如何处理大量历史照片的首次同步?
A: 分阶段进行,先使用--recent小批量测试,再逐步扩大范围
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0448
源启盛夏_AtomGit暑期开发者成长计划「源启盛夏」暑期校园开发者成长计划旨在激活校园开源力量,通过积分激励、认证扶持、资源倾斜等形式,引导高校组织和开发者完成「入驻 — 建项目 — 做贡献 — 获认证 — 得资源」的完整闭环。无论你是想带领社团入驻平台的组织者,还是希望用代码贡献证明自己的开发者,都能在这里找到属于你的成长路径。Markdown00
jiuwenswarmJiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0769
Hy3Hy3 是由腾讯混元团队研发的快慢思考融合的混合专家模型,总参数量 295B,激活参数 21B,MTP 层参数 3.8B。4 月底发布 Hy3 Preview 后,我们在 50 多个业务中获得了广泛的反馈,修复了各种体验问题,进一步提升了后训练的质量和规模。今天,我们发布 Hy3。它展现出显著强于同尺寸并比肩旗舰(参数规模往往是 Hy3 的 2~5 倍)开源模型的智能水平,显著提升了在各类产品和生产力任务中的实用价值。Python00
AscendNPU-IRAscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优C++0313
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00