Jeffrey’s “Smart-Collection Sync” Lightroom Plugin

This plugin, for the Adobe Lightroom Classic desktop application, is intended to effectively allow smart collections to be used with Lightroom CC (also known as Lightroom Mobile, LrMobile, or Lightroom in the Cloud), which is otherwise limited to normal (non-smart) collections.

With this plugin, you can, for example, effectively have an All Five-Star Photos album, or a Most-Recent Week's Photos album, etc., sourced from your Lightroom Classic catalog, synced to all your Lightroom CC cloud devices, all kept up to date automatically.

The plugin does its work by automatically creating a companion normal collection for each smart collection, and keeping that companion collection in sync with the smart collection. That companion collection can then be set to sync with Lightroom Mobile.

It's a bit kludgy, and requires a few minutes' of initial setup, but then it's hands free.

This plugin works in Adobe Lightroom Classic, and older versions as far back as Lightroom 6 (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.

Quick Overview

After the initial setup, things will just work automatically in the background: smart collections marked to sync to Lightroom CC will see the comparable Lightroom CC album kept up to date with the collection, with one caveat:

Important to remember: After adding a new smart collection to sync to Lightroom CC, you have to manually invoke File > Plugin Extras > Sync Now before the new smart collection is added to the automatically-kept up-to-date list.

I mention this near the top of this page because it might be easy to forget.

(There is, by the way, one other caveat to the automatic syncing, related to plugin registration.)

Video Tutorial

David Marx over at Focus Photo School has created a tutorial on how to set up the plugin for basic use.

By Way of Introduction
How I happen to use this plugin

The plugin can be configured to work with your Lightroom Library in a few different ways; by way of illustration, let me show you how I personally use it.

Consider this Collections pannel on the left side of the Library module:

There's a lot going on here, but the salient points to notice, other than the two groupings, are that smart collections are marked with the gear icon, and that collections synced to become albums in the cloud at Lightroom CC have the to the left of their name.

No collection can have both, of course, because Lightroom doesn't allow smart collections to be synched with Lightroom CC, the very restriction that this plugin aims to work around.

The Source Smart Collections

The five collections marked in red are the source for five albums that I want to appear on Lightroom CC. One of the five is a normal (non-smart) collection that syncs directly with Lightroom CC, so it has nothing to do with this plugin, but the other four are smart collections that sync indirectly via the companion collections (marked in green) created and maintained by this plugin.

The way I've configured the plugin, it knows that I want it to work with these four smart collections (and not other smart collections that may be in my catalog) because they are included within a set whose name ends in the (ugly) sequence <!>.

When I want to add a new album to Lightroom CC, I add a collection here, normal or smart, as suits my needs.

The Companion Normal Collections

The collections marked in green are the companion collections created and maintained by the plugin. The plugin maintains one collection in this sync work area set for every smart collection the plugin works with.

I never interact with these companion collections, except after the first time the plugin creates one; I have to mark the collection to be synched for inclusion in Lightroom CC. Other than that, I leave this collection set closed and hidden at the bottom of the collection list.

Keeping Things in Sync

The word sync can be a bit confusing in the context of this plugin because there are two kinds of sync going on. One is the work of Lightroom CC's cloud syncing that's always going on behind the scenes, to make changes in Lightroom Classic available on your mobile devices, and vicea-versa. The other is the work of this plugin, to keep the companion regular collections up to date with the source smart collections.

Each use of syncable on this page refers to the Lightroom CC cloud syncing, but almost every sync on this page is about the plugin's work. When this plugin brings the syncable non-smart companion collections up to date (to reflect any changes in the source non-syncable smart collections), Lightroom's built-in cloud syncing can then go to work behind the scenes to have any changes reflected in the various Lighrroom CC devices.

I can have the plugin do its sync (to bring the companion collections up to date with their source smart collections) at any time by manually invoking File > Plugin Extras > Sync Now.

But, I've also configured the plugin to do a check in the background every few minutes, so for the most part, I never have to think about it.

A Few Details...

So, now that you see the general idea, let me point out a few things....

I've organized the collections that I want in Lightroom CC into one set because that's how I like it, but you can organize them however you like. The collection-set name is actually @ Lightroom Mobile <!>, and that odd-looking punctuation at the start and end of the name is there for a specific reason.

The leading @ has nothing to do with the plugin, but merely acts to put the colleciton set at the top of the sorted-by-name list, where I like it.

However, the trailing <!> is there to tell the plugin handle any smart collections inside. I could add <!> to the end of any smart-collection name that I want the plugin to handle, but I personally find it cleaner to just mark one set this way, and add all the smart collections (and regular collections, for that matter) that I want to become Lightroom CC albums inside.

The marked-in-green sync work area collection set is one that I made myself, but I didn't make any of the collections inside. Rather, when I first set up the plugin, I told it to use it as a work area in which to create the syncable companion collections that it maintains for each smart collection I ask it to handle. It then dutifully made and filled the collections you see, and I then marked them for inclusion in Lightroom CC. After that, I don't need to pay any attention to sync work area and its contents, which is why I close it and invoke a plugin option that throws it to the very end of the collection list.

Configuration

All the plugin's configuration is done in the Plugin Manager.

The most-important setup is at the start, telling the plugin which of your smart collections it should work with, and where the companion collections should be created. First, which smart-collections it should work with:

The red circle marks the configuration for how you tell the plugin what smart collections to work with, via a special ending on collection names. The default ending is <!>, but you can choose whatever suffix works for you (-orig, SRC, ***, etc.)

The green circle marks the option to have the plugin deal with all smart collections inside a marked collection set. By default this is not turned on, but I have it on because I prefer to have all my Lightroom CC collections (smart or not) under one Lightroom Mobile set, so I just add <!> to that name and throw my smart collections inside.

If this option is not selected, then you must append <!> (or whatever suffix you've configured) to the name of each smart collection that you want the plugin to handle. If I were to use this option, my collection example would look like this:

Here, the four smart collections with <!> are each paired with its syncable companion collection (created by the plugin) immediately above it.

Personally, I don't care for this setup because I know that I'd be likely to forget that the plugin maintains the companion collections (or forget that a particular collection is a companion collection) and start adding and removing photos manually.

You might wonder why don't we have the smart collection be the one with the normal name, and add the ugly <!> to the companion collection name, thereby highlighting that we shouldn't interact with it, and the answer is that if we were to do that, the album names on our mobile devices would include the <!>, since the album names come from the collection that Lightroom CC actually syncs from.


Moving on, we have the configuration for where the plugin should place the companion collections it makes:

The default selection in this area is next to its source smart collection. We saw an example of this in the collection-list screenshot just above.

I, of course, use the other option, so this is where I've chosen that I want all the companion collections put into a collection set. I chose the name sync work area, but you can name the set anything you like; the name never appears on Lightroom CC. Since you never want to manually interact with the photos in a plugin-maintained companion collections, it might be prudent to name the set sync work area (don't touch!) to remind yourself.

When you first choose a set, you're offered the option to send the collection set to the bottom of the collection list shown in Library:

It does it by renaming the set to include an (almost-)invisible character that sorts alphabetically after z. The plugin doesn't care one way or the other what the set is named or where it sorts, so it's all up to you.

By the way, note that you can't use next to its source smart collection when you have the recursively include... option enabled, because that option allows the plugin to handle smart collections with names that don't include the <!>, and so both there would be nothing to differentiate the source smart collection from the plugin-created companion collection. Lightroom doesn't allow two collections with the same name, and even if it did, it'd be way too confusing.

Sync-Style Configuration

It'd be nice if the plugin could simply ensure that the source smart collections and the synced companion collections always matched, but the ability to add and delete photos on your mobile devices complicates matters, because those changes can't be reflected in smart collections due to their very nature.

If, for example, you have a smart collection built with the rule rating is 5 stars, but end up deleting a photo from the album in the Lightroom app on your phone, what should happen in Lightroom Classic? In this simple example you might be tempted to have the photo's metadata updated in a way so that it no longer matches the smart-collection rule — perhaps by deleting the star rating, or downgrade it to 4 stars — but what about complex smart-collection rules that involve a combination of dates, metadata, camera settings, and/or keywords?

There's just no good way to handle this automatically, which is almost certainly why Adobe punted on allowing smart collections to sync to Lightroom CC.

So, what should we do? The plugin offers two options:

Simple One-Way Sync

A simple one-way sync from smart collection to the companion collection (and therefor to Lightroom CC) is just a blind make Lightroom CC the same as the smart collection. If you make changes on your mobile device (if you add or remove photos from an album), the changes will be lost the next time the plugin does a sync and Lightroom's subsequent sync catches up.

If you never add nor subtract photos on your remote devices, this option ends up, practically speaking, the same as the next option, but this option is a little quicker to process. If you know you'll never make changes remotely, this option is a fine choice.

Complex Two-Way Sync

A complex two-way sync detects when you've added or removed photos remotely. However, since it can't actually make those changes in the smart collection, it informs you of the disconnect by putting the added or removed photos into specially-named collections alongside the smart collection, as illustrated here:

This is the result after I deleted one photo from Portfolio on my mobile device, and added two photos. After the a moment Lightroom did a sync and the changes were made to the plugin-controlled companion collection, and so when the plugin did its next sync, I noticed those changes, and that those changes impossible to rectify automatically.

So, the plugin made two extra Portfolio collections next to the source smart collection, one with at the end of the name to inform me of the remotely-deleted photo, and the other with 🔴 at the end of the name for the remotely-added photos.

At this point the plugin is done, and it's totally up to me if or how to respond to this information.

(Mostly-) Automatic Sync

As I noted before, you can have the plugin perform its sync via File > Plugin Extras > Sync Now, and as you might have surmised, you can also invoke it via the perform sync now buttons in the Plugin Manager.

You can also configure the plugin to do a (partial) sync in the background every so often:

Two important things to remember about the automatic sync:

  1. Automatic sync does not include newly-added smart collections. The automatic sync considers only the collections done during the last manually-invoked sync (via either the menu or the plugin-menu buttons), so after you add a new smart collection for the plugin to work with, invoke a sync manually.

    This restriction saves the drain on resources of searching through all the collections in your Lightroom library every few minutes, work that is actually needed only rarely, after you've added a smart collection.

  2. Unless the plugin is registered, automatic sync is disabled after the initial eight-week trial period has expired. This is how the donationware nagging (sorry) is manifest in this plugin. You can still use the plugin effectively without registering, but it's a little less convenient.


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 Lr10 to Lr11 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 )

20220125.19

Address an issue with a race condition upon startup.

20220120.18

Whack-a-mole with PayPal's random changes.

20211219.17

Warn when PayPal seems to have given a bogus code in the web-confirmation page.

20210610.16

Fixed (again, I hope) an error introduced with the debug logging.

20210223.15

Fixed (I hope) an error introduced with the debug logging.

20210210.14

Added some debug logging.

20210116.13

Still trying to get the workaround to work.

20210112.12

Fix to a bug in the previous workaround.

20210109.11

Attempt to work around the mysterious "attempt to index field 'SmartCollectionInTheAir' (a nil value)" error.

20201106.10

working around 'constant table overflow' error

20201017.9

Updates for Lr10.

20200924.8

Added some extra debug logging to track down a problem.

Work around a Windows bug related to canceling out of the registration dialog.

Added some extra debug logging to note whether the plugin is enabled.

20191127.7

Add extra debug logging.

20191104.6

Updates for Lr9 (Lightroom Classic CC Version 9).

20190708.5

Cleaned up some extraneous logging.

20190208.4

Fixed a display issue in the plugin manager.

20190129.3

Added some extra debug logging.

20181015.2

Updates for Lr8 (Lightroom Classic CC Version 8).

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

20171212.1 Initial release

All 6 comments so far, oldest first...

Hi Jeffrey,

I wanted to let you know the link for the David Marx tutorial video is invalid. You may want to update it to this. https://www.youtube.com/watch?v=Tn22fsgj0hg

Thanks much! —Jeffrey

— comment by Frank Doyle on May 16th, 2021 at 1:58pm JST (2 years, 10 months ago) comment permalink

Hello Jeffrey, your plug in always works like a dream, only since the last Lightroom update today I receive an error message “bad argument #3 to ‘?’ (no value)” and no sync happens, any idea how to fix as my full LR classic to LR mobile IPAD workflow is using your great smart sync 🙂

Thanks in advance & greetings from Paris

Bjoern

Oops, thanks, I’ve pushed out a new version that should work. —Jeffrey

— comment by Bjoern Hirsch on June 8th, 2021 at 10:54pm JST (2 years, 10 months ago) comment permalink

Hello Jeffrey, thanks for your very handy Lr plugin….it’s fantastic !! Unfortunatelly, i have this recurent message since the last Lr1 update:

“the version of the smart-collection sync plugin you have does not work in Lr11”

Any update soon ? thank you for your work and greetings from Canada

Olivier

The most-recent version works in Lr11; please upgrade. —Jeffrey

— comment by Olivier on December 1st, 2021 at 11:12pm JST (2 years, 4 months ago) comment permalink

Hello Jeffrey,

Thank you for your fabulous job but i would like to report a bug:

OS: MacOS Big Sur
Version: 11.6
Lightroom Classic version: 11.0.1
Smart-collection-sync-20210610.16

I have the returning message in LR11:
The version of the “Smart-collection sync” plugin you have does not work in Lr11

Thanks again for your troubleshoot and have a great day !

Olivier from Canada

Oh, that says it’s the most-recent version. Odd. Please send a plugin log. Thanks. —Jeffrey

— comment by Olivier on December 3rd, 2021 at 8:12am JST (2 years, 4 months ago) comment permalink

Helo Jeffrey,

I made a mistake on my last post:
the version of my plugin was older and i had to renew my subscription.
I was not able to download the latest version via google chrome (the *.lrplugin extension was missing in the dl folder) so I dl it via safari and all goes well.
Than you again for your help.

Olivier

— comment by Olivier on December 4th, 2021 at 8:44am JST (2 years, 4 months ago) comment permalink

Hi there – writing from Boston. I have enjoyed the plug-in for years – but since it has been years I have a ton of “syncable collections”. Is it possible to organize them into folders or if the collections are put into folders will they become unrecognizable? Also is there a plug-in that allows syncing folders into a standard collections – or is using smart collections the only way to update on the fly? Thanks.
I think you should be able to move the plugin-maintained syncable collections around as you like, though I must admit that it’s been some years since I wrote this (and I don’t actually use it myself), so it might be good to test it with a small collection just to be sure. About syncing folders to collections, I don’t know of anything that does that, sorry. —Jeffrey

— comment by Aman Patel on December 21st, 2021 at 8:10am JST (2 years, 3 months ago) comment permalink
Leave a comment...

See the known issues before reporting bugs. Also, when reporting bugs, please include the OS, the version number of Lightroom, and the version number of the plugin. PLEASE REPORT THE NAME AND FULL VERSION NUMBER OF THE PLUGIN WITH EVERY REPORT. Seriously. I need the full version number or I likely can't do anything but ignore the message.


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.

IMPORTANT:I'm mostly retired, so I don't check comments often anymore, sorry.


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

Subscribe without commenting