icloudcli 0.2.0
Bulk photo exports that don’t trip over duplicate filenames, faster downloads, and a dozen new command groups since 0.1.0.
photos download handles duplicate filenames
Cameras reuse filenames, so a large library will contain several different photos all named IMG_6963.JPG. Previously, photos download exported into one shared folder. When two assets had the same name, Photos.app overwrote or renamed the file, and the export failed with “file not found after export”, even on retry. In one 1,300-photo run, 18 items failed this way every time.
Each asset is now exported into its own empty folder and then moved to <uuid>.<ext> in your output directory. Output naming is unchanged.
Faster exports
- Items are fetched directly by ID instead of scanning the whole library, which saved several seconds per item on a 130k-item library.
- Photos.app no longer jumps to the front for every item.
- Several items are exported per Photos.app session. Tune it with
--batch-size(default 10). - Large iCloud originals get up to an hour to download instead of AppleScript’s two-minute default.
$ icloud-pp-cli photos top --limit 500 --json \
| jq -r '.[].uuid' \
| xargs icloud-pp-cli photos download --output ~/Desktop/export
Also new since 0.1.0
- Photos:
searchby person, date, type, favorites, GPS, or keyword, plusdownload. - Messages: list chats, search, stats, audit, and export.
- Contacts, Notes, Reminders, Calendar: sync to a local SQLite cache with full-text search and analytics.
- Safari: history, top sites, bookmarks, and reading list.
- Calls, iCloud Drive, Screen Time, Music, Podcasts, Mail: new command groups, all checked by
doctor.
Upgrade
$ curl -fsSL https://icloudcli.com/install.sh | sh
$ icloud-pp-cli --version
icloud-pp-cli version 0.2.0
Full changelog on GitHub. Found a bug? Open an issue.