おわりんです。
今日は写真や動画データを整理できる、こんなのあったらいいなぁと思っていたアプリを作成したので、公開したいと思います。
僕は、写真や動画など昔から大切にデータを保存しています。そうですね。デジタルカメラが流行ってた2000年あたりからPCに保存して管理しています。なので25年分くらいのデータあります。学生時代の友達の思い出や日々の何気ない日常、家族のイベントや旅行など本当にたくさんあります。そして、最近は、人にデータをもらう機会の増加や、記録する媒体の増加(デジカメ、スマホ、ビデオカメラ、スキャナ)など非常に複雑になってきました。今は、クラウドにデータを保存するのが一般的かもしれませんが、第三者にデータを管理されるの何か嫌だなと思い、また、第三者が提供するサービスもずっと続くかもわからないので、自分でも管理しています。
その自分で管理するときに、いろんな写真や動画をPCに保存するのですが、それを整理するのが非常に大変です。撮った日付ごとにフォルダを作成し、タイトルをつけたりします。また新たなデータをもらったときには、該当するフォルダがあるのか探したり、新たに作成したりと、非常に手間です。こんなときに、一か所にデータを集めて、既存のデータも含め一気に整理できたらなと思いアプリを作りました。
どんなことができる?
いろいろな形式のデータを日付ごとのフォルダに一瞬で整理することができる。
まず、雑多なデータを1つフォルダに集約します。(ここでは、仮に整理対象フォルダ)
そして、今回作成したアプリを使用すると、以下の構造に一瞬ですることができます。
データが整理された時の階層構造
整理用対象フォルダ/
├─ 2024/ # 西暦フォルダ(撮影年)が作られる
│ ├─ 20240503_/ # 日付フォルダ(YYYYMMDD_)が作られる
│ │ ├─ IMG_0001.jpg
│ │ └─ VID_0001.mp4
│ └─ 20240504_/
│ └─ ...
├─ 2025/
│ └─ 20250101_/
│ └─ ...
└─ 不明/ # 撮影日が判定できない場合の置き場(原則ほぼ使用しません)
便利なところ
・日付_の後に好きなタイトルをつけてOK。
・新たなにデータを追加するのも簡単。すでにあるフォルダに自動で振り分けてくれる
・間違った情報の写真が、間違った日付にフォルダに紛れ込んでも再整理可能。
西暦フォルダ: 撮影年ごとに自動作成(例: 2024, 2025)。
日付フォルダ: 撮影日ごとに作成(例: 20240503_)。末尾のアンダースコアで「日付フォルダ」であることを明示。
既存日付フォルダの活用: すでに YYYYMMDD_ で始まるフォルダがあれば再利用。20240503_trip のようなフォルダ名も先頭8桁が日付なら対象として扱います。
重複ファイル名: 同名がある場合は filename_1.ext のように連番を自動付与。
再チェック時: 日付フォルダ内の各ファイルを再判定し、撮影日に合致しないものは正しいフォルダへ移動します。
どうやって撮影日を判定するか
優先: JPEGのExif DateTimeOriginal(タグID 36867)を使用。最も正確です。
補助: Exifがない場合(PNG/MP4/MOVなど)はファイルの更新日時を利用。
メリット: 編集・移動で更新日時が変わっていても、Exifが残っていれば正確な撮影日に整理されます。
注意: スキャン画像など「撮影日が存在しない」場合は更新日時での分類になります。
使い方
準備
PCで下記リンクから「picture」をダウンロード(exeファイル)する。
整理したい写真や動画などを1つのフォルダに全ていれる。(ここでは整理用対象フォルダ)


picture.exeファイル
実行
exeファイル「picture」を実行して、「フォルダを選択して整理・追加」ボタンを押す。

整理したいフォルダを選択。(ここでは。整理対象フォルダ)
下記のように、西暦ごとのフォルダが作成される(左図)。西暦フォルダの中をみると、撮影した日ごとのフォルダができていて、「日付+_」の中に写真や動画が格納される。


タイトルをつける
「西暦+_」の後ろに好きなタイトルをつける

こうすることで、なんのデータが入ってるかわかりやすい。同じ日に複数のイベントが入ってる場合もあると思うけど、その場合は、自分さえわかればよいので、代表的なイベントを記入しておけばよい。
新たにデータを追加
新しくデータをもらった場合や、新規にとったデータを追加した場合は、そのデータを西暦フォルダがあるところの階層にデータを置く。

再び実行する。

同じ日付のファイルがあった場合は、すでに作成している日付フォルダへ格納される。同じ日付のフォルダが存在しない場合は、新たにフォルダ(西暦+_)が作成される。
その他仕様
動作: フォルダ直下の写真・動画を撮影日に基づき YYYY/YYYYMMDD_ へ移動。
表示: 進捗バーで処理状況を可視化。完了時にダイアログ表示。
再チェック(誤配置修正)
ボタン: 「フォルダ選択して再チェック」
動作: 既存の年・日付フォルダを走査し、ファイルの撮影日を再判定。誤配置を正しいフォルダへ移動。
表示: 進捗バーが更新。完了時にダイアログ表示。
対象拡張子
写真: .jpg, .jpeg, .png
動画: .mp4, .mov
おすすめの運用
ラフな整理: 日常の写真・動画は更新日時でも十分。
正確さ重視: 旅行やイベントなどはExifを活用。編集後でも撮影日に基づき再チェック可能。
まとめ
友達からもらったデータや、新たに見つかった写真、様々なな媒体でとったデータなどが、簡単に整理できるようになりました。
ちょっとした効率化をpythonを使って実現しました。
さらに使ってみて、こうしたいなどでてくればどんどん自分好みに改良していこうと思います。まずは、手を動かして作ってみることですね。もちろんCopilotと一緒に一瞬で作りました笑
ソースはまた今度のせます。
それと、今日の記事の公開は、100記事でした。
だらだら、続けているブログですが、自分におめでとう!