elodie
EXIF-based photo, video, and audio organizer
TLDR
SYNOPSIS
elodie.py *command* [*options*] [*paths*...]
DESCRIPTION
Elodie is a personal EXIF-based assistant for organizing photos, videos, and audio. It reads metadata (via ExifTool), copies media into a structured library, can update location/time/title/album tags, and optionally moves originals to the trash after import.Primary entry point from the repository is elodie.py (run after pip install -r requirements.txt in a clone). Requires ExifTool on PATH (exiftool -ver); video features need ExifTool 10.20+, HEIC 11.50+, and geolocation-to-city translation 13.13+.Library layout and naming are configurable via ~/.elodie/config.ini (or ELODIE_APPLICATION_DIRECTORY). A hash.json under ~/.elodie/ tracks SHA-256 signatures for duplicate detection and verify.
PARAMETERS
import [*paths*...]
Copy media into --destination (required), reading EXIF. Options include --source, --file, --album-from-folder, --trash, --allow-duplicates, --location, --time, --exclude-regex, --debug, --dry-run.update *files*...
Update EXIF and reorganize. Options: --album, --location, --time, --title, --debug, --dry-run.generate-db
Rebuild hash.json from --source (required).batch
Run batch() for all plugins (--debug, --dry-run).verify
Check the library against stored checksums for bit rot.Use elodie.py *command* --help for full option text.
CONFIGURATION
Place config.ini in ~/.elodie/ (or under ELODIE_APPLICATION_DIRECTORY). Sections can define custom folder/file path templates and [Exclusions] patterns. Command-line --exclude-regex also skips paths at import time. --location / --time on import overwrite existing EXIF when provided; use them when data is missing or known wrong.
CAVEATS
Depends on system ExifTool; missing or old ExifTool limits formats and geolocation. MapQuest integration is deprecated in favor of ExifTool. Always prefer --dry-run before bulk imports. Default import copies files; --trash moves sources after success.
