ウェブサイトの画像を保存したい時、一枚ずつブラウザ上で右クリックしながらダウンロードするのは非常に時間がかかります。無料のPython製オープンソースソフトウェア「gallery-dl」を使うと、ウェブサイト上の画像や動画ファイルをコマンド一発でまとめてダウンロードすることができます。

GitHub - mikf/gallery-dl: Command-line program to download image-galleries and -collections from several image hosting sites

https://github.com/mikf/gallery-dl

gallery-dlはPythonが動作するWindowsやmacOS、Linuxで利用可能。今回は下記コマンドを実行し、Ubuntu 20.04にgallery-dlをインストールしました。

sudo apt install python3-pip
sudo pip3 install --upgrade gallery-dl


まずはウェブサイトで画像を表示し、URLをコピーします。



あとは「gallery-dl URL」とコマンドを入力し、実行すればOK。ダウンロードした画像はカレントディレクトリ下の「gallery-dl」フォルダにウェブサイトごとに格納されます。



こんな感じで、簡単にウェブサイトから画像をダウンロードすることができました。



flickrの場合、デフォルトでダウンロードされる画像のサイズは「Original」のサイズとなっています。



また、指定したウェブサイトに画像が複数ある場合は、まとめて一気にダウンロードしてくれます。



動画ファイルもダウンロード可能。



gallery-dlはウェブサイトごとに「extractor」というモジュールが用意されており、extractorが存在するウェブサイトはスクレイピングによって必要な画像だけダウンロードすることができます。記事作成時点でflickrやPinterest、Pixiv、Twitter、Tumblr、imgur、ニコニコ静画など、120以上のウェブサイトに対応しています。



extractorが用意されていないウェブサイトの場合は「gallery-dl r:URL」とすることで、ウェブサイト内に存在するリンクを片っ端から検索し、画像をダウンロードしてくれます。ただし、大量の画像がダウンロードされてしまうため、実行する場合は注意が必要です。



ニコニコ静画などログインが必要なウェブサイトから画像をダウンロードするには、「/etc/gallery-dl.conf」や「/.config/gallery-dl/config.json」に、以下のようにアカウント情報を記載しておく必要があります。

{
"extractor": {
"seiga": {
"username": "ユーザー名",
"password": "パスワード"
}
}
}


また、deviantart、flickr、reddit、SmugMug、Tumblrでは、OAuthによるアカウント認証を利用できます。例えばflickrのアカウント認証を行いたい場合は、以下のようにコマンドを実行。

gallery-dl oauth:flickr


ブラウザで表示される認証画面でログインすれば、gallery-dlでアカウントを利用したダウンロードができるようになります。