开启 icloud 照片备份固然方便,但因为本地空间所致,很多时候都是选择优化本地空间,那么全量的照片如何下载呢?可以使用脚本进行执行。
Github 的脚本地址:https://github.com/icloud-photos-downloader/icloud_photos_downloader
Step 1:安装 python
安装 python3,使用命令:
brew install python
安装后,使用 pip3 命令安装 icloudpd 脚本:pip3 install icloudpd
Step 2:登录 icloud 账号
登录 icloud 账号,使用命令:
icloud --username xxxx@icloud.com
如果账号开启了两步验证,需要输入对应的验证码,完成认证。
Step 3:使用脚本下载
使用命令进行下载:
icloudpd -d <directory> -u <username> -p <password> --auto-delete
关于其他命令的说明:
Usage: icloudpd.py <options>
Download all iCloud photos to a local directory
Options:
-d, --directory <directory> Local directory that should be used for
download
-u, --username <username> Your iCloud username or email address
-p, --password <password> Your iCloud password (default: use PyiCloud
keyring or prompt for password)
--cookie-directory </cookie/directory>
Directory to store cookies for
authentication (default: ~/.pyicloud)
--size [original|medium|thumb] Image size to download (default: original)
--live-photo-size [original|medium|thumb]
Live Photo video size to download (default:
original)
--recent INTEGER RANGE Number of recent photos to download
(default: download all photos)
--until-found INTEGER RANGE Download most recently added photos until we
find x number of previously downloaded
consecutive photos (default: download all
photos)
-a, --album <album> Album to download (default: All Photos)
-l, --list-albums Lists the avaliable albums
--skip-videos Don't download any videos (default: Download
all photos and videos)
--skip-live-photos Don't download any live photos (default:
Download live photos)
--force-size Only download the requested size (default:
download original if size is not available)
--auto-delete Scans the "Recently Deleted" folder and
deletes any files found in there. (If you
restore the photo in iCloud, it will be
downloaded again.)
--only-print-filenames Only prints the filenames of all files that
will be downloaded (not including files that
are already downloaded.)(Does not download
or delete any files.)
--folder-structure <folder_structure>
Folder structure (default: {:%Y/%m/%d})
--set-exif-datetime Write the DateTimeOriginal exif tag from
file creation date, if it doesn't exist.
--smtp-username <smtp_username>
Your SMTP username, for sending email
notifications when two-step authentication
expires.
--smtp-password <smtp_password>
Your SMTP password, for sending email
notifications when two-step authentication
expires.
--smtp-host <smtp_host> Your SMTP server host. Defaults to:
smtp.gmail.com
--smtp-port <smtp_port> Your SMTP server port. Default: 587 (Gmail)
--smtp-no-tls Pass this flag to disable TLS for SMTP (TLS
is required for Gmail)
--notification-email <notification_email>
Email address where you would like to
receive email notifications. Default: SMTP
username
--notification-script PATH Runs an external script when two factor
authentication expires. (path required:
/path/to/my/script.sh)
--log-level [debug|info|error] Log level (default: debug)
--no-progress-bar Disables the one-line progress bar and
prints log messages on separate lines
(Progress bar is disabled by default if
there is no tty attached)
--threads-num INTEGER RANGE Number of cpu threads (default: 1)
--version Show the version and exit.
-h, --help Show this message and exit.