Skip to content

videre tag

Tags a photo with any word or phrase you like. Tags are stored per photo (by content hash, so they follow a photo across duplicates and moves) and compose with every other filter in videre search.

Terminal window
videre tag --add beach --add summer --path ~/Photos/2024 # add on a selection
videre tag --add "to print" --person "Ayşe" --rating 5 # target by any filter
videre tag --remove beach --path ~/Photos/2024/blurry # remove

Give at least one --add or --remove (both are repeatable, and you may pass both in one run: removals apply first, then additions).

Flag Effect
--add <tag> Add this tag to every file in the selection
--remove <tag> Remove this tag from every file in the selection

The gallery tags and untags many photos at once: see Selecting.

The selection flags narrow the library the same way search does: --person, --category, --date/--after/--before, --location/--radius, --type, --ext, --mime, --path, --has, --missing, plus the mark and tag filters --rating, --pick, --label, --like and --tag, and --query for OR and NOT (a query, filters only: videre tag --query 'person:özgür OR person:ayşe' --add aile). See scoping a run. A run prints N of M. With no selection, every file is tagged.

--add/--remove are the setters; --tag is a filter here, narrowing which files are (un)tagged to those that already carry it. The two never collide because they use different flags: videre tag --add printed --tag beach adds printed only to files already tagged beach.

--remove takes the tag by name and removes it from every file in the selection; files that do not carry it are left alone.

Terminal window
videre tag --remove beach --path ~/Photos/2024/blurry # from one folder
videre tag --remove beach # from the whole library
videre tag --remove "to print" --remove draft # several at once

To rename a tag everywhere, scope the addition to files that carry the old one: videre tag --tag beach --remove beach --add seaside. There is no flag that removes every tag from a file at once; name each tag with --remove.

--tag is a filter on videre search, composing with everything else. It is repeatable and ANDed: every named tag must be present.

Terminal window
videre search --tag beach
videre search --tag beach --tag summer --person "Ayşe" --rating 4

Tags round-trip through standard XMP dc:subject keywords: a scan reads keywords from a photo’s sidecar or embedded packet and stores them as tags, and videre export --xmp writes your tags, and only your tags, back out as dc:subject, so digiKam, Lightroom and darktable see them. Hierarchical keywords (lr:hierarchicalSubject) are not modelled yet; a tag is one flat string, and a /-separated value is stored verbatim.

Before 0.50.0, export also wrote each photo’s category as a keyword, so a library rebuilt from those sidecars has tags such as photo and unknown that you never added. videre cannot tell them from tags you chose, so remove them yourself, once:

Terminal window
videre tag --remove photo --remove screenshot --remove document --remove meme --remove unknown
videre export --xmp # rewrite the sidecars without them
Flag Effect
--library <dir> Select a different library instead of the current directory
--silent Suppress the N of M line