Skip to content
Rob Hooper edited this page Feb 1, 2026 · 32 revisions

icloudpd-rs Documentation

Getting Started

cargo build --release
./target/release/icloudpd-rs --username my@email.address --directory /photos

Use --dry-run to preview what would be downloaded. Use --auth-only to verify credentials without starting a download.

CLI Reference

Authentication

Flag Description
-u, --username Apple ID email
-p, --password iCloud password
--auth-only Authenticate without downloading
--domain iCloud region (com or cn)
--cookie-directory Session storage path

Content Selection

Flag Description
-a, --album Album(s) to download
-l, --list-albums List available albums
--list-libraries List available libraries
--recent Download only N most recent photos
--skip-videos Don't download videos
--skip-photos Don't download photos
--skip-live-photos Don't download live photos
--skip-created-before Skip assets before a date
--skip-created-after Skip assets after a date

Download Options

Flag Description
-d, --directory Local download directory
--size Image size variant
--align-raw RAW/JPEG alignment policy
--live-photo-size Live photo MOV size variant
--live-photo-mov-filename-policy MOV filename style
--folder-structure Date-based folder template
--set-exif-datetime Write EXIF tags
--threads-num Concurrent downloads
--max-retries Retry limit per download
--retry-delay Initial retry delay
--no-progress-bar Disable progress bar
--dry-run Preview without writing files

Operational

Flag Description
--watch-with-interval Continuous sync mode
--log-level Log verbosity

Features

Topic Description
Authentication & 2FA SRP-6a, trusted device codes, session persistence
Download Pipeline Streaming, resumable, concurrent downloads
Live Photos MOV companion file handling
Content Filtering Media type, date range, album filters
Retry & Resilience Exponential backoff, checksum verification
Watch Mode Continuous sync with interval
EXIF Handling Date tag reading and writing
Folder Structure Date-based directory organization

Clone this wiki locally