Reference¶
This is a list of all options available for the command line interface (CLI) of icloudpd
--until-found XChecks assets, from most recently added to the oldest, for their local copies. Downloads if not present locally. The whole process stops once X number of subsequent checks result in a local file matching the remote.
This option is a useful optimization for incremental updates: only a small portion (X) of the existing local storage will be rechecked for existence, saving on local I/O. 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 XChecks 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 XSpecifies which album(s) to download.
When not specified, the whole asset collection is considered.
Changed in version 1.31.0: Option may be specified multiple times to download from different albums
--list-albumsLists all available albums.
--library XSpecifies which library to use.
Default: “Personal Library”.
Note
Only one library can be used by
icloudpd.Added in version 1.16.0: Shared library support added for iOS 16 shared libraries
--list-librariesLists all libraries available for the account.
Added in version 1.16.0: Shared library support added for iOS 16 shared libraries
--watch-with-interval XRuns
icloudpdforever, periodically re-checking iCloud for changes (“watch”). The interval is specified in seconds, e.g. 3600 will be a 1-hour interval.Too short an interval may trigger throttling on Apple’s side, although no evidence has been reported.
Added in version 1.10.0.
--versionReports the current version and commit hash & date that the version was built from.
Note
If
--use-os-localewas specified before--version, then the date is formatted according to the OS locale.
--use-os-localeInstructs
icloudpdto use the OS locale. If not specified (and by default), US English is used.Added in version 1.22.0.
See also
The File Naming section discusses the affected behavior
--dry-runIf specified, no changes to local storage or iCloud remote storage are made.
Authentication will be performed and remote files will be checked against local storage. Any differences will be reported instead of performing downloads.
This parameter is useful for experimenting with new parameters.
Added in version 1.15.0.
--domain XAccess to Apple servers is blocked from mainland China. As an alternative, the iCloud service is available on an internal .cn domain, which can be specified for
icloudpdto work from mainland China.Default is “.com”. “.cn” is the only other option available.
Added in version 1.9.0.
--password XSpecifies the iCloud password to use for authentication.
Note
Supplying credentials through command line parameters is not considered a good practice since they can be logged and/or otherwise exposed. Consider using other password providers.
--directory XSpecifies the root folder where the folder structure will start and files will be downloaded.
--file-match-policy XSpecifies an algorithm (policy) to match remote files to local files.
Added in version 1.20.0.
See also
Discussion of File Naming and Deduplication
--username XSpecifies the AppleID (email address) used for authenticating to iCloud. May be used multiple times to introduce different configurations and/or accounts. See Using Multiple Accounts and Config.
--auth-onlyPerforms authentication, persists authentication results (tokens/cookies), and exits without processing assets.
Added in version 1.17.0.
--cookie-directory XCustomizes the folder used for persisting authentication results (cookies/tokens). If not specified,
~/.pyicloudis used.
--size XCustomizes the size of the asset to download.
See also
Details on Asset sizes
--force-sizeIf specified, only the requested size will be downloaded. Otherwise, the
originalsize will be downloaded instead of the missing size.See also
--live-photo-size XCustomizes the size of the live photo assets to download.
--skip-videosIf specified, video assets will not be processed.
--skip-photos
```{versionadded} 1.30.0
```
: If specified, photo assets will not be processed.
--skip-live-photosIf specified, live photo assets will not be processed.
--auto-deleteIf specified, assets deleted in iCloud (actually moved to the Recently Deleted album) will also be deleted locally.
See also
--delete-after-downloadIf specified, assets downloaded locally will be deleted in iCloud (actually moved to the Recently Deleted album). Deprecated, use
--keep-icloud-recent-daysinstead.Note
If remote assets were not downloaded, e.g., because they were already in local storage, they will NOT be deleted in iCloud.
Added in version 1.8.0.
Deprecated since version 1.26.0.
--keep-icloud-recent-days XDeletes assets in iCloud after they were downloaded or confirmed to be present locally, except for the ones taken within the specified number of days. If set to 0, all photos will be deleted from iCloud.
If any filters are used, e.g.,
--skip-videos, then assets excluded from processing by filters are not subject to deletion from iCloud. For example, running icloudpd with--skip-videoson a huge iCloud collection of videos will download and delete nothing.The timestamp when the asset was taken (aka “created date”) as reported by iCloud is used for calculating the age of the asset. For example, an asset taken in 2000, but added to iCloud in 2024, will be 25 years old in 2025. The same timestamp is used for the folder structure in the current system.
If the parameter is not specified, then nothing is deleted from iCloud.
Added in version 1.26.0.
--only-print-filenamesIf specified, no downloading will occur, but only file paths will be printed in the output (no other info goes into the output either).
See also
--folder-structure XSpecifies the subfolder naming scheme.
See also
Details in the Folder structure section.
--set-exif-datetimeIf specified, EXIF data for the image will be updated with the date/time the asset was taken/created. Only if EXIF does not already exist in the asset.
--no-progress-barIf specified, the progress bar is suppressed. This is valuable when streaming output to a file.
--keep-unicode-in-filenamesIf specified, Unicode characters will be preserved in filenames. Otherwise they are removed (default).
Added in version 1.18.0.
--live-photo-mov-filename-policy XCustomizes the naming of the video portion of live photos.
Added in version 1.18.0.
See also
Details in the Live Photo section.
--align-raw XCustomizes the treatment of RAW+JPEG assets.
Added in version 1.19.0.
See also
Details in the RAW+JPEG section.
--password-provider XCustomizes the intake of the password for iCloud authentication.
Added in version 1.20.0.
See also
Details in the Password providers section.
--mfa-provider XCustomizes the intake of the multi-factor authentication (MFA) code for iCloud authentication.
See also
Details in the MFA providers section.
--xmp-sidecarExports additional data as XMP sidecar files (default: don’t export).
Added in version 1.25.0.
--smtp-username X,--smtp-password X,--smtp-host X,--smtp-port X,--smtp-no-tlsSettings for SMTP notifications for expired/needed authentication.
--notification-email X,--notification-email-from XSettings for email notification addressing.
--notification-script XScript to be executed for notifications on expired MFA.
--skip-created-beforeDoes not process assets created before the specified timestamp. The timestamp is in ISO format, e.g., 2025-06-01, or as an interval backwards from the current date, e.g., 5d (5 days ago). If the timezone is not specified for ISO format, then the local timezone is used.
Added in version 1.28.0.
Note
The date is when the asset was created, not when it was added to iCloud.
--skip-created-afterDoes not process assets created after the specified timestamp. The timestamp is in ISO format, e.g., 2025-06-01, or as an interval backwards from the current date, e.g., 5d (5 days ago). If the timezone is not specified for ISO format, then the local timezone is used.
Added in version 1.29.0.
Note
The date is when the asset was created, not when it was added to iCloud.