Reference

This is a list of all options available for command line interface (CLI) of the icloudpd

--until-found X

Checks assets, from most recently added to the oldest, for their local copies. Downloads if not present locally. Whole process stops once X number of subsequent checks result in a local file matching remote.

This option is a useful optimization for incremental updates: only small portion (X) of the existing local storage will be rechecked for existence, saving on local IO. However, the process will not “fill the gaps” in local storage if any exist (and will not identify them).

Note

Assets are checked by the date they were added to iCloud, not by the date they were taken/created.

--recent X

Checks X most recently added assets for their local copies. Downloads if not present locally.

This option is mostly useful while testing and experimenting with parameters to limit the volume of downloads

Note

Assets are checked by the date they were added to iCloud, not by the date they were taken/created.

--album X

Specifies what Album to download.

Default: “All Photos” - Special album where all assets are automatically added.

Note

Only one album can be downloaded by icloudpd

--list-albums

Lists all available albums

--library X

Specifies what Libarary to use.

Default: “Personal Library”.

Note

Only one library can be used by icloudpd

--list-libraries

Lists all libraries available for account

--watch-with-interval X

Runs icloudpd forever, periodically re-checking iCloud for changes (“watch”). Interval is specified in seconds, e.g. 3600 will be 1hr interval.

Too short interval may trigger throttling on Apple side, although no evidence has been reported.

--version

Reports current version and commit hash & date that version was build from.

Note

If --use-os-locale was specified before --version, then date is formatted according to OS locale.

--use-os-locale

Instructs icloudpd to use OS locale. If not specified (and by default), US English is used.

See also

File Naming section discusses affected behavior

--dry-run

If specified, no changes to local storage or iCloud remote storage is made.

Authentication will be performed and remote files will be checked against local storage. Any difference will be reported instead of performing download.

This parameter is useful for experimenting with new parameters

--domain X

Access to Apple servers is blocked from mainland China. As an alternative, iCloud service is available on internal .cn domain, which can be specified for icloudpd to work from mainland China.

Default is “.com”. “.cn” is the only other option available.

--password X

Specifies iCloud password to use for authentication

Note

Supplying credentials through command line parameters is considered not a good practice since they can be logged and/or otherwise exposed. Consider using other password providers.

--directory X

Specifies root folder where folder structure will start and files will be downloaded.

--file-match-policy X

Specifies an algorithm (policy) to match remote to local files.

See also

Discussion on File Naming and Deduplication

--username X

Specifies AppleID (email address) used for authenticating to iCloud.

--auth-only

Performs authentication, persists auth results (tokens/cookies), and exists without processing assets

--size X

Customizes size of the asset to download.

See also

Details on Assets sizes

--force-size

If specified, only requested size will be downloaded. Otherwise, original size will be downloaded instead of missing size.

See also

--size parameter

--live-photo-size X

Customizes size of the live photo assets to download.

--skip-videos

If specified, video assets will not be processed

--skip-live-photos

If specified, live photo assets will not be processed

--auto-delete

If specified, assets deleted in iCloud (actually moved to Recently Deleted album), will also be deleted locally.

--delete-after-download

If specified, assets downloaded locally will be deleted in iCloud (actually moved to Recently Deleted album).

--only-print-filenames

If specified, no downloading will occur, but only file paths printed in the output (no other info goes into output either).

--folder-structure X

Specifies sub folder naming scheme.

See also

Details in Folder structure section.

--set-exif-datetime

If specified, EXIF data for the image will be updated with date/time of the assets take/created. Only if EXIF does not exist already in the asset.

--no-progress-bar

If specified, progress bar is suppressed. Valuable when streaming output to file

--keep-unicode-in-filenames

If specified, unicode chars will be preserved in filenames. Otherwise they are removed (default).

--live-photo-mov-filename-policy X

Customizes naming of the video portion of the live photos.

See also

Details in Live Photo section.

--align-raw X

Customizes treating of the RAW+JPEG assets.

See also

Details in RAW+JPEG section.

--password-provider X

Customizes intake of the password for iCloud authentication.

See also

Details in Password providers section.

--mfa-provider X

Customizes intake of the multi-factor authentication (MFA) code for iCloud authentication.

See also

Details in MFA providers section.

--smtp-username X, --smtp-password X, --smtp-host X, --smtp-port X, --smtp-no-tls

Settings for SMTP notification for expired/needed authentication.

--notification-email X, --notification-email-from X

Settings for email notification addressing

--notification-script X

Script to be executed for notification on expired MFA

=======

TODO: SMTP & Notification params