はてなブログ内の画像を一括ダウンロード (Linux/Macコマンド使用)

こちらの記事を参考にLinuxコマンドラインでやってみた。たぶんMacでもできるはず。

(1) はてなブログのデータをエクスポート

はてなブログの「設定(スパナのアイコン)」→「詳細設定」の下のほうの「エクスポート / 記事のバックアップと製本サービス」でエクスポートしてダウンロードする。(MovableType形式のテキストファイルで書きだされる。)

(2) はてなフォトライフの画像のURLを抽出

はてなフォトライフの画像のURLは例えば下記のようなものである。
fotolife/」以降は「頭文字/ユーザ名/数字/数字.拡張子」の形式のようだ。

https://cdn-ak.f.st-hatena.com/images/fotolife/l/licheng/20211111/20211111230348.png

このような文字列を抽出してファイルに出力するには下記のコマンド(1行)を実行する。
ここで export.txt はエクスポートしたテキストファイルとする。
抽出したURLは list.txt に書き出される。

cat export.txt | grep https://cdn-ak.f.st-hatena.com/images/fotolife | sed -r "s/^.*(https:\/\/cdn-ak\.f\.st-hatena.com\/images\/fotolife\/l\/licheng\/[0-9]*\/[0-9]*\.[a-z]{3}).*$/\1/" > list.txt

(3) 一括ダウンロード

list.txt に書き出されたURLのファイルをダウンロードするには下記のコマンドを実行する。
ここで dl_folder はダウンロード先のフォルダ名とする。

wget -nc -P dl_folder -i list.txt

または、URLのディレクトリ構造どおりに保存したいなら下記のコマンドを実行する。

wget -nc -x -i list.txt

ダウンロードされるファイルの数は list.txt の行数よりかなり少ない。これはダブりを除外しているためである。記事ごとにアイキャッチ画像が指定されているため、必ずダブりが発生する。

参考