Folder Structure Customisation

Hello,
Is it possible to configure alternative folder structures? I really appreciate the way that photos are copied into folders for a really clean management. However, some flexibility would be great. For example, a top level hierarchy of the camera that took the photo.

You can at least change the date hierarchy with the

assetSubdirectoryDatestampFormat

Variable.

Details here:

I don’t see that you have access to other variables like camera or lens.

1 Like

Camera make and model would be easy to add to the naming template.

What do you you think I should do when there isn’t a make or model?

I could support bash-style pattern expansion, and support something where if a field value is missing, a replacement string is provided. So, in your case, something like

${make:-unknown}/${model:-unknown}/yyyy/yyyy-MM-dd

That makes a lot of sense to me, although I just use the date stuff, so wouldn’t really impact me either way.

This looks smart.
If you’re a personal user (like me) with holiday snaps, changes of camera and smart phone shots, then this is the type of thing I’d go for. In the past I’ve been a bit fussy about my photos vs photos that someone else took (of the same event, for example), but I’m not sure is a common enough thing to request.
The side case would be uploads of phone images with screenshots or other snippings. Do they have exif data? Or could some ML eventually determine what is a screenshot and put aside?

1 Like

You bring up a good point with your pictures vs others - this is something I have also struggled with.

Anybody know if (for example) and iPhone carries data about the device name? In my family we have the same make and model phone, so that’s not enough to differentiate.

I would have to add an ‘owner’ exif tag or something (and have in the past) at input time.

Maybe we should be thinking about the ability to use exif fields in general for the hierarchy instead of just make/model?

1 Like

PhotoStructure uses ExifTool under the hood to extract tags. I haven’t found a serial-number-ish tag in the iPhone example images I’ve looked at, but you can look too: run exiftool -j -struct /path/to/image.jpeg (and if you don’t have ExifTool installed, it’s available via homebrew, standard Linux distributions (apt get exiftool), or use the installer at ExifTool.org).

Yeah… did that and some web searching. Consensus seems to be that there isn’t an explicit device ID or serial number stored by iPhones at least. HEIC files have a lot more metadata than the jpegs, at least on mine… they do have a “profileID” field that “might” be unique, I’m not sure. I don’t have a large enough sample across devices… for one given device it seems to be stable, but I’m unclear if it’s a deviceID or more from the “picture settings profile” viewpoint (from the name) - given pretty much all my iPhone pictures were taken with default settings, I’ll have to experiment more.

Given all that, I think I would recommend adding a tag at import time (when you probably know what device you’re importing from) which could then be used.

1 Like

Thanks for doing this research!

I got excited about that field too. I believe this is the ID of the color gamut profile that the image is encoded in, though: What does the Profile ID mean?

Ah, good deal… I googled a bit for ProfileID, but missed that one.

1 Like

It depends on the device that took the screenshot, but at least for iOS, Ubuntu and the Android devices I’ve looked at, they don’t have a make or model, any exposure information, or gps metadata.

FWIW, iOS and Ubuntu take PNG, and Android seems to save as JPEG.

This is a great idea for a tagger: please suggest it as a feature request! I don’t even think ML is needed: the tagger could just verify that all variants are static images that are missing exposure data.