Windows desktop app · v3.1

Every photo, catalogued.
Every duplicate, found.

PhotoCatalog scans a folder — or a whole drive — of photos, reads the EXIF and XMP metadata out of every file, and hands you back a single Excel workbook you can sort, filter, and search. Point it at a messy decades-old archive and it can also find the exact duplicates and reorganize everything into a clean, dated folder structure.

Free to download. No account, no cloud upload — everything runs locally on your machine.

Platform
Windows 10 / 11
Install
One-click, no dependencies
Formats
JPEG · TIFF · HEIF · 7 RAW types
Source
Available on GitHub

Features

Six drawers, one catalog.

Everything PhotoCatalog does is built around one Excel workbook — every scan, hash, and rename decision lands in a column you can sort and filter yourself.

Scanning

Recursive metadata extraction

Reads EXIF, XMP, and IPTC from JPEG, TIFF, PNG, HEIF/HEIC, WebP, and seven RAW formats. Malformed EXIF from old cameras or scanners no longer aborts a run — the field is left blank and flagged instead.

Duplicates

Smart-hash detection

Byte-exact MD5 matching that skips any file with a size no other file shares — mathematically impossible to be a duplicate. Typically cuts hashing I/O by 80–95% on a real library.

Reorganize

Copy into a clean layout

Pick a destination and a Year / Month / Day folder format, and PhotoCatalog copies every photo to its computed path — sidecar files (RAW+JPG, .xmp, .aae) follow the primary automatically.

Safety

Undo, always

Every copy, move, or delete writes a rollback journal first. One button reverses the most recent operation — no need to trust a preview and hope.

Reporting

A real Excel workbook

Formatted Catalog and Summary sheets, frozen headers, auto-filter, sortable datetime columns, and color-coded flags for warnings and duplicate groups. No proprietary viewer required.

Scale

Built for big drives

Every long operation runs on a background thread with a live progress bar and streaming log, and can be cancelled mid-run without corrupting rows already written.

How it works

One pipeline, four stages.

The app's buttons enable in this order — each stage's output is what the next one needs.

1

Pre-Scan

A fast filesystem-only pass. Counts folders, files, and supported images by extension so you can sanity-check the folder before committing to a full run.

2

Catalog

Extracts EXIF/XMP/IPTC from every photo and writes the Excel workbook — one row per photo, camera data, GPS, exposure, and more.

3

Detect duplicates

Filename+size or MD5 hash matching groups byte-identical files and marks a keeper in each group, right in the workbook.

4

Reorganize

Copy to a dated destination, move or delete non-keepers, and undo any of it later from the rollback journal.

Rename engine

Build filenames from the metadata itself.

Click together variables like date and camera make — or type them — and preview the result before touching a single file on disk.

Template
%Date_YYYY%-%Date_MM%-%Date_DD%_%Camera_Make%_%File_Name%
Result
2026-04-09_Canon_IMG_1234.jpg

Get PhotoCatalog

Download the installer.

The Windows installer bundles everything — no Python, no separate dependencies. It places a shortcut on your Start menu and desktop.

  • Windows 10 or 11
  • Nothing else to install — everything is bundled
  • Runs entirely on your machine — nothing is uploaded
Download for Windows Browse the source
Always the latest release, via GitHub

About

Built for a real photo archive.

PhotoCatalog started as a way to make one very large, very messy family photo collection browsable in Excel. It grew into a full scan → detect duplicates → reorganize workflow for anyone who'd rather sort through a spreadsheet than click through folders one photo at a time.

Written in Python and PyQt6 by David Krist. Source and documentation are on GitHub.

Development

Built with Claude.

PhotoCatalog was designed and implemented in close collaboration with Claude, Anthropic's AI assistant — used throughout for architecture discussions, code generation, debugging, and release engineering.

Built in collaboration with Claude

Claude, Anthropic, and the Claude wordmark are trademarks of Anthropic. PhotoCatalog is an independent project that uses Claude as a development tool and is not affiliated with or endorsed by Anthropic.