This guide defines how filenames and folders are named in the photo/video archive so everything remains consistent, searchable, and understandable for years to come.
PhotosLibrary/
├── 01_RawCapture/ → Unedited originals (straight from camera/phone)
├── 02_Highlights/ → Selected “best” shots and lightly edited images
├── 03_Edited/ → Final, fully processed photos and edited videos
└── 04_Exports/ → Reduced-size copies for sharing or cloud
Each folder is organised chronologically by event:
YYYY-MM-DD EventName/
Photos and videos from the same event live together in the same folder.
General pattern:
<OriginalID>_<Stage><Version>.<ext>
Examples:
| Example | Description |
|---|---|
IMG_1234_RAW.CR2 |
Unedited original |
IMG_1234_EDIT.jpg |
Primary edit |
IMG_1234_EDIT2.jpg |
Second edit version |
IMG_1234_PS.jpg |
Photoshop or advanced edit |
IMG_1234_FINAL.jpg |
Final export for printing/sharing |
VID_0123_CLIP.MP4 |
Raw video clip |
VID_0123_MOV.mp4 |
Edited or rendered video |
Notes:
- Keep the original camera filename or unique ID (e.g.
IMG_1234,DSC_5678). - Don’t include editing details in filenames (e.g.
_bcsor_colourfix). - Use version numbers only when you have multiple exports of the same image (
_EDIT2,_PS3). - For derivative media (e.g. panoramas, composites, timelapses), add a short descriptor:
IMG_4567_PANO_FINAL.jpg2025-06-02_Sunset_Timelapse_FINAL.mp4
If you ever mix media from multiple events in one folder, you can prefix filenames with the event name:
2025-06-02_Birthday_IMG_1234_EDIT.jpg
However, since each event already has its own folder, this prefix is optional.
| Folder | Contents | Typical suffix |
|---|---|---|
| 01_RawCapture | Original RAWs and unedited videos | _RAW, _CLIP |
| 02_Highlights | Selected RAWs and basic edits | _EDIT |
| 03_Edited | Final creative outputs | _PS, _FINAL, _MOV |
| 04_Exports | Reduced-size or web versions | _FINAL, _EXPORT |
- Always keep originals in
01_RawCaptureuntouched. - Use consistent filenames so Lightroom/other tools can reconnect missing files.
- Never rename files inside Lightroom after import; rename before import if needed.
- Store this README in every top-level folder for clarity.
Before first use, build the container image:
make buildTo start a container session with your local folders mounted:
make runThis opens a bash shell inside the container. The following directories are mounted:
| Host Path | Container Path | Purpose |
|---|---|---|
./ingest |
/data/src |
Raw import source folder |
./01_RawCapture |
/data/dest |
Sorted destination folder |
./db |
/data/db |
Optional database location for scanner |
From inside the container:
python sorter.py /data/src /data/dest --threads 8 --debugYou can also omit --debug for quieter output.
To scan the imported files and record the latest images from each device:
python scanner.py /data/dest --db /data/db/import_index.db --threads 8This writes a small SQLite database to /data/db/import_index.db containing summary data for future imports.
To remove the built Docker image:
make clean