Skip to content

Cautions

Most of videre is read-only. These are the parts that are not, plus the situations that surprise people.

videre dedupe --remove moves the duplicate copies to the system trash (recoverable), and its plain output is the REMOVE side of each group. --remove asks before deleting (unless --yes), previews with --dry-run, and handles paths with spaces correctly. Prefer it over a videre dedupe | xargs trash pipe, which splits every path on its spaces (use --print0 | xargs -0 if you must pipe).

Look before you delete: run videre dedupe --html first and review the KEEP/REMOVE badges, or use --remove --dry-run.

Near-duplicate groups from --similar are deliberately kept out of this output, because they are for review by eye, not for automatic deletion.

Keep your photos connected when running prune

Section titled “Keep your photos connected when running prune”

videre prune and videre watch --prune delete database rows for files they cannot find on disk. If your library lives on an external drive and that drive is unplugged, every file looks missing.

videre guards against exactly this: a row is only removed when the file is missing and its parent folder still exists. A missing folder means the drive or directory is gone, not that you deleted the photos, so those rows are kept and reported:

12,431 row(s) skipped as unreachable (1 directory missing: /Volumes/Photos)
run with --prune-unreachable to remove them anyway

That matters because removing those rows would also throw away their search embeddings and cached thumbnails, which take hours to rebuild. Your photos would be untouched, but faces, names, and locations are stored against those rows and would go with them.

videre import also changes file timestamps

Section titled “videre import also changes file timestamps”

videre import sets each file’s date from whatever the exporting tool recorded, which is the point of running it. Like fix-dates it asks for confirmation first, and --dry-run shows exactly what it would do. Only the modification time changes; contents are never touched.

It reads other applications’ libraries, and only reads: nothing is written back to a Photos library or a Lightroom catalog.

videre fix-dates rewrites file timestamps on disk

Section titled “videre fix-dates rewrites file timestamps on disk”

It sets each file’s modification time from its EXIF date. That is a real change to your files and there is no undo. It asks for confirmation first, and --dry-run shows you exactly what it would do.

Each search model keeps its own data, roughly 130 MB to 190 MB per model for a 70,000 photo library, and the HEIC thumbnail cache can reach tens of GB.

Only videre prune reclaims any of it, and nothing warns you first. videre stats shows what each model is using.

A command acts on the directory you run it in

Section titled “A command acts on the directory you run it in”

There is no remembered library and no default folder. videre scan with no --library scans the current directory; run it from the wrong place and it initializes a library there. videre --library <dir> makes the target explicit from anywhere.