How does PhotoStructure extract keywords from my photos and videos?
PhotoStructure uses several methods to extract keywords from your photos and videos.
โ๏ธ Edit an asset’s tags
Starting with v2026.7, PhotoStructure PLUS can add and remove tags directly from the Asset Info panel:
- Open an asset and show its Info panel.
- Select Edit tags.
- Use + Add in the Who, Album, Event, What, or Keyword section, or remove an editable pill.
- Select Save to write the chosen tag set to file metadata.
The picker searches existing paths first and offers a separate create action when there is no exact match. PhotoStructure also suggests tags used on nearby assets and tags you recently added or removed.
PhotoStructure rereads every available variation before editing and applies the saved tag set to each one. It uses your existing metadata destination settings, so tags go to originals or sidecars according to your library configuration. If another program changes the metadata while the editor is open, PhotoStructure keeps your draft and asks you to review the refreshed tags before saving again.
Some pills are intentionally locked. Tags derived from filenames or shared directory metadata cannot be changed without affecting other assets, and unsupported metadata structures cannot yet be edited safely. The lock’s tooltip explains the source and reason. Custom roots remain visible but are read-only in this first release, and Where/GPS editing is not included.
If you leave the asset with unsaved changes, PhotoStructure asks whether to save and continue, discard the changes, or keep editing.
๐ Keywords from metadata
PhotoStructure extracts keywords from the following metadata tags:
CatalogSetsโ note that Lightroom writes Collection membership here, so Lightroom Collections appear under Keywords, not AlbumsCategories(this is typically XML-encoded)HierarchicalSubjectKeywordsLastKeywordXMPSubjectTagsListXPKeywords(these are keywords added by the Windows Explorer)
This set is configurable in v1.0.0.
Metadata keyword extraction can be disabled with the tagKeywordsFromMetadata library
setting.
๐ Keywords from sidecars
PhotoStructure looks for metadata in .XMP, .MIE, and Google Takeout
.json sidecars. PhotoStructure supports both full name and base name sidecar
names. Matching is done case-insensitively.
As an example: IMG_123.JPG will inherit tags from both IMG_123.JPG.XMP and
IMG_123.XMP.
Newer files overwrite the values from older files, so editing a sidecar makes that value “win.”
๐๏ธ Keywords from path names
Tags found in filenames or parent directories that follow -- are added
automatically. Examples:
- All files found in the
/Users/bob/Pictures/2019-02-14/--event travel/directory would be tagged withKeyword/eventandKeyword/travel. - The file
/home/karen/2018-11-23/P317812--ocean.jpgwould be tagged withKeyword/ocean. - Filename tags can be hierarchical by using the
keywordPathSeparatorssetting: for example,/home/alice/Pictures/--event|wedding,people/example.jpgwould be tagged withKeyword/event/weddingandKeyword/people.
Path name keyword extraction can be disabled with the tagKeywordsFromPath library
setting.
๐ค Multiple keywords
PhotoStructure splits keywords by commas and semicolons. For example, car, blue, tree will be interpreted as having the keywords car, blue, and
tree.
This is configurable via the keywordDelimiters library
setting.
๐ Hierarchical keywords
All of PhotoStructure’s tags are “hierarchical,” rather than “flat.” Read more about PhotoStructure’s hierarchical tags.
PhotoStructure looks for “path separator” characters in keywords. By default,
the characters /,|,>,โป, and โ are considered “path separators.” This
set can be changed by the keywordPathSeparators library
setting.
This allows for tags like Family|Einstein|Albert, Flora โ Fruit โ Orange, or
Fauna > Oceanic > Pelican.
๐ Where do these keywords go?
PhotoStructure looks for one or more path separators in a keyword. If none are found, the keyword is “flat.” If it finds one or more of these characters, it considers the keyword to be “hierarchical.”
Non-hierarchical, “flat” keywords are added to the Keywords root tag (which
you can visit via the navigation menu). As an example, an image with the
keywords “blue” and “sky” will result in the asset being tagged with
Keywords/blue and Keywords/sky.
Hierarchical keywords are added directly. As an example, an image tagged with
Family|Einstein|Albert will introduce a new Family “root tag.”
