Present Perfect


Picture Gallery
Present Perfect

Organizing photo libraries

Filed under: Life,Pictures — Thomas @ 12:51


The weather's picking up so it's time for spring cleaning around the house. When I moved back to Barcelona three years ago I took with me my old analogue photos and negatives, with the idea of sorting through them at some point and getting them digitized. And while I'm at it, maybe it's time to pull all my various folders of photos together too and organize them.

Well, I finally started. I grouped the negatives, labeled them by year, put them in individual envelopes, and handed them off to a professional lab to scan them after doing a quick test run on one set (which turned out great, but it's *really* annoying me that they scan to JPEG by default, charge 40% extra for TIFF, and use a non-multiple-of-8 resolution to scan at which means I can't losslessly rotate the negatives. Yes, I'm anal.)

So now I pulled together all my various folders of photos, and before I start doing tagging and stuff like that, I want to organize them in a decent folder layout. Googling for ideas pretty much suggests that the way to go is


with possibly some description together with the DD

I'm not really happy about that, however, because there are certain things I'd like to be able to do:

  • easily see where photos come from - did I make them ? did I get them from someone ? Did I download them from Facebook ?
  • Are these original files from a camera without editing ?
  • Are these the original scans ? From negatives ? From actual photos ? Or are they retouched, rotated, denoised, ...
  • Are these photos SFW ? Can I point my media center slideshow to this directory and have it safely show any photos under it ? (What do you mean, you've never snowboarded at night in only your underwear, and mooning the photographer ?) Or maybe not even SFW, but simply watchable and reasonable quality or subject material?

I realize some of these issues can not be resolved simply with a directory layout. But I'm sure some of you must have had similar issues or come up with a slightly better layout ?

Point me in the right direction please.


  1. I use “YYYY/Country/XX. Name” for the ones I take

    XX – I start with 01 and increment

    In the “XX. Name” folder, I have a subfolder “selected’ in which I copy the ones you would use for slideshow (the ones I usually publish online)

    I usually rename the photos and add a “_” at the end of the name to indicated I’ve modified the photo, and _900 or _1200 to indicate it’s been resized, I also add _90 when it’s been compressed (JPEG 90%) and sometimes even indicate what software I used to modify them, ie, IMG_0100_SW.JPG for Shotwell. I also add _BW for black and white photos.

    To managed the ones I have not taken, I put them in a different folder “From” and do the same in there: “/From/Dad/YYYY/01. Name”

    Hope that helps…

    Comment by Gaetan — 2013-05-18 @ 13:23

  2. Thanks!

    What does Country mean in your layout? You travel a lot? Or is it a placeholder for event name?

    Comment by Thomas — 2013-05-18 @ 13:35

  3. Would it be an option to use a photo management application such as Adobe Photoshop Lightroom or Shotwell. (https://en.wikipedia.org/wiki/Comparison_of_image_viewers contains a detailed list.)

    They all provide some sort of folder organizing functionality but the real power lies in the ability to assign tags to your images and create groups based on them.

    Comment by Jensen — 2013-05-18 @ 14:33

  4. I use YYYY/MM/DD-description and each of those inside their year folder, so that makes me have smaller batchs. To be honest, even if I know that there are several apps to handle the organization, I still find easier to just use folders. Probably since that doesn’t mean that the app has to load my over 200.000 pics (or more) just to have a BD available for me :)

    Comment by tatica — 2013-05-18 @ 14:48

  5. I know it’s not a Gnome app, but digikam has a fairly massive feature set.

    Search by Geolocation, tagging, batch processing and so on. Latest versions can even do the whole face detection and recognition (Recognition might not be in stable, but I’ve seen it in action, so it’ll be there sometime soon if not). Then it can tag photos with the people in them for you.

    Comment by Steve — 2013-05-18 @ 18:59

  6. You are trying to put too much to the filesystem and filenames. You should put most of your information to EXIF tags (using for example JBrout or some other EXIF-heavy photo cataloguer) and then you can stay with plain year/month/event structure.

    Comment by MatÄ›j Cepl — 2013-05-18 @ 20:56

  7. That’s an interesting subject.

    Here is my layout. It works quite well for my needs. Basically there are 3+1 folders on the top, depending on the source of the photos (myself, family and friends, and the Web). Plus a STUDIO folder work graphical works (created and modified stuff).

    ME, from, www, and STUDIO

    ME: is for pictures I took. That’s 20.000+ photos, they don’t fit on my drive, so I have them all on a flickr account, and I keep 100px thumbnails that I use to look for a photo. It includes my videos too. My personal photos are better organized at flickr into collections and sets (by hobby and by event). I have not been using much tags. Modified pictures are suffixed -gimped or -scaled or -cropped, etc. (see also http://www.flickr.com/photos/lucc) I name photos yyyy-mm-dd–hh.mm.ss_.[jpg|png] from EXIF data. For videos, I guess the time, because they don’t seem to have metadata.

    – from : are pictures I got from friends and family
    – www : is a collection of pictures from the web
    – STUDIO : for graphical projects, tools, doc, etc.

    MISSING: What I am lacking (of time too), would be to stash away duplicates and not so interesting ones. And then to deeper organize/tag the remaining ones to help browsing the whole collection. Especially I still did not find the right tool that would assist me in such task. I am quite happy with flickr, but there are some limitations (in the UI).

    FOLDER LAYOUT: Below is most of the folder tree (it’s generated by ‘tree’, let see how it display). There are quite a few more subfolders but the main idea is here. There are some places missing because they are not under Pictures. For example I am a big fan of band FOOBAR, then I have somewhere else a folder with everything concerning FOOBAR
    …/fan of FOOBAR/ image, videos, texts, etc.

    Feel free to criticize !

    ├── ME
    │   ├── Photo Booth
    │   ├── me by others
    │   ├── my avatars
    │   ├── my flickr
    │   │   ├── My Favourites
    │   │   ├── set aaa
    │   │   ├── set bbb
    │ │ └── set ccc
    │ │
    │   └── my photos
    │   ├── 2004
    │   ├── 2005 (mostly empty placeholders….)
    │   ├── …
    │   ├── 2013
    │   └── thumbnails-100px
    │   ├── 2004
    │   ├── 2005
    │ │ ├── yyyy-mm-dd–hh.mm.ss_.[jpg|png]
    │ │ ├── …
    │ │ └── yyyy-mm-dd–hh.mm.ss_.[jpg|png]
    │   ├── …
    │   └── 2013
    ├── STUDIO
    │   ├── DOC
    │   ├── INSPIRATION
    │   ├── PROJECTS
    │   │   ├── project1
    │   │   ├── project2
    │ │ └── project3
    │ │
    │   ├── RESOURCES
    │   ├── TOOLS
    │   ├── technic1
    │   ├── technic2
    │   └── technic3
    ├── from
    │   ├── name1
    │   ├── name2
    │ ├── name3
    │ ├── misc-family
    │   └── misc-friends
    └── www
    ├── animals
    ├── buildings
    ├── colors
    ├── computers
    ├── flowers
    ├── food
    ├── landscape
    ├── message
    ├── people
    ├── places
    ├── planets
    ├── waves
    └── funny

    Comment by oluc — 2013-05-19 @ 03:40

  8. I’ve been through this dilemma a while ago. Up until then, I had all photo’s like:
    * `photos/2012-12-31 New Year’s Eve parents/20121231-235313.jpg` for the originals
    * `photos/2012-12-31 New Year’s Eve parents/20121231-235313.ed.jpg` for the edits

    But (as you’ve also found out) that only gave me one dimension to filter on. In the end I choose for Lightroom. This allows very user-friendly sorting and filtering on a lot of metadata aspects: obviously the date/time, but also the location (with Google Maps UI), arbitrary keywords (with complex logic filters), a rating (1-5), a label (colors), a flag (accepted/rejected), the picture metadata (flash or not, focal length, …) or any combination thereof.

    What I also like a lot is that all edits are non-destructive. The original (the RAW’s in my case) are untouched, only the applied edits are saved as metadata (XMP sidecar-files in my case). You can obviously export the edited pictures back to JPEG if you want to.

    To profit from all this, I had to give up some liberties. I still organize my pictures in `YYYY-MM-DD event name` folders, but all crops, edits, labels, keywords go into Lightroom’s database. Lightroom does put the metadata back into the filesystem in the EXIF or XMP files, so in theory, the SQLite database is just a cache, although I haven’t tried if it will restore everything from the EXIF/XMP data.

    If the above sounds great, but you don’t want to buy into commercial software, take a look at DarkTable (http://www.darktable.org/). At the time I tried, it crashed regularly, but judging from the version number, they’ve come a long way.

    Comment by Niobos — 2013-05-19 @ 09:29

  9. The key thing is your last comment – that things can’t be resolved by a simple directory layout. Putting stuff in a year/month/day folder is as good a system as any, but if you’ve got any non-trivial volume of files, you need some sort of photo management software – I favour Shotwell myself, but aside from a decent UI, the main requirement is that it be able to store any metadata you’ve added (descriptions, tags, timestamp corrections, etc) in the files themselves. Doing so greatly simplifies backups, and allows you to use other tools to extract the info as needed…

    Comment by Simon — 2013-05-19 @ 12:17

  10. Yes, country is the name of the country, I’m often in different countries, so it makes it easier to find the photos I want when looking for them :) The event name is used in the last sub folder “01. Event name” (ie, 01. Trip to NY, 02. Zoo, 03. Mum’s birthday…)

    Then I use shotwell to tag my photos, can find anything amongst thousands in a sec…

    Comment by Gaetan — 2013-05-19 @ 17:40

  11. Hey,

    Personally I use:


    Where $suffix is blank if it is from our main camera or “-andrew” if it is from my phone, etc. The date stamp is the date that the photos came off the particular device. This is is because you can’t always trust the data stamp on the photos. If we get photos from a 3rd party then they go in as:


    All tagging (people in photos, location, events etc) are managed by F-Spot and stored in the images or in side car files.

    I used to store photos using a more complicated structure mixing in the event into the path, but that became unworkable as well as confusing, especially once my wife started using the photo repository as well.

    F-Spot runs in a VM on my home server and we both ssh into it and run F-Spot remotely to query the tags etc.


    Comment by Andrew — 2013-05-20 @ 02:13

  12. I think it depends on how many photos you take. Too fine grained a directory structure, and you’ll spend more time going back and forth, unless you use something like Shotwell.

    I have my family photos stored in YYYY/EVENT/ or YYYY/SEASON/. Works for me. :) I’ve tried both F-spot and Shotwell, but in the end Nautilus + back/forth in EOG works just fine for my purposes.

    Generally, you need to be optimizing towards what you need when watching the pictures, e.g. it’s probably not worth investing the time in categorizing them unless you actually browse by category.

    Regarding lossless rotation: I felt the same way as you but then I read a book written by a professional photographer who pointed out that in 99% of the cases there’s no point in storing things losslessly beyond the point where you can’t tell the difference without zooming in 10x. With that in mind, I’ve ended up cranking up the compression on the camera, and also recompressed some old photos from 99% JPEG quality to (IIRC) 92% – something like that. No visible difference, it takes up half the space which makes it faster and easier and cheaper to backup. I think it’s good engineering practice to only worry about things that matter. :)

    Comment by Ole Laursen — 2013-05-20 @ 10:33

  13. I too am a hobbyist photographer and have thousands of pictures. Without using any software, I start by using the YYYYMMDD-small-description as the top level directory with my raw pics in there. I also have a separate directory for the jpegs directory for converted files. Anything more than a simple directory structure is arbitrary and extremely cumbersome.
    Thats why tags stored in a db are the best way to go.

    Comment by Sunil — 2013-05-20 @ 13:38

  14. First, place all your porn and NSFW photos in a completely separate folder called “Porn” or “NSFW” because you will definitely treat all subfolders appropriately if you do so. Never hide porn / NSFW because it will inevitably lead to embarrassment, whereas clear labelling will keep you safe.


    Where “CAMERA” is usually the camera model, but also “Scanned photos”, “Scanned APS”, “Scanned slides”, “Portrait photos”. Each collection of images is in a subfolder that sorts by date, “YYYY-MM-DD”, and optionally an event name like “The Zoo”. Every original image should have a unique filename provided by the camera. All my scanned slides begin with “AAA”, “AAB”, etc (you can have up to 676 2-letter folders, 17.576 3-letter folders – I use the first letter to denote different collections of scanned or collected image folders). I add sufficient characters to ensure that every filename is unique – fdupes is a great help.

    The final part of my filename is “-TRANSFORM”, typically “-S” is selected for print, “-R” is rotated, and “-M” is any other modification (usually a little sharpening and levelling). The command find photos -iname “*-*.jpg” will list every modified image.

    I also store a small “00index.txt” in directories and use txt2png to create an image of the index text, so this image appears first when using a thumbnail viewer (I use GThumb), to show a description (camera, lens, date, event) in each contact print.

    Comment by Stuart — 2013-05-20 @ 14:52

  15. You’re not a professional photographer but nonetheless you may find these guidelines helpful: http://www.dpbestflow.org/project-overview

    Comment by Damon Lynch — 2013-05-21 @ 04:19

RSS feed for comments on this post. TrackBack URL

Leave a comment