PhotoStructure has a number of filters that all must pass for a photo or video to be added to your library.
Directory filters 🔗
PhotoStructure doesn’t import any files from system directories, hidden directories, or NoMedia directories.
File filters 🔗
The file must be a JPEG, PNG, digital camera raw format, or a video format that FFmpeg can decode.
If the JPEG is found to be corrupt it will be skipped. This may be due to bitrot or file truncation due to a failed backup.
If the image is too small, it will be skipped. The default minimum dimension is 480 pixels for images, and 240 pixels for videos. The default minimum filesize is 50 KB. These defaults can be changed with the
minAssetFileSizeByteslibrary settings, or the
If a file is too large, it will be skipped. This mostly applies to videos, and prevents your NAS from filling up with transcoded versions of that 45 minute piano recital that you’ll never watch. This defaults to 500 MB, and can be changed with the
PhotoStructure will refuse to walk into directories that have the same path element more than 7 times. This helps avoid getting stuck in infinite filesystem loops caused by symbolic links.
PhotoStructure doesn’t currently support HEIC/HEIF format out of the box due to licensing. (Please tell Apple not to use a closed, patent-encumbered format for something as important as your photos!)
If you’re willing to use PhotoStructure for Servers, though, you can compile that support for yourself. This method does require some level of comfort with the terminal.
Why didn’t an individual file get imported? 🔗
There are a couple of ways to see why PhotoStructure didn’t import something:
Via sync reports 🔗
PhotoStructure v2.1 (as of July 2022, is currently in alpha) writes “sync reports”. More details are here.
Via command-line tools 🔗
If you’re comfortable with the terminal, use PhotoStructure’s
excludeGlobs setting 🔗
Version 2.1 adds a new way to exclude directory and file name patterns from your library.