CSV に並んだ URL から画像を一括ダウンロードする macOS デスクトップアプリ。
- 2つのダウンロードモード — フラット(1フォルダに全保存、重複は連番)/ フォルダ構造保持(URL のパス階層を再現)
- 2つの CSV 形式 — ヘッダーあり(
url列)/ ヘッダーなし(URL 直書き) - 結果 CSV の自動生成 — URL → 保存ファイル名の対応表を出力
- 画像検証 — Content-Type とマジックナンバーで不正ファイル(404 HTML など)を弾く
- サーバー負荷への配慮 — リクエスト間に 0.5 秒の間隔
- キャンセル対応 — 途中中断してもそれまでの画像は保存される
- エラーログ — 失敗した URL は
error.csvに記録
-
Releases から
Image-Downloader-macOS.zipをダウンロードして展開 -
Image Downloader.appを/Applicationsにコピー -
初回起動時の注意: 未署名のため macOS が以下の警告を出します
「Appleは、"Image Downloader" にMacに損害を与えたり、プライバシーを侵害する可能性のあるマルウェアが含まれていないことを検証できませんでした。」
以下どちらかの方法で起動してください。
方法A: システム設定から許可(推奨・GUI のみ)
- まず一度
Image Downloader.appをダブルクリック(警告ダイアログで「完了」を押す) - システム設定 → プライバシーとセキュリティ を開く
- 画面を下にスクロールすると 「"Image Downloader" は開発元を確認できないため...」 の行と 「このまま開く」 ボタンが現れる
- クリック → Touch ID またはパスワードで承認 → アプリが起動
- 次回以降は通常どおりダブルクリックで起動できます
方法B: ターミナルから 1 行(macOS 15 / 26 でも確実)
xattr -cr "/Applications/Image Downloader.app" open "/Applications/Image Downloader.app"
この後は Finder ダブルクリックでも起動できます。
macOS Sequoia (15) 以降では、以前の「右クリック → 開く」による回避手順は廃止されています。
- まず一度
git clone <this-repo>
cd image-downloader
pip install -r requirements.txt
python main.py- ファイル選択 — URL リストを書いた CSV をドラッグ&ドロップ
- 設定 — 保存先フォルダ、ダウンロードモード、CSV 形式を選択
- 実行中 — 進捗バー・ログを確認(キャンセル可能)
- 完了 — 成功/失敗件数を確認、保存先フォルダを開く
ヘッダーあり:
url
https://example.com/image1.jpg
https://example.com/image2.pngヘッダーなし:
https://example.com/image1.jpg
https://example.com/image2.png- Python 3.10 以上
- macOS(Windows ビルドは未対応)
pip install -r requirements.txt
python main.pypip install pyinstaller
python scripts/build_icon.py # .icns を再生成(初回のみ)
pyinstaller --clean --noconfirm build.spec
# → dist/Image Downloader.app が生成されるimage-downloader/
├── main.py # エントリーポイント(同意ダイアログ含む)
├── main_window.py # メインウィンドウ(4-step wizard)
├── workers.py # QThread ワーカー(DL / 結果チェック)
├── theme.qss # 全体スタイルシート
├── core/
│ ├── downloader.py # ダウンロードロジック
│ └── result_checker.py # 結果 CSV ロジック
├── ui/
│ ├── icons.py # SVG アイコン定義
│ ├── tokens.py # 色・サイズのデザイントークン
│ ├── assets/ # SVG ファイル(チェックボックス等)
│ └── widgets/ # 再利用可能なカスタムウィジェット
├── scripts/
│ └── build_icon.py # .icns 生成スクリプト
├── build.spec # PyInstaller 設定
├── DISCLAIMER.txt # 免責事項(アプリ内表示用)
├── THIRD_PARTY_LICENSES.txt
└── LICENSE # MIT
本ソフトウェアは、利用者が指定した URL からの直接ダウンロードのみを行うツールです。Web サイトの自動巡回・スクレイピングは行いません。
ただし、利用者が指定する URL の選択・ダウンロードしたコンテンツの取り扱いは、すべて利用者の責任となります。
- ダウンロード対象の著作権・知的財産権を侵害しないこと
- 対象 Web サイトの利用規約(robots.txt 含む)を遵守すること
- 対象サーバーに過度な負荷をかけないこと
- 適用される法令を遵守すること
詳細は DISCLAIMER.txt またはアプリ内メニュー ヘルプ → 免責事項・利用上の注意 を参照してください。
本ソフトウェア本体は MIT License の下で配布されます。
利用しているサードパーティライブラリのライセンスは THIRD_PARTY_LICENSES.txt を参照してください。
- PySide6 — LGPL v3(動的リンクで利用)
- requests — Apache 2.0
- Python 標準ライブラリ — PSF License
- Qt / PySide6 — GUI フレームワーク
- requests — HTTP クライアント
- PyInstaller — パッケージング