Alfred Cazares
← Back to the shelf
Shelved Last touched February 7, 2026

TimeShuffle

A media organization suite that recovers true capture dates from EXIF and video metadata, merges Snapchat overlays, and de-duplicates by content hash.

PythonEXIFffprobeSHA-256Forensics

The source for this one is not public. The write-up below covers what I built and why the repository is closed. Happy to walk through it in detail on a call.

A toolkit for the problem of a photo library that has been through three phones, two cloud services, and a decade. File modification dates are worthless by then. The actual capture time is still in there, just not where the filesystem thinks it is.

What it does

Smart date extraction pulls creation dates from EXIF for images and ffprobe metadata for video, rather than trusting filesystem timestamps.

Forensic detection identifies edited or modified files using established forensic techniques, so a re-encoded copy does not silently claim the wrong date.

Snapchat overlay merging detects the separate overlay PNGs Snapchat exports alongside the base image or video and composites them back together — otherwise you keep the picture and lose the caption that made it worth keeping.

Duplicate removal by SHA-256 content hash, not filename, so the same photo saved four times under four names collapses to one.

Month folder organization into a sortable M. MonthName YYYY structure, plus repair of nested month folders and correction of files stamped with impossible future dates.

Safety, because it moves your photos

This class of tool gets exactly one chance to not destroy an irreplaceable library, so the defaults are conservative:

  • Dry run is the default. Every change is previewed before anything executes.
  • Never overwrites. Collisions get a _1, _2 suffix instead.
  • Verifies after moving — file size is checked post-move and the operation auto-restores on failure.
  • Detailed logging and summaries for every run.

Handles JPG, PNG, GIF, BMP, TIFF, and HEIC for images; MP4, MOV, AVI, MKV, M4V, WMV, and FLV for video.