A desktop GUI app to bulk-edit the Date Taken metadata on your photos and videos — in seconds.
- Multi-format support — JPEG, TIFF, CR2 (Canon RAW), MP4, and MOV
- Bulk editing — add an entire folder and apply dates to all files at once
- Sort & increment — files are sorted by filename (A→Z) and each gets a +1 second offset, so they maintain a natural order without sharing the same timestamp
- Live status indicators — colour-coded dots show success ✔ or failure ✗ per file as they are processed
- Format badges — each file row shows its format type (JPG, CR2, MP4, etc.) highlighted in colour
- Quick-set presets — "Now" and "Today midnight" buttons to fill the date picker instantly
- Selective processing — check/uncheck individual files or use Select All / None
- Non-destructive — only the metadata is modified; pixel data and video content are untouched
| Format | Extension | Method |
|---|---|---|
| JPEG | .jpg .jpeg |
EXIF (DateTimeOriginal, DateTimeDigitized, DateTime) |
| TIFF | .tif .tiff |
EXIF |
| Canon RAW | .cr2 |
EXIF (TIFF-based) |
| MP4 | .mp4 |
©day tag + mvhd atom patch |
| QuickTime | .mov |
©day tag + mvhd atom patch |
- Python 3.10 or higher
# 1. Clone the repository
git clone https://github.com/your-username/exif-date-changer.git
cd exif-date-changer
# 2. Install dependencies
pip install -r requirements.txt
# 3. Run the app
python exif_date_changer.pyYou can package the app into a single .exe using PyInstaller — no Python installation required on the target machine.
pip install pyinstaller
pyinstaller --onefile --windowed --name "EXIF Date Changer" exif_date_changer.pyThe finished executable will be at:
dist/EXIF Date Changer.exe
Note: Windows Defender may flag PyInstaller-built executables as a false positive. Right-click → Properties → Unblock, or add the
dist/folder to your antivirus exclusions.
- Add files — click + Add Files to pick individual files, or 📁 Add Folder to import all supported files in a directory
- Set the date and time — use the date/time fields or hit Now / Today midnight for quick presets
- Sort & increment (optional) — when checked, files are sorted alphabetically and each receives a timestamp 1 second later than the previous one, preserving order
- Apply — click Apply Date → and watch the progress bar; each row turns green on success or red on failure
| Package | Purpose |
|---|---|
customtkinter |
Modern dark-themed GUI |
Pillow |
Image handling |
piexif |
Read/write EXIF metadata for JPEG, TIFF, CR2 |
mutagen |
Read/write metadata tags for MP4 and MOV |