iCloudに保存されている写真や動画をWindowsやmacOS、およびLinuxのコマンドラインで簡単にダウンロードおよび同期ができるツール「iCloud Photos Downloader」が公開されています。

icloud-photos-downloader/icloud_photos_downloader: A command-line tool to download photos from iCloud

https://github.com/icloud-photos-downloader/icloud_photos_downloader

◆iCloud Photos Downloaderの主な特徴

・クロスプラットフォーム対応:Windows・macOS・Linuxのコマンドラインで利用可能。

・3つのコピーモード:iCloudの内容を全てコピー・iCloudとローカルの内容を同期、およびダウンロード後にiCloudから削除。

・保存フォルダのカスタマイズ:デフォルトでは日付別にフォルダ分けされるが、全て1つのフォルダに保存するなどカスタマイズが可能。

・監視モード:指定した時間ごとにiCloudの内容をチェックし、新しい写真や動画が追加されていた場合に自動的にダウンロード。

◆iCloud側での事前準備

iCloudからデータのダウンロードを許可するため、iPhoneの「設定」から「iCloud」をタップ。



設定画面の下部にある「高度なデータ保護」をオフにし「WebでiCloudデータにアクセス」のスイッチをオンにします。



◆取得および利用方法

今回はWindows環境で作業します。リポジトリのReleasesページを開き最新のリリースから「Assets」をクリックし「Show all 31 assets」をクリック。



ファイル名に「windows」が含まれている「icloud」と「icloudpd」ファイルを作業用フォルダにダウンロードします。



コマンドを分かりやすくするためにダウンロードしたファイルの名前からバージョンやOS名を削除しておきます。



Windowsキー+Rキーで「ファイル名を指定して実行」のダイアログを開き「名前」に「cmd」を入力して「OK」をクリック。



作業用フォルダに移動します。


cd "作業用フォルダへのパス"


作業用フォルダに「icloudpd」があることを確認します。


dir


動作確認のため「icloud -h」および「icloudpd -h」を実行してヘルプを表示します。


icloud -h
icloudpd -h


警告が表示された場合は「詳細情報」をクリック。



「実行」をクリックします。



ヘルプが表示されコマンドが動作することを確認できました。



ダウンロードする前に認証情報を登録するために「icloud --username "登録アドレス"」を実行。


icloud --username "登録アドレス"


パスワードを保存するか聞かれるので「Y」を入力してENTERキーを押します。2段階認証を設定している場合はiPhoneなどに通知が送られてくるので表示される認証コードを入力してENTERキーを押します。



次に「icloudpd --username "登録アドレス" --directory "保存先"」を実行。


icloudpd --username "登録アドレス" --directory "保存先"


2段階認証が求められる場合は通知に表示される認証コードを入力してENTERキーを押すとダウンロードが始まります。



しばらく待つとダウンロードが完了しました。



年月日でフォルダが作成されており、その中に写真や動画が保存されています。



再度コマンドを実行するとダウンロード済みのファイルはスキップされました。



◆iCloud Photos Downloaderの動作モード

上記のコマンドにオプションを追加することで動作モードを変更できます。

・Copy(追加オプション無し):iCloudに保存されている写真や動画を全てダウンロード。

・Sync(--auto-delete):iCloudから削除された写真や動画を保存フォルダから削除。

・Move(--keep-icloud-recent-days):iCloudからダウンロード後、iCloud内の写真や動画を指定日数分残して削除。

なお、公式のiCloudから写真をダウンロードする場合は1度に1000枚までという制限がありますが、このツールを利用すると1回のコマンド実行で全てダウンロード可能です。