Jeffrey’s “Bag-o-Goodies” Lightroom Plugin

This plugin is a collection of various small Lightroom tools that don't merit their own plugin.

This plugin works in Adobe Lightroom Classic, and older versions as far back as Lightroom 5, though some features depend on the version of Lightroom).

The same download works for both Windows and Mac. See the box to the upper right for the download link (in orange) and installation instructions.

Tool Overview

The plugin contains these tools, available via the File > Plugin Extras menu:

•  Find Next Photo Group — identify and group related photos (exposure bracketing, panoramas, high-speed burst, etc.).
Compare Photo Times — how far apart in time were two photos taken?
Compare Two Collections/Folders — which photos are shared between two folders/collections, and which are unique to one or the other?
•  Mark Selected Publish Collections As Up To Date — any Modified Photos to Republish in selected publish collections are moved back to Published Photos.
•  Publish All in Selected Service — publish all collections in the currently-selected Publish Service.
•  Delete Cached Previews for Selected Photos — clears out cached previews that the Library Module has made for the selected photos.
•  Write Data Field... — lets you update metadata fields with other data from the photo.
•  Publish At... — lets you schedule publish collections to be published later in the day.
•  Personalized Auto Tone — lets you put some limits on Lightroom's mostly-excellent new (as of 2018) "Auto Tone".

Find Next Photo Group

This tool helps identify the following types of logically-grouped photos:

  • High-speed burst
  • Exposure-bracketed shots
  • Aperture-bracketed shots
  • Panorama-component shots

It makes its best guess based upon capture-time and exposure-settings metadata.

Once a potential group has been identified, the plugin selects them and offers the option to apply an appropriate keyword (high-speed burst, exposure stack, etc.) and makes it easy to group them into a stack.

Here's an example of the plugin identifying the high-speed burst that was used to create the wigglegram on this page...

At this point I dismiss the dialog and while doing so optionally have the plugin apply a high-speed burst keyword to each photo. The photos remain selected, so if I want them grouped into a stack, I merely tap the Command-G keyboard shortcut and it's done. (Sadly, Lightroom's plugin infrastructure doesn't allow a plugin to stack photos. 🙁 )

Again invoking this tool, the plugin searches for the next group starting just after the selected photos.

Because the plugin starts searching after the currently-selected photos, one must make sure to deselect all photos before doing the first search of any particular group of photos. The keyboard shortcut to deselect all photo sis Command/Control-D.


Compare Photo Times

This simple tool displays the time difference between two photos. For example, it shows that on my first bicycle ride to the sea it took 8 hours 11 minutes to get there:

The tool is invoked via File > Plugin Extras > Compare Photo Times. If more than two photos are selected when it's invoked, the first and last photos are chosen.

If your camera somehow saves the capture time with sub-second accuracy, and if Lightroom actually reads that data and makes it available to the plugin, the capture time is reported appropriately. For example, this unlucky cyclocross racer:


Slow Motion
I bet it felt a lot longer than 6/10th of a second

Some thought has gone into how to display things nicely. The hours and minutes and am/pm are in bold, with the seconds not in bold so that they don't clutter a quick glance. If times are indeed recorded with sub-second accuracy, the fractional part of the seconds is shown in a smaller font to further reduce the at-a-glance clutter.

(12-hour time notation is used in English and Spanish installs of Lightroom; 24-hour time notation is used otherwise.)

A lot goes on behind the scenes to make sure the duration is presented accurately. A duration of 367 days might be 1 year 1 day or 1 year 2 days depending on whether a leap day fell in between, for example.

There's one other wrinkle to mention, illustrated here with an example showing both the earliest and the most-recent photos of my son to appear on my blog:

This example highlights a problem with photo dates: the photo-data standard doesn't allow the timezone to be encoded along with the time, a moronic decision that creates all kinds of problems in dealing with dates.

In the example above, the final bit of the difference between the two photos would indeed be 2 hours 18 minutes if the two photo times (3:45pm and 6:05pm) were in the same timezone, but one is US Pacific Standard and the other is Japan Standard, so without understanding timezones the span between the two is off by the difference in timezones (in this case, by 17 hours).

So, to handle this properly, the plugin can take timezones into account if they're set for each photo with my Geoencoding-Support plugin. Here's the same example photos with timezone support enabled:

Notice that the duration is now shorter (by the 17 hours difference between the two timezones) and so is now correct. Also, the timezone is indicated lightly next to each time, as the offset from UTC (the modern version of GMT).

If a photo doesn't have a timezone associated with it with my Geoencoding-Support plugin, the timezone currently set for the computer is used.


Compare Two Collections/Folders

This feature shows what photos are shared between two collections (or a collection and a folder), and which are unique to one or the other.

If two collections (or a collection and a folder) are selected when invoked, they'll be compared. Otherwise, you'll be prompted for which to compare.

You'll then be shown a scrolling list of thumbnails indicating items shared between the two collections, or unique to one or the other. This is headed by a summery, which includes the ability to create a collection of just the shared/unique sets.


Mark Selected Publish Collections As Up To Date

This simple tool inspects all published photos in whatever Publish Collections are active at the time, and offers to moves any in Modified Photos to Republish back to Published Photos.

All selected collections must be within the same Publish Service.

The need for this kind of tool arises out of longstanding bugs in how Lightroom keeps track of what photos need to be republished. It's really frustrating for such basic bugs to remain year after year, but until Adobe fixes it, this tool might bring some relief to folks particularly hard it by the bug.


Publish All in Selected Service

If invoked while any publish collection is selected, all collections in the publish service are published, one by one. Progress is indicated in the status area in the upper left of the Library Module.


Delete Cached Previews for Selected Photos

This command allows you to clear out the various-sized preview images that Lightroom has squirreled away to make Lightroom interactive use feel snappier.

The two arrows show that the main command can be invoked in two ways, one to actually clear out the cached previews, and another to just report what would be done.

(Note: this is all completely unrelated to Lightroom's “Smart Previews”, which is an entirely different concept.)

By the way, if you just want to see the amount of space taken by previews, my Date Explorer plugin will tell you, as will my System Info plugin.


Write Data Field...

This tool lets you fill in certain metadata fields (Title, Caption, etc.) with other data from the photo, using the template tokens that my plugins understand.

In its most simple use, you can copy metadata from one field to another, but in more complex uses, you can craft complex captions by combining a variety of data on the fly.

The list of fields you can write to:

  • Caption
  • Category
  • Copy Name
  • Copyright Info URL
  • Copyright Owner
  • Copyright Status
  • Creator
  • Creator Address
  • Creator City
  • Creator Country
  • Creator E-Mail
  • Creator Job Title
  • Creator Phone
  • Creator State / Province
  • Creator Website
  • Credit Line
  • Description Writer
  • Event
  • Headline
  • Instructions
  • Intellectual Genre
  • IPTC Scene Code
  • IPTC Subject Code
  • Job Identifier
  • Postal Code
  • Rights Usage Terms
  • Source
  • Sublocation
  • Title

Publish At...

This tool lets you schedule collections to be published later in the evening or the next day. It's a simple thing.... merely pick a time at the top or bottom of an hour any time in the next day, and pick the collection or collections to be published. This might be useful to shift export bandwidth to the middle of the night, for example.

(There's certainly room for a more complex scheduling system, but this bag-o-goodies feature is simple.)

Lightroom must be running when the time comes around for the publish to happen. When that happens, a dialog is displayed for a short time to give you a chance (if you're in front of the computer) to abort it. Otherwise, each collection is published in turn.

When it's done, a dialog is shown (and remains until you dismiss it) saying that it's done, letting you know what time it finished and how long it took.

As part of the registration nagging, after the plugin's six-week trial period has passed, you can still use it if unregistered, but you can pick only one collection to publish, and the selection of target times becomes somewhat limited.


Personalized Auto Tone

(This feature is supported from Lightroom 7.3)

2018 saw the introduction of a vastly-improved Auto Tone that many photographers now find useful as a generic starting point for their own edits. (See this goodie's announcement post for a bit more on why the new version of Auto Tone is so much better.)

However, as nice as the results generally are, you may find that you want to limit some of the effects. For example, I personally find that Auto Tone is a bit heavy handed with color, so I use this plugin to zero out any added vibrance or saturation.

This part of the plugin provides two File > Plugin Extra items:

Configure Personalized Auto Tone and Apply
Apply Personalized Auto Tone

The former brings up a configuration dialog prior to applying your personalized Auto Tone, while the latter applies it directly, without an intermediate dialog, using your most recent configuration.

The configuration dialog may seem fairly complex at first sight:

The visual complexity comes from being able to configure all nine develop settings that the new Auto Tone updates. To illustrate the configurations, here's a close up of just Saturation:

As presented above, nothing is yet personalized about how Auto Tone affects saturation. We can use any combination of the four controls to personalize things. The controls marked with and configure what the plugin should do when Auto Tone chooses negative saturation, while those marked with and configure what it should do with positive saturation.

In each case, you can set what percent of Auto Tone's choice gets applied, anywhere between 0% and 120%, and also a hard limit to the value that can be applied.

In this example, Auto Tone is disallowed from setting any positive vibrance or saturation:

The example is somewhat contrived because they each use a different way to totally constrain any positive value from being applied, but I show it to illustrate those two ways. In the case of vibrance, it's done by using 0% (none) of any positive Auto Tone value. In the second, the hard limit of zero for saturation overrides any positive value that Auto Tone would have given.

In both cases, any negative value from Auto Tone is applied as is, as the configuration controls for negative values have been left at their don't touch defaults.

As another example, I find Auto Tone to be a bit too free with negative contrast, so here I have it apply just 50% of what Auto Tone chooses:

Clicking on the keep ...% of Auto Tone's setting label under each slider returns the slider to 100%.


Availability

This plugin is distributed as “donationware”. I have chosen to make it available for free — everyone can use it forever, without cost of any kind — but unless registered, its functionality is somewhat reduced after six weeks.

Registration is done via PayPal, and if you choose to register, it costs the minimum 1-cent PayPal fee; any amount you'd like to add beyond PayPal's sliding fees as a gift to me is completely optional, and completely appreciated.

Note: a Lightroom major upgrade, such as from Lr6 to Lr7 (or the equivalent under the hood for the Lightroom Classic subscription) de-registers the plugin in the upgraded version, so if you want to maintain registration, a new ($0.01 if you like) registration code is needed in the upgraded version. It makes for a hassle every couple of years, I know. Sorry. See this note for details.

For details on plugin registration and on how I came into this hobby of Lightroom plugin development, see my Plugin Registration page.

Version History
( Update Log via RSS )

20180910.33

Personalized Auto Tone: Handle B&W images.

Allow "Delete Cached Previews for Selected Photos" to be applied to vidoes.

Added the SST1, SST2, and SS3 tokens to the template tokens that the plugin understands.

20180906.32

Upgraded to the embedded copy of ExifTool to version 11.01.

20180702.31

Maybe fixed the saturation-minus-100 issue with Personalized Auto Tone.

Upgraded to the embedded copy of ExifTool to version 11.00.

20180606.30

In "Personalized Aut Tone", allow Lightroom's settings to be applied up to 200% (was 120%).

20180601.29

Removed 'Clarity' from the "Personalized Auto Tone" stuff. Auto Tone doesn't touch Clarity... I'm not sure why I ever thought it did.

Fixed a bug when 'Token Examples' invoked in certain situations.

Clicking on the version number in the Plugin Manager now copies version info to the clipboard

Updated the PublishCollectionName token to allow numeric arguments along the lines of the CollectionName token.

Added the folowing template tokens: {home}, {desktop}, {temp}, {pictures}, {documents}, IptcDateTaken

Added the 'PCH' variable to the {LUA} tag.

20180420.28

Spiffed up the UI to Personalized Auto Tone a bit.

20180420.27

Added a new goody for Lr7.3 (and later): Personalized Auto Tone.

Added a bunch of token filters: F2D F2S F2X B2D B2S B2X S2X A2D A2S A2X

Upgraded to the embedded copy of ExifTool to version 10.82.

20171229.26

Updates to the data templates that my plugins understand: updated the Keywords token, added CollectionNames and CollectionFullNames tokens, and added a bunch of stuff (KWf, CN, CFN, CNf, CFNf) to the {LUA} token.

Better handling when the plugin is reloaded in the middle of a session.

20171019.25

Oops, more Lr7 stuff.

20171019.24

Updates for Lightroom 7

20170925.23

Allow the "If Exists" feature of Templat Tokens to work with the PluginProperty token.

Better handle some character-encoding issues related to template tokens.

Update registration support to handle a stupid bug at PayPal that PayPal refuses to fix )-:

20170723.22

Added the {Exiftool=....} token, so now you can copy Exiftool fields from the master image file to a Lightroom data field.

20170704.21

Fixed a bug introuded the other day in template tokens, related to Windows filenames.

20170621.20

Added the "only if it has a value" feature to template tokens.

Updated the {FolderName} token to allow {FolderName=1} (rather than requiring the plus as in {FolderName=+1})

20170616.19

Consolidated the "Clear Standard Previews for Selected Photos" item and the "Delete Cached Previews for Selected Photos" item into one. They essentially did the same thing... I apparently added one without having remembered that I'd added the other a few months prior. How scatterbrained can one be!? Anyway, it's now much better, offering the option to leave previews for offline photos, and to report on what would happen rather than actually doing it.

20170610.18

Added the IPTC "Event" field to the "Write Data Field" feature.

Upgraded to the embedded copy of ExifTool to version 10.55.

20170529.17

Added the Newline template token.

Enhanced the FolderName token.

Added "Sublocation" to the "Write Data Field" feature.

Upgraded to the embedded copy of ExifTool to version 10.50.

20170415.16

The "Find Next Group" now knows that a change in certain metadata means that photos can't be grouped: camera make/model, image dimensions, image format.

20170328.15

Better plugin-name reporting for the Publish At service.

20170316.14

Fix to the Russian-language support for the People Support plugin.

20170309.12

Upgraded to the embedded copy of ExifTool to version 10.40.

Added the following tokens to the template tokens that my plugins understand: Artworks, ArtworkTitle, ArtworkCopyright, ArtworkSource, ArtworkCreator, ArtworkDateCreated, ArtworkInventoryNum

20170202.11

Added "ISO8601Date" to the template tokens that my plugins understand.

Switch the log-sending mechanism to https.

20161212.10

Added a preset function to the write-data-field goodie.

Upgraded to the embedded copy of ExifTool to version 10.36.

20161116.9

Added "Publish At...

(Today is the 9-year anniversairy of my plugin stuff.)

20161013.8

Added "Clear Standard Previews for Selected Photos".

Upgraded to the embedded copy of ExifTool to version 10.26.

20160902.7

Cleaned up "Compare Photo Times" dialog on Windows. Not sure how it got dorked so badly.

20160829.6

Added "Write Data Field..." goodie.

Upgraded to the embedded copy of ExifTool to version 10.20.

20160605.5

Added hooks for Windows keyboard shortcuts.

20160605.4

Added "Compare Two Collections/Folders" goodie.

Added "Publish All in Selected Service" goodie.

20160525.3

Added the "Delete Cached Previews for Selected Photos" goodie.

20160328.2 Fix a display issue with in the mark-as-up-to-date dialog
20160201.1 Initial public release

All 10 comments so far, oldest first...

Jeffrey:

I use your Folder Publisher and Metadata Presets plugins already and I downloaded Bag of Goodies to try to solve a problem I created for myself. I used the IPTC Headline field to store each photo’s filename as of a date in 2016 before I renamed everything. I decided to move it from a standard field to a custom metadata field instead. I already have created a plugin of my own where I add 20+ custom metadata fields and a metadata panel to enter & edit those along with the standard metadata fields I care about.

Would there be an easy way to extend the tags/tokens you support in the Write Data Field part of Bag of Goodies to support custom fields? Since I created the fields I know their IDs so just allowing your plugin to support {com.xxtwnz.todo.PWWCamera} or {PWWCamera} another plugin’s IDs would then let me move data between the standard fields you already have a token for and my own custom fields.

I haven’t found any plugins that let me copy data from a standard metadata field to a custom field or the reverse. I did find one plug of John Ellis’ that allows one to make his plugin aware of another plugins custom fields so one could then search on those. Doing something like that would be great.

Please let me know if what I’m proposing is feasible with little effort or a big job.

Thanks so much or what you do to make LR do what it already should do.

You can refer to your custom fields via th PluginProperty token when writing a standard metadata field, but unfortunately, Lightroom doesn’t let one plugin update the data for another, so there’s no way to use my plugin to update your custom fields. )-: —Jeffrey

— comment by Philip on May 23rd, 2017 at 3:19am JST (1 year, 4 months ago) comment permalink

Is there any way to add the Event field (IPTC:Extension) into the Write Data Field drop down? Will you also be able to add it to the available tokens?

Thanks
(Houston, TX, US)

Sure, I’ve just added it to the list of writable fields. It has long existed as a template token for reading. —Jeffrey

— comment by Joe on June 8th, 2017 at 2:35pm JST (1 year, 4 months ago) comment permalink

I was using this plugin till about a year ago. I had taken a personal time-off. I want to use the plug-ins to publish to Facebook and Google Photos. I was doing this easily from Aperture and later from Lightroom. I had subscribed to this Plug-in then, now I have tried to update all the available options. It doesnt seem to work. “Facebok Export Plugin Infor” – unable to Export, The section says upgrade to .402, while I have downloaded, the same does not install on its own. The zip files seems to be for Windows. I am operating a iMac, with the latest OS. Not sure how to proceed.

The automatic upgrade stuff in my plugins doesn’t always work smoothly, depending on your system, so in this case it’d be better to just delete all the old copies of the plugin from your machine (you won’t lose any data… none is kept in the plugin files), download and unzip a fresh copy. If you decided that you want the plugin to live on your system in a different place than it lived before, then re-point the Plugin Manager at the new location. There is only one download, and it’s used for both Win and Mac. —Jeffrey

— comment by Arvind Venkatraman on June 21st, 2017 at 2:06am JST (1 year, 3 months ago) comment permalink

I use the Write to Data field a lot. I write the Headline to Title and set to overwrite always. This is a great utility!

I use PhotoSupreme v3 as my DAM and when I go to PhotoSupreme and read metatadata data such as ISO, camera, f/stop, focal length are erased and don’t display in the program. I need to convert metadata to XMP in PhotoSupreme and then save to file (two steps).

Any reason your Write to Data field would cause this? No other change I make in LR has this same effect.

While not your issue, I also have to go through the same steps when processing RAW to jpg in CaptureOne.

The write-data-to-field feature never touches the image files (nor sidecar files like XMP)…. it’s just an update in Lightroom’s database. If you have Lightroom’s “auto-write XMP” feature turned on (which I generally recommend against), then of course most data changes in Lightroom result in data being written back to the file/sidecar, but that’s all Lightroom and so it should all be standard. Sounds like an issue with PhotoSupreme. —Jeffrey

— comment by Larry on October 19th, 2017 at 11:22am JST (11 months, 7 days ago) comment permalink

Jeffrey,

I name and organize images chronologically, and I also shoot a lot of bursts and bracketed images. Unfortunately LR’s image renaming templates only include Hours, Minutes and Seconds, but nothing for fractions of a second. I am pretty sure LR has the sub-second info because a) they can correctly chronologically sort multiple images taken in the same second, and b) you access sub-second data in at least two of your plugins – “Metadata Viewer” and “Bag of Goodies”.

I know there are work-arounds to create filenames that will properly sort chronologically, but being able to tap the sub-second data would be preferable. This issue has popped up in LR forums for years but Adobe has not addressed it. Any chance that functionality could find it way into one of your plugins?

Thanks,
Since you asked, I am writing from Music City USA, aka Nashville TN.

Sadly, Lightroom doesn’t allow a plugin to change a master-image filename directly, but what you can do is use the “Write Data Field” feature of this plugin to fill into a field that Lightroom’s renaming subsystems can use. For example, “Headline”. To access the sub-second time, use the SST1 token (or SST2 or SST3) tokens, which are available as of the new version of this plugin that I just pushed out. —Jeffrey

— comment by Tim on April 7th, 2018 at 11:13am JST (5 months, 19 days ago) comment permalink

Would love to be able to hide the options I do not plan to use so they do not clutter up the File>Plug-In Extras menu. I downloaded this plug-in just for the Personalized Auto-Tone feature. I always tell people about your plug-ins they’re amazing!

Yeah, I hear what you’re saying, but Lightroom makes it very difficult because the Plugin Extras stuff has to be hard-coded into a program file. I did build one of my plugins to allow its Plugin Extras list to be edited by having it build a new program file and overwrit the original in place, but that’s an extremely kludgy and fragile operation. I could, of course, put each of these items into its own plugin, but worry that folks would find a bunch of little plugins to be more hassle than one collection of random little things like this….. —Jeffrey

— comment by Ben W. on April 20th, 2018 at 10:19pm JST (5 months, 6 days ago) comment permalink

Hi Jeffrey,

Thank you for your very usefull “Personalized Auto Tone” plugin, I came across now. It would be a great help for me, because I use LR Auto tone as a starting point in the same way as you described: I reset Vibrance, Saturation, Contrast and often Shadows, because otherwise the images get unnatural for my sense.

But unfortunately I can’t apply your plugin to a selection of images. If I select some in filmstrip with “Autosync On”, the Auto of LR is applied, but the reset to your personalised settings are only applied to the highlighted one, I see in the loupe view.

What do I wrong? Thank you so much for your help!

I guess that the problem is Autosync. I never use it, but if I imagine how it works, yeah, you don’t want to use it with Personalized Auto Tone. Unfortunately, there’s no way for the plugin to detect whether you have Autosync on, so it can’t help you with that. —Jeffrey

— comment by Smarflow on June 3rd, 2018 at 3:12pm JST (3 months, 23 days ago) comment permalink

Hi Jeffery, I am trying to find a way to rebuild standard previews for iPhone videos now that Adobe has fixed the orientation bug in the 7.4 Classic CC release. While all the affected videos now play correctly in Loop the thumbnails are still upside down or sideways. I tried to use “Rebuild Standard Previews” in Lightroom but it simply states that all the previews are up to date.

So I was happy to see the “Delete Cached Previews for Selected Photos:” option for this plug-in. But this option is greyed out when I select a video. Is it possible to make this work for videos as well as images?

tks, louie

Good catch. I’ve just pushed out a new version of the plugin that allows this. —Jeffrey

— comment by Louie Sherwin on June 22nd, 2018 at 11:58pm JST (3 months, 4 days ago) comment permalink

Hi Jeffrey,
I have the following problem:
I get from the family a lot of whatsApp photos.
The only information on those images are in its name as in “WhatsApp Image 2018-04-19 at 15.32.55.jpeg”
My question is how to extract the date and time information from the file name, and place those in LR in the proper field ” Date Time Original”.
Can this be done with any of your plugins? Can this be done at all?
Since whatsApp if wildly used this will be a nice feature to add even knowing that those photos are a very low resolution, but I have a catalog just for that kind of family photos used to keep organized those images sent from the family and friends.
Let me know if you could help me on that.
Thanks

For whatever reason, Adobe doesn’t allow a plugin to update a photo’s date, so you’d have to stuff the date into the image prior to importing into Lightroom. One way to do that would be with the exiftool command-line tool, applying this command:

exiftool '-datetimeoriginal<${filename;s/\D+//}' WhatsApp*.jpeg

That should stuff the date found in the filename into a metadata field that Lightroom will recognize. —Jeffrey

— comment by Thales on August 5th, 2018 at 5:18am JST (1 month, 21 days ago) comment permalink

I find that auto exposure in the recent versions of Lr are to dark, to much on the left side. So to counter this (and keeping my workflow as light as possible) I use the native auto tone and then add 2/3 stops on exposure. The results are generally good. Since each photo as a different exposure, this methode does not work with presets. Could your tool be enhanced with a feature that does the same thing?

It’s a two-step process, but after Auto-Tone, you could use my Bulk Develop plugin to add the exposure. —Jeffrey

— comment by Tore Sætre on September 13th, 2018 at 3:29am JST (1 week, 6 days ago) comment permalink
Leave a comment...


All comments are invisible to others until Jeffrey approves them.

Please mention what part of the world you're writing from, if you don't mind. It's always interesting to see where people are visiting from.


You can use basic HTML; be sure to close tags properly.

Subscribe without commenting