ここ数年、新型コロナのせいもあって出歩くことがなかったことや、たびたび環境が変わったこと、そしてなにより忙しすぎた影響で、すっかりMacの写真フォルダがひどいことになっていました。
どれだけひどいかというと:
- Lighttoom CCの2TBプランがいっぱいになって以来、iPhoneやSDカードのなかに入ったままのデータをどこまでとりこんだのかわからない
- LightroomからApple Photosに移行した際のバックアップが複数、いつまでの写真が入っているのかわからない状態で放置
- そもそもLightroomカタログがメインのMacintosh HDと外部ハードディスクなどに複数存在
- 一部の写真はいまだにApertureやiPhotoに残っている可能性がある
- Apple Photosのなかにも重複したデータが大量に
- 一部のデータはRAW+JPEGの両方が、途中からはJPEGのみがあるだけでなく、ファイル名が変わっているものもあるので単純にファイル名と容量でPythonで洗い出したりするのは危険
と、どこから手を付ければいいのかわからないほどになっていました。何度も重複したデータの総量は6TBほど。
そこで、このすべてをMac Studioに環境を移行したタイミングで整理にかけてLightroom Classicでまとめることにしました。同じようにライブラリがたいへんなことになっている人向けに戦略と手順を書いておくことにします。
Lightroom Classicの便利な読み込み機能がカギ
ここでなぜLightroom Classicを使うかというと、Appleの「写真」アプリのようにデータベースのなかに写真が隠されてしまうわけではなく、クラウド上のLightroomのような容量制限がなく、Finderでも閲覧できるファイル構造で整理できるのでバックアップと将来の移行が簡単になるためです。
また、Lightroom Classicは写真を読み込むと同時にファイル整理をすることができるという利点があります。
Lightroom Classicでは写真を読み込む時に「コピー」と「移動」を選択してファイル構造を指定できますが、この「移動」機能を使えば複数のフォルダから写真を吸い出していき、指定したフォルダ構造で写真が一箇所にまとまります。
重複ファイルを繰り返し洗い出して一つのライブラリを作る
方針が決まったら、重複ファイルを減らしていきます。散らかっている写真データはこの模式図のように互いに重なり合っていますので、最も大きなフォルダに写真が残るようにツールを使います。
今回はLightroom CC からエクスポートしたファイルが「2020-01-01」といったわかりやすいフォルダに入っていましたので、これをマスターとして扱うことにしました。最終的には、Lightroom Classicで指定できる「年 / 年-月-日」のフォルダ構成に整理されるように目指します。
重複しているファイルを減らすためには、ファイルレベルで比較をしてくれるアプリを使います。この分野にはいろいろとアプリがありますが、今回は最近よく名前を聞くBuhocleanerを使ってみます。
Buhocleanerは不要なキャッシュファイルや「写真」アプリ内の重複なども探せる優れものですが、ここではフォルダ単位での比較をしていきます。
マスターに使いたいライブラリと、比較対象のフォルダを選択して重複ファイルを探します。すべてを一度にやってもいいのですが、想定外の挙動が怖いので二つずつちまちまと進めます。
Buhocleanerはファイル容量やいくつかの指標でファイルが重複していないかチェックしますので、結果を吟味しながら重複を減らしていきます。結果に自信があるならスマート選択機能を使って自動的に削除するのもいいですがやり直しはききませんので注意して進みましょう。
この作業をある程度進めれば、先ほどの模式図の重なり合っているところが小さくなっていきます。まだRAWとJPEGの重複といったものはそのままですが、そこは次のステップで探します。
写真を空にしたLightroom Classicに取り込み
まっさらな状態から始めたいですので、今回は新しいLightroom ClassicカタログをSSD上に作成し、最終的に写真がまとまる場所を外部ハードディスクに指定して作業を開始します。こうすることでLightroomはサクサクと動作し、写真のオリジナルがSSDを埋めないようにします。
また、必須ではありませんが、カタログ設定でプレビューの大きさ、解像度、削除の頻度は抑えめにしておいて、プレビューのカタログが大きくなりすぎないようにしておきます。
こうしてできたフォルダ群を、一つずつLightroom Clasicに取り込んでいきます。このとき、日付別のフォルダに仕分けするオプションを利用して、先ほどのフォルダ構造を実現します。
Lightroom Classicはオリジナルの写真ファイルやフォルダ構造がLightroom内のアウトライン構造と一致しますので、Lighroom Classic内で整理すればファイルも自動的に移動されます。この性質を使って、最終的に全ての写真が集約フォルダに向かって集まるように調整していきます。
ところによってはシェルスクリプトを援用
何百もフォルダがあって写真を吸い上げてゆくと、大量の空のフォルダが生まれてなんとかしたくなるときもあります。そんなときは macOS ではターミナルを開いてコマンド一つで消すことも可能です。
find . -type d -empty -delete
また、Finderが利用している隠れファイルの .DS_Store があってフォルダを消せないようなら:
find . -name '.DS_Store' -type f -ls -delete
を使います。使い方を間違えるとファイルを消してしまって復活できませんので、コマンドの意味が分かる人だけが使うようにしてください。慣れていない人は注意する必要がありますが、理解して使えば大きな時間節約になります。
Lightroom Duplicate Finder 2 で重複を発見
次はLightroom内での重複さがしです。Lightroom Classicで「重複を読み込まない」オプションを使っていても、RAWとJPEG同士といった重複が残ることがありますので、複数のパラメーターで類似性を調べていきます。
この作業についてはシェアウェアのLightroom Duplicate Finder 2プラグインを使って探しました。多少お金がかかるのと、一年ごとに数ドルのアップグレード費用が必要になるプラグインですが、数年ぶりにライセンスを更新しても値段は同じなので、定期購読よりは安めと考えて使っています。
Duplicate Finder 2 を使うと、重複が疑われる写真がDuplicate Photosという名前のコレクションに追加されますので、消したいものにちまちまと「除外」フラグをたててあとで削除します。
?:0: attempt to index a nil value
巨大なライブラリを維持している場合、たまにこうしたエラーが発生して、Duplicate Finderが止まることがあります。これはLightroom Classicのカタログが存在しないファイルを参照している場合のエラーです。FAQでは比較的簡単に修正できるとされていますが、私の環境ではなかなか手強かったです。
もっとも確実なのはLightroom Classic カタログを一から作り直す方法で、新しいカタログを作成してからすべての写真を読み込み直せばエラーが消えている傾向がありました。
このエラーがでる場合でも、一部の写真を選択して重複を調べることは可能ですので、苦労はしますが重複を減らしていくことは可能です。
Apple Photosの重複はPowerPhotosをつかって事前処理
もし、Apple Photosのライブラリが複数ある場合は、それぞれの写真を別フォルダに書き出してからBufocleanerで重複を探すこともできますが、PowerPhotosをつかえば直接ライブラリ同士から重複を探すことも可能です。
PowerPhotosは複数のApple Photosライブラリをマージしたりといった使い方もできますので、今回の作業の下処理に利用することもできるでしょう。
まとめ
私の環境では6TBほどあった重複データが4.5TBほどに小さくなり、取り回しもバックアップも楽になりました。
以前はLightroomカタログは8万枚といったレベルでしだいに速度が低下して利用しづらくなっていましたが、いまのLightroom ClassicをそれなりのSSDで運用しているぶんにはそうした制限もいまは感じません。
長年の利用で写真が散らかっているという方が便利なライブラリをとりもどす参考になれば幸いです。
Source: ライフハック