Lightroom: Add more flexible import naming/structure options

  • 20
  • Idea
  • Updated 6 years ago
  • (Edited)
The one part of Lightroom that I have never got on with is the import module. The file and directory naming options are simply not sufficient to allow for the existing directory structure that and naming conventions that I use. My style is "P:\photos\2011\2011-06\Name of Job\d5100_1234.jpg" which I cannot create with LR3. Instead I use Downloader Pro from BreezeSys which allows me to automatically create this structure, and even prompts me for the "job name" before downloading the images.
Photo of Simon Crosland

Simon Crosland

  • 5 Posts
  • 0 Reply Likes

Posted 7 years ago

  • 20
Photo of Geoff Walker

Geoff Walker, Champion

  • 214 Posts
  • 42 Reply Likes
Which part can't be done in Lightroom? i.e. where does the folder naming stop and the file naming begin??
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 372 Reply Likes
Simon - I understand your Idea is for native functionality in Lightroom, but I'm curious what is the short-coming of your present "workaround"? (PS - I bypass the import dialog altogether, due to some shortcomings I was having too, but now I have no import issues anymore).

Also, you may be interested in a related Idea: Import Actions which may solve your problem in a more general way, and then some...
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 372 Reply Likes
Simon,

To accomplish your import subfolder naming scheme in OttoImporter, you would need to change the import settings in the lua text configuration file to this:

foldernameSpec = {
{ field = { 'dateTimeOriginal', 'year' }, format = '4-digit' },
{ literal = app:pathSep() }, -- literal backslash on Windows
{ field = { 'dateTimeOriginal', 'year' }, format = '4-digit' },
{ literal = '-' },
{ field = { 'dateTimeOriginal', 'month' }, format = '2-digit' },
{ literal = app:pathSep() }, -- literal backslash (forward slash on Mac).
}

promptForCustomDirText = true

"custom dir text" would be "Name of Job".

That's lua script text format, but as you can see, it's fairly intuitive to customize by example/analogy. - about the same level of difficulty as editing preset .lrtemplate files - more stuff to wade through, but also more instructions/examples ;-}.

Rob
Photo of Simon Crosland

Simon Crosland

  • 5 Posts
  • 0 Reply Likes
I'm not near the relevant computer at the moment, but from memory there are two parts that I definitely cannot do in LR3:

a) The custom file name using only part of the full camera model name. I.e. I want files called "d5100_1234.nef", not "Nikon D5100_1234.nef", can "s95_1234.cr2" not "Canon Powershot S95_1234.cr2".

b) The "job" code which goes to form the last directory name in the path. That changes on *every* import. So using static custom text doesn't work, it needs to be a free text field that I can fill in every time and which the system will prompt me to complete if I forget.

I'm also not sure that I can do the month date in "2011-06" format, but I expect I can with the necessary date format code.

Rob, what's wrong with my workaround? Solely that it requires a separate program* which makes it clunky. A purely LR flow would increase ease of use. The suggestion you link to might be useful depending on how it is implemented. I think I would need a pre-import action here to prompt for the job code and then take the list of files to be imported and massage them into the naming convention that I want. But that's kind of complicated compared to Adobe just extending the current import naming options with a few more!

* I should perhaps note that the other obvious alternative to Downloader is ImageIngester.

Cheers,
Simon
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 371 Reply Likes
Simon - for your filenaming scheme (in OttoImporter) you'd need this in your initFile function:

local model = getToken( 'exif', 'Model' ) -- all exif metadata is available as tokens (aka "fields" ).
model = LrStringUtils.lower( model ) -- convert to lower case
if model:find( "nikon " ) then
model = model:sub( 7 ) -- strip "nikon ".
elseif model:find( " s95" ) then
model = model:sub( string.len( "Canon PowerShot " ) + 1 ) -- skip to the s95 part.
end
putToken( 'custom', 'model', model ) -- make custom model token available to filename spec.

Starting to look more like lua programming, but still not too bad - I'll help if you need. And your filename spec would be:

filenameSpec = {
{ type = 'custom', field = { 'model' } }, -- custom model token
{ literal = '_' }, -- literal underscore character
{ field = { 'fileNum' }, format = '4-digits' }, -- pre-defined image-number token
}

I realize this may be over the head of non-programmers, but again: I can help...

Anyway, if you also put this in your import settings:

extCase = "Lower Case"

then you'd have these filenames:

d5100_1234.nef
s95_1234.cr2

Note: these names will not be unique, catalog-wide, since the image number rolls over. So, consider this filename spec instead:

filenameSpec = {
{ type = 'custom', field = { 'model' } }, -- custom model token
{ literal = '_' }, -- literal underscore character
{ field = { 'folderNum' }, format = '3-digits' }, -- pre-defined folder-number token
{ literal = '-' }, -- hyphen
{ field = { 'fileNum' }, format = '4-digits' }, -- pre-defined image-number token
}

which would give

d5100_103-1234.nef
s95_103-1234.cr2

(folder number = 103)

*this* filenaming scheme guarantees catalog-wide uniqueness, *unless* you buy another camera of the same model, or import photos from a like-modeled friend, in which case you'd need photograher's initials too, or something.

In case you're interested, my current filenaming scheme is:

filenameSpec = {
{ field={'dateTimeOriginal','year'}, format='4-digit' },
{ field={'dateTimeOriginal','month'}, format='2-digit' },
{ field={'dateTimeOriginal','day'}, format='2-digit' },
{ type='custom', field={'photogId'} },
{ field={'dateTimeOriginal','hour'}, format='2-digit' },
{ field={'dateTimeOriginal','minute'}, format='2-digit' },
{ field={'dateTimeOriginal','second'}, format='2-digit' },
{ type='custom', field={'cameraId'} },
{ field={'fileNum'}, format = '4-digit' },
}

which assures alphabetic order is same as capture-time order, and groups photos each day by photographer, e.g.

20121123RC095234NB1234.NEF

(photographers initials: RC; camera-id: NB - my second Nikon)

Note: photos taken by same photographer each day with different cameras are interleaved.

Admittedly long and hard to read (especially at first), but works perfectly for what I need.

Unique catalog-wide (even if the day's shoot involved another photographer shooting with same model simultaneously with overlapping image numbers...): I could export all my photos to a single flat folder (without renaming), and they would be ordered alphabetically just how I want, with no name conflicts.

Rob
Photo of Geoff Walker

Geoff Walker, Champion

  • 214 Posts
  • 42 Reply Likes
I'm not sure why you want the camera name in the file though?? It is a metadata sortable field - I use that often. Curious.......
I agree more flexible options would be useful.
Photo of Simon Crosland

Simon Crosland

  • 5 Posts
  • 0 Reply Likes
Having the camera name in the file name is useful for quick reference when not in Lightroom and handily prevents name clashes when multiple cameras (of different types) have been used on the same job. But my reason is mainly about having clear observability when looking at files in the file system.
Photo of john beardsworth

john beardsworth

  • 962 Posts
  • 199 Reply Likes
Simon, did you use LR1 or 2 where it was possible to double click the folder name and add text? Would restoring that meet your need?
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 372 Reply Likes
Simon, I have the exact same naming convention as you.

{camera-designation}-{camera-specific-image-number}. Guarantees unique names catalog-wide, and I can see at a glance the camera used. Everything else is done using metadata.

While I agree that more flexible import naming would be good, I think you can do what you want now just by using a different import preset for each camera (with different filenaming specified in each preset), no?
Photo of Simon Crosland

Simon Crosland

  • 5 Posts
  • 0 Reply Likes
John, I did use LR1 and 2, but never knew about the ability to click on the folder name and add text! I'll dig out an old help file and see what it says, but it does sound useful, though perhaps not as convenient as actively being prompted for the free text to insert.

Rob, I could probably do the file naming with different presets, but I don't think I can do the variable folder name with free text in it. Though given I've already missed on related feature (pointed out by John) it's possible I'm missing another!
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 366 Reply Likes
Hi Simon, it looks like the job-name (shoot-name) can only be applied to the file name, not the folder name, I guess that's the missing link. PM me if you want to entertain the method I use which does support custom folder naming text.
Photo of Clive Wasson

Clive Wasson

  • 5 Posts
  • 0 Reply Likes
why can't lighroom work like photo mechanics, import into, dated folder, then named sub folder, i know it can import into sub folder then dated folder but why not the other way around.

This reply was created from a merged topic originally titled
Lightroom improving import.
Photo of tonguetwister

tonguetwister

  • 12 Posts
  • 7 Reply Likes
I name mine: C:\Photos\2011\2011-07-17_Job Description

I always have to go in and add the Job Description after importing by date. It would be nice to be able to do this on import in one step.
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 371 Reply Likes
Good choice. - and it's the default import subfolder naming in OttoImporter.
Photo of Paul

Paul

  • 10 Posts
  • 0 Reply Likes
I agree wholeheartedly with the comments in the OP. I have used LR since the beginning as my primary tool (raw shooter before this even), and the import dialog has always been a bit of a disappointment due to lack of customization which would support my folder structure requirements. In my job, I shoot maybe 10 sets of images of one model in a day. My folder structure follows the format:
D:\Working\2012-02-20 model_name\set1
thru..
D:\Working\2012-02-20 model_name\set10

I too use BreezeSys Downloader Pro to copy images, as it allows me to setup the folder path using a huge list of meta data variables. I use the 'job code' option mentioned in an earlier post to specify the 'model_name\set10' part of the path (as it allows folder breaks to be included in that job code) - it allows me to change the job code for every file copy , where I would increment just the set number part. Therefore a new set folder is created for each copy - perfect! Unfortunately, the 'Into subfolder' option on LR3 import dialog puts the sub-folder as a parent folder of the date folder structure which can also be selected in tandem. I'm not exactly sure why it puts this sub-folder above the date folders but if we had the option to put this below the date folders I would be half way to a solution. Having the ability to better customise the date structures would be a saviour also!

I didn't spot any major enhancements in the LR4 beta, so hopefully we get something sorted for a more flexible import dialog for LR5 or 6 - here's hoping!
Photo of Ignacio Garcia

Ignacio Garcia

  • 2 Posts
  • 0 Reply Likes
Hi to all. I posted this in a similar thread, but I have a similar naming convention.. and as far as I can tell, I cannot rename like this in LR..

F:\Download\20-Luminale\20120420_Luminale_D300_5154.nef

From download I move the folders to their correct months.. so duplicates are not really an issue.

For the moment, the best I can manage with LR4 is:
20120420_Luminale_NIKON D300_5183.nef, in a folder named "2012-04-20".

Close enough, but a change in my workflow.. and it has worked well enough in 100.000 cases (images..)
Photo of Bob Meyer

Bob Meyer

  • 3 Posts
  • 2 Reply Likes
Lightroom is a great program, but there's one aspect of the program where I'm unwilling to give up my prior workflow, and that's copying files from a memory card to my hard disk. The directory naming and file naming options are extremely limited compared to my preferred tool, Download Pro (from Breeze Systems). DL Pro is capable of pulling a ton of data from the EXIF and using it in either the folder or file names. For example, I can import into folders based on shooting date, not current computer date. I can incorporate the camera model, and even serial number if desired, into folder or file names. I can mix dates and custom text in a folder name, where Lightroom forces me to choose one of the other. Here's a list of elements that can be incorporated into file and folder names:

http://www.breezesys.com/Downloader/h...

It includes multiple, customizable date formats based on SHOOTING INFO, not import date, multiple time formats, camera folder, file-name and file number data, ISO, camera model, free text, and more.

For example, I can upload images into a folder named 2011\Grand_Canyon\2011-10-04-7D\, which I don't believe I can do in LR at all, and certainly not by pulling info out of the EXIF. And I can rename files into that directory as, for example, Grand_Canyon_1301_400.CR2 (where 1301 is the original camera sequence number and 400 is the ISO) or Grand_Canyon_0001_7D_111004_111532.CR2 (showing date and time shot, as well as a unique sequence number).

About the only thing DL Pro lacks is the ability to have multiple custom text strings and the ability to save a copy on import.

If LR3.6, or LR4 added full featured naming capability similar to DL Pro, I could do 99.9% of my processing in LR and PS, and be a happy camper.

This reply was created from a merged topic originally titled
Lightroom: More naming options on import.
Photo of Paul

Paul

  • 10 Posts
  • 0 Reply Likes
I just moved from PC to Mac for my location work. Unfortunately BreezeSys Downloader Pro is not available for Mac and according to Chris Breeze (the author) is not financially viable for him to produce a Mac version of the product. So I am forced to use LR4 for copying images off card - I must say, this has put a huge dent in my workflow as LR4's import options are extremely lacking in functionality. The comments/ideas in this forum topic need to be given serious consideration by Adobe to fill the void in the current Import feature set.
Photo of YSANDER VON BOXBERG

YSANDER VON BOXBERG

  • 25 Posts
  • 0 Reply Likes
you may try ImageIngester, or the cheaper Ingestamatic programs, both run on Mac and PC. For the Mac, you could also use "A Better Finder Rename", after ingesting photos via TdI.
As for myself, I've been using for many years now, the free program "ExifRenamer".
Photo of jim giner

jim giner

  • 9 Posts
  • 0 Reply Likes
My pictures are stored in folders by date. The format I've used for years is yyyy_mm_dd which is a pretty common thing to use. The use of '_' instead of '-' (underscore instead of dash) is preferred since references to items with a dash in any programming environment are problematic for some, but the underscore is never a problem.

Lightroom provides several choices for naming of folders during an import, but leaves out any date format that uses underscores. Currently I have to select the dash version and after my import, find and rename each folder that was just imported.

How about adding one more date format for folder names, ie YYYY_MM_DD?

This reply was created from a merged topic originally titled
Lightroom: How about another filename mask for importing to a folder? (i.e Date format using underscores YYYY_MM_DD).
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 371 Reply Likes
You can do this now by simply editing the import preset with a text editor and replacing the dashes with underscores in 'shootNameFormat' (a misnomer, but that's what its called). - restart Lightroom afterward. - and if you ever resave the import preset, you'll have to edit that shoot name format again. If you're prone to forgetting - consider making it read-only so you can't change it without a "reminder".
Photo of Eric Raeber

Eric Raeber

  • 1 Post
  • 0 Reply Likes
When importing photos into the LightRoom 4 beta library, the file renaming toolbox has nice capabilities for renaming the file based on the sequence, date or file number. I could not find a way to also apply a custom setting (e.g. use the sequence number in the sub-folder), which has been my convention for now above 10 years.

As no menu exists to specify such a sub-folder naming rule, I tried entering "{Import # (001)}" or "{Import # (001)ยป}" into the destination sub-folder, to no avail. The folder takes that name, regardless of its name.

Do you need that too to improve your workflow and minimize naming errors ? Vote for the feature !

This reply was created from a merged topic originally titled
LIghtroom 4 beta: Parametrize import folder.
Photo of Andrew Broome

Andrew Broome

  • 7 Posts
  • 1 Reply Like
In LR 2.4 and earlier (I never upgraded to 3.x) I would always import into the following folder structure:

YYYY/Month/ShootName/

As of 4.1 I can no longer figure out how to do this. In the File Renaming section, adding a '\' to the name does not create a sub directory; instead it adds a "-" to the name. The the Destination section, the "Into Subfolder" option creates the subfolder above the date organization resulting in

ShootName/YYYY/Month/

Is there a way to support my old organization scheme with 4.1?

Thanks!

This reply was created from a merged topic originally titled
LR 4.1 - Import to subfolder under date - YYYY/Month/ShootName/ ?.
Photo of Rob Cole

Rob Cole

  • 4831 Posts
  • 372 Reply Likes
Consider OttoImporter. You have to edit a lua text configuration file to customize, but it can do all things "import-ant" (pun intended). e.g.

Default subfolder is: year/year-month-day{shoot-name}

You can be prompted for a new shoot-name once before each import, or each time the target subfolder changes (in this case each shoot day).

Example of the former (assuming card has 2 days worth of photos):

(prompt for shoot-name = Thanksgiving)
2012/2012-11-22 Thanksgiving
2012/2012-11-23 Thanksgiving

Example of the latter:

(prompt for shoot-name = Thanksgiving)
2012/2012-11-22 Thanksgiving
(prompt for shoot-name = Black Friday)
2012/2012-11-23 Black Friday

Don't like the default subfolder? - trivial to customize once you find the right thing to tweak (can be a bit daunting at first, so be prepared). - I'll help if you need it.

Rob