世界を動かす技術を、日本語で。

iCloudフォトダウンローダー

2026年1月12日原文(github.com)

概要

  • iCloud Photos Downloader はコマンドラインでiCloud写真をダウンロードできるツール
  • Linux、Windows、macOS など複数プラットフォーム対応
  • ボランティアによる開発・メンテナンス、 メンテナー募集中
  • Docker、PyPI、AUR、npm など多様なインストール方法
  • 詳細は 公式ドキュメントIssues 参照

iCloud Photos Downloader:全体概要

  • iCloud Photos Downloader は、iCloudに保存された写真をローカルにダウンロードするための コマンドラインツール
  • ノートPC、デスクトップ、NAS 環境で動作
  • GitHub Release から実行ファイルを直接ダウンロード可能
  • パッケージマネージャ (Docker、PyPI、AUR、npm)経由でインストール対応
  • ソースコード からのビルド・実行も可能
  • ボランティア開発、常時 協力者・メンテナー募集中
  • 週1回(金曜) の頻度で新バージョンリリースを目指す方針

iCloudアカウントの事前設定

  • Appleサーバーから ACCESS_DENIED エラーを回避するため、以下の設定が必要
    • iCloudデータのWebアクセス を有効化
      • iPhone/iPadの設定: 設定 > Apple ID > iCloud > iCloudデータのWebアクセス
    • 高度なデータ保護 を無効化
      • iPhone/iPadの設定: 設定 > Apple ID > iCloud > 高度なデータ保護

インストールと実行方法

  • 3つの実行方法 をサポート
    • GitHub Releaseから 実行ファイルをダウンロード して実行
    • パッケージマネージャ (Docker、PyPI、AUR、npm)でインストール・更新
    • ソースからビルド・実行
  • 詳細は 公式ドキュメント 参照

主な機能

  • 3つの動作モード
    • Copy :新規写真のみダウンロード(デフォルト)
    • Sync :新規写真ダウンロード+iCloudで削除された写真のローカル削除(--auto-deleteオプション)
    • Move :新規写真ダウンロード+iCloud写真の削除(--keep-icloud-recent-daysオプション)
  • Live Photos対応 (画像・動画を別ファイルで保存)
  • RAW画像 (RAW+JPEG含む)対応
  • 重複写真の自動排除
  • 一括ダウンロード連続監視 (--watch-with-intervalオプション)対応
  • 増分ダウンロード最適化 (--until-found、--recentオプション)
  • EXIFメタデータ 更新(--set-exif-datetimeオプション)
  • その他詳細は --helpオプション で確認

実験的機能

  • 新機能はまず 実験的モード で提供、安定次第メイン機能に統合

基本的な使い方

  • iCloud写真コレクションをローカルと同期

    • コマンド例: icloudpd --directory /data --username my@email.address --watch-with-interval 3600
    • 注意 :コマンド名は icloudpd (icloudではない)
    • ヒント :同期ロジックはコマンドラインパラメータで調整可能。icloudpd --helpで全一覧表示
  • セッション認証(2SA/2FA)

    • コマンド例: icloudpd --username my@email.address --password my_password --auth-only
    • ヒント :この機能で認証状態の確認・検証も可能

コントリビューション(貢献)

  • iCloud Photos Downloader への貢献歓迎
  • contributing guidelines (貢献ガイドライン)を参照の上、参加可能
  • Issues も随時確認

メンテナー・協力者募集中

  • 本プロジェクトは ボランティア による開発・保守
  • メンテナーや開発協力者 を常時募集
  • 興味があれば 公式リポジトリIssues から連絡推奨

Hackerたちの意見

意外だけど、iCloudから全ての写真(400GB)をダウンロードする公式な方法はないんだ。ここに、iCloudの写真を全部ダウンロードするためのオープンソースのコマンドラインツールがあるよ。

意外じゃないと思うけど。Appleはユーザーが離れないように、写真みたいな大事なものを移動しにくくしてるんじゃないかな。

それは違うよ。MacやiPhoneなら、iCloudフォトライブラリのストレージオプションを選べば、システムに最適化させるんじゃなくて、全部ダウンロードできるんだ。iCloudフォトライブラリをオフにすると、やっぱり全部ダウンロードしようとするしね。実際、僕はiCloudフォトライブラリを使わなくなったから、そうやって全部の写真をダウンロードしたんだ。

PCならそうかもね。でもMacのPhotosアプリでは、Cmd+A > ファイル > 未修正のオリジナルをエクスポートすればいいよ。

技術的にはあるよ。EUのユーザーは、Appleが持っている全てのデータを完全にエクスポートできるから、保存されている写真も含まれてる。ここからリクエストできるよ: https://privacy.apple.com/

これいいね。Androidに切り替えたいけど、8年分の写真がネックなんだ。もう嫌だ。

「もし最終的な目的がGoogleフォトに写真を移すことなら、ここを見てみてね。https://support.google.com/photos/answer/10502587?sjid=13067...」

「https://privacy.apple.comに行って、Apple IDでログインして、『データのコピーを転送するリクエスト』を選んで、『iCloudの写真と動画をGoogleフォトに』を選べばいいよ。」

ちょっとしたシェルスクリプトから定期的にこれを実行してるよ。「自動化すべき」なんだけど、時間がないんだ。⟩ cat ~/bin/icloud_download #!/bin/bash mkdir "$(pwd)"/{photos,cookies} 2> /dev/null if [[ -z "${ICLOUD_USERNAME}" ]]; then echo "need env ICLOUD_USERNAME" exit 1 fi if [[ -z "${ICLOUD_PASSWORD}" ]]; then echo "need env ICLOUD_PASSWORD" exit 1 fi podman container run -it --rm --name icloud \ -v $(pwd)/photos:/data \ -v $(pwd)/cookies:/cookies \ -e TZ=America/Boise \ icloudpd/icloudpd:latest \ icloudpd --directory /data \ --cookie-directory /cookies \ --folder-structure {:%Y/%Y-%m-%d} \ --username "${ICLOUD_USERNAME}" \ --password "${ICLOUD_PASSWORD}" \ --size original

icloudpd/icloudpd:latest 「未確認の最新タグに生のiCloudクレデンシャルを渡すのは、問題が起こるまでは大丈夫だけど、特定のタグやハッシュに固定した方がいいよ。」

この目的にはParachute Backupが大好きだよ。 https://parachuteapps.com/parachute

これ、複数ユーザーに対応してるか知ってる?サイトで見つからないんだけど。

Hacker Newsで議論の続きを見る