Jeffrey’s “Collection Publisher” Lightroom Plugin

This Lightroom “Publish” plugin allows you to export copies of your Lightroom photos to local disk in a folder hierarchy that mimics the collection hierarchy you build within Lightroom.

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

This is a sister plugin to my Folder Publisher plugin (which is similar to this plugin, except that plugin mirrors the images' folder hierarchy instead of a collection hierarchy).

Unlike a normal export, this Publish service allows you to create an ongoing relationship between the photo in Lightroom and the copy on disk. The tree on disk is refreshed for any changes (new images, removed images, and image changes) each time you “Publish”. I've found it very convenient to publish selected collections of portfolio images for my iPad.

Here's an overview of what it looks like in the Publishing Manager.. the areas marked in red are from this plugin (with the blue and green items being from other plugins that I happen to be using in this example):

The plugin is normally used in the following pattern:

  1. Initial setup of the publish service.
  2. Initial setup of the collection hierarchy within the publish service.
  3. Populate the collections with images.
  4. “Publish” them, causing copies of the images to be reflected into a hierarchy on disk matching the collection hierarchy in Lightroom.
  5. Going forward, any time changes are made (images updated, added, or removed), “Publish” causes those changes to be reflected on disk.

Publish-Service Setup

When setting up a new publish service, you first assign a name, though you can leave it blank if you'll only have one...

You indicate where published copies are to be placed by specifying the root of the publish tree. When first setting up a new publisher, you'll likely want to pick an empty folder as the root.

The next sections are all part of the standard Lightroom export. In them you decide the size and quality of the published copies...

The next two sections shown in the example aren't included unless you specifically add them:

They're from my crop for iPad and Metadata Wrangler plugins; I use them in my exports to allow me extra control of what metadata is included in each exported copy, and in the case of my iPad portfolio, special iPad-specific crops so that some images better fill the screen.

The next section controls what changes in Lightroom should cause published images to be slated for republish.

Then we have a plugin-specific seciton on file renaming that gives much more flexability than Lightroom's standard “File Naming” section, should you need it:

The next section provides a way to do an FTP sync of the published copies, should you need it. Photo-viewing iPad apps tend to allow updates via FTP sync, so this section is convenient for that.

It's here as a convenient tool rather than an actual part of the configuration; the FTP sync is never automatic... it happens only when you launch it manually from the Publishing Manager.

The plugin also provides a way to import and export settings, making it easier to set up comperable publish services on multiple catalogs (such as when part of your library is on your desktop, and part on your laptop, as is my case).

When first setting up a service, you'll have the ability to import settings...

... but once it's been set up the first time, after that the section allows for export:

Collection Setup

Once you've got the publish service created, its context menu (alt-clicking or right-clicking on it in the left hand side of Library) brings up a menu allowing you to create collections or “collection sets”, comperable to folders:

Unlike folders on disk (which can contain files in addition to other folders), Lightroom does not allow collection sets to contain images, so it's not exactly natural how to finally get files into a folder, but I've built two ways to do it. When you create a collection, you tell Lightroom whether images in that collection should go into their own subfolder, or whether they should be dropped into the sub folder where the collection sits in the first place:

If the “Collection Type” is “its own sub-folder”, the collection name (“Travel” in the example above) becomes a sub folder in the publish destination, and images in the collection are placed in the sub-folder.

However, when the collection type is “Part of its parent”, the name of the collection is not used by the publish system, instead dropping the images into the parent's folder.

Let's look at an example, two ways to put images into a “Japan” sub-folder within “Travel”:

  1. Invoke “Create Sub-Folder” named “Travel”, then within it create a collection named “Japan”, being sure to select “its own sub-folder”.

  2. Invoke “Create Sub-Folder” named “Travel”, then within it create another sub-folder named “Japan”, then within that create a collection, with any name, being sure to select “Part of its parent”.


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 Lr4 to Lr5, 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 )


If the root folder of the publish tree had a very long name, the view/change buttons would be pushed off the edge of the screen.


In the "Enhanced File Renaming" section, add the ability to override the extension on the exported filename.


In the POODLE-vunerability dialog, display a raw URL of a page on my site that discusses the issue, so that folks can be independently sure that the dialog is indeed from me and not malware.


Fix to the date_diff() function supported by the LUA template token.

Updated the camera-name code to try to guess the actual camera model of Hasselblad H5D files, since in their infinite wisdom Hasselblad decided to encode three distinct models with the same internal code, making it impossible to know for sure what camera produced a given image file.

20141219.61 Added a bit more debug-logging for when a file copy can't be done.
20141019.60 Windows Only: Add a one-time check for the POODLE security vulnerability, and alert the user if it exists.
20140923.59 Added the LrMD5, LrLocalization, LrSystemInfo, and LrMath packages to the {LUA} template token.
20140902.58 If the plugin failed to create such-and-such a folder because a file of the same name already exists, report the details to the user.
20140828.57 Extra debug logging to track down a folder-creating problem on some systems

Made the {GPSAltitude}, {Altitude}, and {GPSCoordinates} tokens subject to the geo-privacy settings like the other geo-related tokens.

20140731.55 Registration fix for Lr5.6
20140720.54 More Creative-Cloud support.

Fixed an issue with Creative-Cloud revalidation.


Lr5.5 and later Creative-Cloud installs can now revalidate themselves if needed.

20140710.51 Sigh, had a bug in the Creative-Cloud support.

Now supports Lr5.5+ Creative-Cloud Installs.

20140704.49 Sigh, introduced an error for some folks with the rebuild the other day.
20140630.48 Build-system update

Added date_diff() and raw_time_diff() functions to the special {LUA} token understood by the plugin.

20140612.46 Under some error conditions plugin would crash instead of presenting the proper error message.
20140514.45 Got rid of a "Done" confirmation dialog that's not really necessary.

Added new tokens to the template language the plugin understands: LrVersion, LrVersionMajor, LrVersionMinor, LrVersionRevision, LrVersionBuild, Location, CatalogName, CatalogPath, OperatingSystem, OS

Added new token filters: NS and LO

20140423.43 Fix a location-related template-token bug introduced in a recent build.

Fixed a bug in the "smoother revalidation" stuff recently added.


Enhancements to the FTP stuff: take care not to work with "." and ".." that some servers return.

Make the revalidation process smoother, especially for folks using Lr5.4 and later.

The {Empty} template token wasn't working properly.


Internally track whether exports are via the master image or via a smart preview. In the future this may allow for a "republish those for which a master is now available" feature.

Worked around a mysterious "attempt to get length of a nil value" bug.

20131213.39 Added {PublishCollectionName}, {PublishCollectionDepth}, and {PublishServiceTitle} tokens to the preset templates. See template-token web page for important restrictions.
20131102.38 Update for OS X Mavricks
20131010.37 Yikes, it seems that version 20130905.36 broke the "Metadata that Triggers Republish" section, clearing all items you might have had set (well, all but Caption). Sorry about that. Please visit the "Metadata that Triggers Republish" section to reconfigure to your liking.
20130926.36 Oops, fix a bug introduced in the previous update

Added a bunch of tokens to the preset templates supported: ExportFormat, ExportColorSpace, ExportBitDepth, ExportQuality, ExportSharpeningLevel, ExportSharpeningMedia, IpernityUrl, GoogleDriveUrl, and TumblrUrl.

The token-examples dialog had been broken. Also deprecated Folder and Path tokens in preference to FolderName and FolderPath tokens.


Work around a Lightroom bug concerning the determination of whether a photo is offline.


Respond more gracefully when enhanced file renaming can't come up with something valid.

Fixed the KW/KWE tables in template tokens; they had been broken when using load for the script.

Added an "Ask" option to the "Export with Smart Previews?" section, so one can be alerted to the situation at each export.

Made the file time control stuff (added in the previous update) optional, because it imparts a (small) performance penalty. The default is set to "off", so you'll need to re-enable it if you actually care about the file date/time stuff.


When "Format" is "ORIGINAL" (meaning to spit out the original image pixels with new metadata, instead of the developed version with new metadata), the plugin didn't handle XMP sidecars properly at all. Now it does.

You now have control over the file time of exported copies (set to the image capture time, or the time of export).

20130620.31 Allow published copies to remain on disk even if a photo is deleted from Lightroom.
20130613.30 Better support for plugin revalidation.
20130612.29 A failure for the plugin to copy a file on disk resulted in a plugin crash instead of the appropriate error message display.

Added the ability in Lr5 to export images even if the master image file is not available, so long as there's a smart preview available.

20130611.27 Yet another Lr5 update
20130610.26 Final update for Lr5
20130513.25 More changes for the root-selection problem... really seems to be a bug in Lightroom, but it's hard to tell because I can't replicate the bug myself.
20130501.24 Update for Lr5
20130412.23 Build system update.

More with with the code that handles changing the root of the publish tree.


Added support for some new template tokens: FlagStatus (requires Lr4.1 or later), and for Lr3 and later, a bunch of IPTC extended metadata: AdditionalModelInfo, CodeOfOrgShown, DigImageGUID, Event, ImageSupplierImageId, MinorModelAge, ModelAge, ModelReleaseID, ModelReleaseStatus, NameOfOrgShown, PersonShown, PlusVersion, PropertyReleaseID, PropertyReleaseStatus, and SourceType.

20130209.20 More build-system maintenance
20130206.19 Tweak for my registration system

The plugin wasn't robust against case-only changes in filenames or folders. This is a real pain because such names (e.g. "test" vs. "Test") appear different to the plugin, but they refer to the same underlying file on most filesystems for most users (because most Windows and OSX file systems have case-insensitive file naming). There's no easy way for the plugin to make such renames, so the plugin now reports that it won't work for existing files, and offers a chance to abort along with info on how to actually get it done: rename to something different (e.g. from "test" to "test2", then from "test2" to "Test").

While doing a rename, Lightroom pops up a "this may take a while; proceed?" dialog, and if the user canceled it, the plugin neglected to cancel the entire update, leaving things in an inconsistent state.

20121210.16 Added some extra debug logging.
20121024.15 Allow Video to be FTP'd as well.

Workaround for an "attempt to call field 'getProgressScope'" bug introduced in Lr4.2.

Disallow DPX video export because it breaks things.

Enhance the {EMPTY} template token so that it interrupts the squelching of superfluous joining characters.

20121004.13 Oops, hte file-extension thing got worse, not better... reverting that change.

Work around a "situation" (likely Lr bug) where exported video loses its file extension.

More debug logging for the elusive "no root folder" problem.


Updates to the environment in the {LUA} token (in the template tokens in my plugins) to include photoTime() and currentTime(), and other changes to match the updated docs at that link.


Added the ability to create dynamic destinations on disk via naming patterns using plugin templates. This is a pretty big change, so you may want to test carefully before using it wholesale.

Reduced the amount of debug logging done, unless the "debug logging" option is checked in the plugin manager.


Oops, I was moving the original XMP file (when the Publish format was "Original" instead of copying it. Fixed.

Update to handle the Mac App Store version of Lightroom.


Added the ability to move/reset the root folder. As a byproduct, this should allow the "choose a root folder" situation to be repaired.

In some crazy file-renaming situations, the plugin could get confused about the file extension.

Enhanced the send-log dialog to hopefully make reports more meaningful to me, yielding, I hope, the ability to respond more sensibly to more reports.

Added to the template tokens supported by the plugin: {FullMasterFile}, {FullMasterFolder}, {FullExportedFile}, and {FullExportedFolder}


When a new collection is created, require that the type be explicitly selected. This may help avoid screwups when one doesn't notice that there are different types to being with.

Update to handle 4.1RC

20120315.6 Add some extra debug logging to try to track down some network-folder errors.

Update to the debug logging to better track down timing issues that might arise.


Wasn't handling some kind of file-rename templates properly.

Now handles things much more gracefully when some files are offline when the publish is started.

Better support for video in Lr4.

20120217.3 Didn't handle XMP sidecars correctly when publishing original raw files.
20120217.2 Discovered why "metadata that triggers a republish" wasn't reliable, and fixed it.
20120213.1 Initial release, evolving from my earlier tree-publisher plugin, which dated back to the summer of 2010.

Comments so far....

Thank you Jeffrey!

— comment by Boris on February 14th, 2012 at 4:02pm JST (3 years, 3 months ago) comment permalink

Hi Jeffrey,

I think you swapped your description around between this and the folder publisher plugin. For this collection publisher it says:

This is a sister plugin to my Folder Publisher plugin, which does the same thing, except that it mirrors the images’ folder hierarchy instead of a collection hierarchy

which refers to the folder publisher and the folder publisher description refers to this one.

Thanks you for these plugins – they are great.

I think there was some ambiguity to the word “that”. I’ve rewritten that sentence to avoid the ambiguity. —Jeffrey

— comment by Alexey D. on February 16th, 2012 at 6:12pm JST (3 years, 3 months ago) comment permalink

Clarification please … in your “normally used in the following pattern” list you’ve got building the collections after setting up the publish service. Does this mean that I would be unable to use the Collection Publisher with an already-existing collection?

In my case, I have a set of nested collection sets and collections where I’m keeping track of the photos that will eventually go into a new botanical field guide. There are some 1300 images in the collection sets to date.

Also, are you aware of any way within Lightroom, or a plug-in, to organize web galleries in a similar fashion so that images are grouped as they are within collection sets?

Yes, the plugin does not work with other collections. Come to think of it, I should build a “migrate” tool so that you can easily move from old non-Publish collections to these ones. Lightroom doesn’t supply the tools to allow smart collections to be migrated that way, but non-smart ones should be easy. I’ll give it a shot. As for the web galleries grouped as they are in collection sets, I don’t know of any off hand. —Jeffrey

— comment by Mark Turner on February 18th, 2012 at 12:35pm JST (3 years, 3 months ago) comment permalink


I routinely create collection sets of my kids or family activities. Within these collection sets are collections organized by game #, or day, etc. If I understand the way this plugin works, if I want to duplicate an export of the collection hierarchy, I must duplicate the collection hierachy in an instance of the Collection publisher. Is that correct?

For example, I have a collection set Basketball, and within that set Game 1, Game 2, etc. If I want the export to duplicate that, I must create the same thing in the publisher.

Is there any difference, or advantage, in using Collection publisher vs. Folder publisher? Or, even Tree publisher?


Yes, you’re correct… you’d have to duplicate (or, more likely, transition) the non-Publish collections to the publish service. Had this plugin existed from day one, you would have just created the collections in it to begin with. The Folder Publisher is the same as the Collection Publisher except that one mimics the collection hierarchy on disk, while the other mimics Lightroom’s folder structure on disk. For any particular use in mind, one is an advantage and the other a disadvantage, though which is which depends on the use. My old Tree Publisher is no longer supported and offers a subset of features, so it’s at a complete disadvantage. —Jeffrey

— comment by Ken on February 19th, 2012 at 10:40am JST (3 years, 3 months ago) comment permalink


So to make sure I understand, I could just make my Collections in the Collection publisher instead of having them also in a collection set? But, if I also make Web galleries and put them in the original Collection set, I can’t put those in the publisher. Then, in this case I have collections related to the same event in two different places. I guess that can’t be avoided.


I don’t know anything about Web galleries (I don’t use the Web Module, and I suppose that’s what you’re talking about), but if you want to mirror instead of migrate, you can try putting smart collections in the publish service where the rules for inclusion reference membership in the non-publish collections. The problem, if I recall correctly, is that Lightroom smart-collection rules, aren’t necessarily specific enough, and perhaps depend on the collection names in question. It’s worth giving a try, though. —Jeffrey

— comment by Ken on February 20th, 2012 at 12:24am JST (3 years, 3 months ago) comment permalink

There are no words to describe the joy of working with your plugins, you – Genius! Thank you!

Tell me, whether you can upload via FTP the UPDATED files to the Photo Manager Pro? I do not succeed. Ftp loader stops loading when it tries to re-create an existing folder: (
Maybe I’m using the wrong plug-in for FTP downloads etc?

Forgive me for my English, I use a website translator

Use the FTP client built in to the collection publisher. I use it with Photo Manager Pro all the time. —Jeffrey

— comment by Newsky on February 20th, 2012 at 11:20pm JST (3 years, 3 months ago) comment permalink

Great stuff,

Would it be possible to move regular collections into the PubServ folders ?

It’s on the list, at least, to add support to copy regular collections over. But Lightroom doesn’t allow a plugin to see the rules for smart collections, so there’s not much I can do there. —Jeffrey

— comment by eli on March 5th, 2012 at 5:20pm JST (3 years, 3 months ago) comment permalink

I am probably dense, but I can’t get rid of the “Choose a root folder for the publish tree” error, even when I chose a folder, and no matter where I choose it.

I have win 7, 64bit, LR4.0. Lightroom modules are on c:[long path here], my media is on f:\[various folders]

No matter where I pick a folder with “Browse”, the error stays and I cannot save my settings. The edit box shows the folder I picked correctly.

ideas what I am doing wrong? Thanks

If you could send a log after running into this, I’d appreciate it. I’ve had the bug reported numerous times, but I’ve yet to get a log for it. —Jeffrey

— comment by dorfl68 on April 8th, 2012 at 11:19pm JST (3 years, 1 month ago) comment permalink

I had the same. I closed LR and opened it again, and as magic it worked.

— comment by eli on April 9th, 2012 at 12:18am JST (3 years, 1 month ago) comment permalink

I too found I couldn’t save the settings because of the “Choose a root folder for the publish tree” error until I exited and reentered LightRoom 4.

I also found I couldn’t set up the ftp “path on server” in the plugin configuration until I stopped and restarted the file server in PhotoManagerPro on my iPad2.


Writing from Kingston Ontario Canada

— comment by PAS on April 22nd, 2012 at 4:12am JST (3 years, 1 month ago) comment permalink

Hi Jeffrey,
Not sure how to send you a l0g of the “Can’t save until restart” bug. And unfortunately it disappears once LR4 has been restarted …
My config, FWIW LR 4, OS X Lion on a Mac Book Air

Cheers, and thanks, as always, for your great plugins.

I just pushed a version that should, hopefully, let you re-specify the root. —Jeffrey

— comment by Paul on April 28th, 2012 at 3:34am JST (3 years ago) comment permalink

Hi Jeff,

Longtime user of your plugins, great work! After a recent upgrade, not sure which one, I now get a series of popup progress dialogs whenever I start LR4.1RC1. The title of the progress dialogs is “Processing Updated Publish Criteria for info.regex.lightroom.export.collection-publisher”. Sometimes this takes a while before I can use LR as a series of these dialogs appear, go to 100% completion, and then close. Is this something that can be fixed?

Thanks, Dave

This is a bug in Lightroom that I think was fixed in 4.1RC2. It happens when you have more than one publish collection via the same plugin, but with different sets of will-mark-for-republish metadata. —Jeffrey

— comment by Dave on May 4th, 2012 at 11:44pm JST (3 years ago) comment permalink

Thanks Jeff! I switched to RC1 because I needed some of the bug fixes. Adobe forum discussions on RC2 had me scared to try it. I’ll live with the issue for now until a new RC or the final 4.1 release. Thanks for the followup.

— comment by Dave on May 8th, 2012 at 5:38am JST (3 years ago) comment permalink

I use a plugin from Rob Cole to copy standard collections and collection sets into Publish Collections. When I do so the collections do not get marked whether the collection type should be “Part of its parent” or “Its own sub-folder”. When published the plugin treats all such collections as “Part of its parent” and dumps all images into the root folder.

In order to change this I have to individually edit each collection and set the collection type as “Its own sub-folder”.

Ideally I would like to be able to choose the default collection type in the plugin manager, but the next best would be to be able to select multiple collections and change the collection type for all of them at once.


The problem with a fourth-party plugin like that is that it doesn’t set the plugin-specific internal data that might be needed (and, in this case, is). It’s really dangerous because it can create data skew that the plugin writer should never have to code for (because the plugin writer normally has complete control over how collections are built). I strongly recommend against using that kind of plugin unless you know it’s compatible; otherwise, all bets are off. I hope to add a collection-import function to the plugin, but with 30 plugins the todo list grows a bit faster than I can attend to it… —Jeffrey

— comment by Sean Phillips on May 15th, 2012 at 4:43am JST (3 years ago) comment permalink

Hi – I am looking for a plugin that automatically sends images to a folder based on the first 3 digits of the file name. For instance, we carry products from many vendors each with their unique 3-digit prefix. When I export from Lightroom, I name the file beginning with the vendor prefix then manually move the image into the corresponding vendor directory on one file server as well as a bulk image receptacle for archiving on a second server. I export about 1000 images per week and this would save a ton of time and hassle. Any ideas? Thanks!

If you can come up with a shell script to do the rename for you (a trivial matter on a Mac; I dunno about a PC), you can invoke it with my run-an-command plugin. —Jeffrey

— comment by Mike Elicson on May 18th, 2012 at 2:52am JST (3 years ago) comment permalink

Hi Jeffrey,

Thanks for this great plugin. However, one bit of it prevents me from using its full potential. As part of my workflow, I start new Lr catalog with personal pictures for every year. I have a collection set named “Albums” and below it — the hierarchy of collections with all worthwhile pictures I want to keep. My idea was to have this collection set configured once and then export it in any format I might need. For folder on a HD, for iPad, for printing, for a photoframe etc.

Your plugin seems to support this model perfectly, but. It requires that I create all my collections inside the publish service. And I cannot reuse it if I want to create several publish services. Is it possible to define a target collection set as part of publish service internal configuration? Just plain text box, so I can have a reference to one collection set from all my publish services?

Thanks a lot again for your great work!

Lightroom doesn’t allow for that, but you can simulate it by creating in this publish service a smart collection with a “member of collection” rule that points to your master collection. —Jeffrey

— comment by Aleco on May 21st, 2012 at 4:35pm JST (3 years ago) comment permalink

Jeffrey — found the problem I posted a few hours ago. If Max File Size is set to anything, then movies won’t export. A simple fix would be to ignore the Max File setting, just as it ignores the other photo compression settings.
BTW I love your photos! your new series uses light in a very very refined manner. Congratulations!

That seems to be an internal error in Lightroom 3. It seems to be fixed in Lightroom 4. (I wouldn’t expect Adobe to update Lr3 again.) —Jeffrey

— comment by Cris Conde on May 28th, 2012 at 5:05am JST (3 years ago) comment permalink

Is there a button that will republish all collections? Instead of doing them one at a time.


You’d think there would be, but no. However, you if you select all collections and click “Publish”, they’ll each go one by one. —Jeffrey

— comment by Doug Maffett on May 29th, 2012 at 11:51am JST (3 years ago) comment permalink


I am having a problem with the jf Collection Publisher.
I need to number my images so they will show up on the ipad on the order they were taken ( i organize a smart collection inside lightroom for each of the guests and then get these photos published ).

I go and publish the smart collections and everything is great. After that, when I add more files to the smart collection and click publish again the counter resets to zero.

Here is an example:

Jack has 2 photos


To republish and the ipad get the order they were taking i rename them when republishing to:


Plugin doest that for me beautifully but later, when i add another photo named


and hit publish again the plugin renames it


instead of


Any ideas how can I fix that?

Thank you

File naming is done by Lightroom using the naming template you provide, if any, unless you override with a plugin renaming template. None of the renaming systems provide for a way to carry a counter from one export to the next. In any case, the plugin will make sure that each image gets exported to a unique filename, so if you name them all the same, the plugin will ensure that none overlap, but if you want filenames that sort based on capture time, it’d be best to use the capture time in the filename. However, all of this will be for naught if the app you use to display images doesn’t honor the sort; the built-in “Photos” app does not honor any sort. —Jeffrey

— comment by DAVI SANTOS on July 7th, 2012 at 8:08pm JST (2 years, 11 months ago) comment permalink

Hi, hope everything is ok with the family and maybe you’ll get this when you get back.

This is related to the Plugin above, I’m looking for something similar.

I’ve found that Lightroom is unable to export multiple, nested or hierarchical collections as a catalog. It looks like (at least from my attempts) that it can oly export one single collection at a time. I run a massive archive through one catalog on my desktop with the folders stored on a Drobo.

What I’d love to be able to do is export only my working collections, in their original hierarchy structure, as a catalog, to use on an external drive, via my laptop, when travelling. I can export them all as single collections (takes a while) but there would be many duplicates, as the same file sometimes appears in many collections.

Hope that makes sense, I would gladly pay for such a plugin!


I’d just make a copy of the catalog (the *.lrcat file) and use that, but perhaps you can go the “export catalog” route by selecting all the images you want via the various collections, then switch to the all-photos grid view, then export-as-catalog? —Jeffrey

— comment by Nick on July 21st, 2012 at 9:35pm JST (2 years, 10 months ago) comment permalink

The function to change the root of a publish tree seems not to work. I can hit the change button, select a new root, but the plugin doesn’t seem to make the change.

Immediately after it seems not to work, please send a log along with a note describing the problem. —Jeffrey

— comment by Christopher on August 7th, 2012 at 1:12am JST (2 years, 10 months ago) comment permalink


It looks like the {LUA= if WIN then return “J:\ec\Exports\iPad” else return “/Volumes/NTFS-320-USB/ec/Exports/iPad” end } syntax is not allowed int the “Root of the publishing tree” … the plugin refuses to save the settings.

I’d like to use my catalog and all the setting on two computers: my windows desktop and my macbook pro.

The photos and the catalog is stored on an external drive.
Any idea ?

Thanks in advance
Etienne Charlier

Yeah, sorry, my token-template stuff is recognized only where explicitly stated. Sharing the same catalog across two separate OSs seems to me, in general, to be fraught with peril… I would not do it. I use Dropbox to share settings and presets for Lightroom between two computers of the same OS, but even with the same OS I don’t share the same catalog. (BTW, having the catalog itself on a slow drive will destroy any sense of performance.) Anyway, to answer your question, I don’t see a way to accomplish what you want with the publish-root setting, sorry. —Jeffrey

— comment by Etienne Charlier on August 25th, 2012 at 6:32am JST (2 years, 9 months ago) comment permalink

Posting from Livingston MT. Is there a way to preserve file structure within the Collection? When I publish the files are not in the same order as in the Collection. Re naming didn’t seem to work. Great plugins! Keep em coming. Recommend to all my LR friends.

File structure is the opposite tack from this plugin… see the folder-publisher plugin for that. As far as the order within a collection, that’s very difficult to deal with in a publish situation where files are coming and going and moving. The first time you publish they should be output in whatever order you have them in in grid, and if the filename is based on the order (e.g. with a sequence number) that should be properly reflected, but after that all bets are off. Once a filename is assigned to an image, the pairing is maintained at all costs, so it won’t change if you re-arrange images. Generally, trying to maintain an ordering within a collection will result in frustration. —Jeffrey

— comment by John Zumpano on September 3rd, 2012 at 1:11am JST (2 years, 9 months ago) comment permalink

I was having this same problem, after I read this statement and reloaded LR it worked correctly.

“I found I couldn’t save the settings because of the “Choose a root folder for the publish tree” error until I exited and reentered LightRoom 4.”

Thanks for all you do Jeffery

— comment by harley130 on September 17th, 2012 at 9:26am JST (2 years, 8 months ago) comment permalink

As suggested have ditched the ipad photo viewer. Now using PhotoManagerPro, pretty happy with the results.

The FTP publish from within the publisher works great. However I have a collection that includes some video but cannot get it to publish via FTP to the ipad. It appears in the output directory but does not appear to get FTP’ed across?

I don’t think I ever considered video… I’ll have to give it a try… —Jeffrey

— comment by scotta on September 20th, 2012 at 10:59pm JST (2 years, 8 months ago) comment permalink

Can’t get publisher to rename collection. Tried ‘Rename’ got your msg about cant do it there. Tried ‘Edit Smart Collection’, it changes the file folder name, but not the LR publisher name, gets error msg: “Can’t rename the published collection. An internal error has occured: ?:0: attempt to call field ‘getProgressScope’ (a nil value)” any suggestions? Thanks, George

I pushed a version of the plugin that works around that Lr4.2 bug a few hours ago… upgrade and you should be fine. —Jeffrey

— comment by George Kindt on October 9th, 2012 at 10:57pm JST (2 years, 7 months ago) comment permalink

Jeffery, how did you go with testing the FTP to work with video?

Sorry about the delay…. I just pushed a version that should allow it to work. —Jeffrey

— comment by Scotta on October 24th, 2012 at 1:32pm JST (2 years, 7 months ago) comment permalink

Hi Jeffrey,
I write to you from Versailles-France…;>)
I love your plugin and I’m presently recording a video to explain in French how to proceed and make good use of it and Photomanager Pro…
Could you tell me if you know of any Android Photo gallery application that would support FTP transfer like Photomanager pro or WidePhotoViewer.
Thanks a lot.

I’ve never used an Android device, so don’t know anything about them, sorry. —Jeffrey

— comment by Jean-Claude on November 18th, 2012 at 5:50pm JST (2 years, 6 months ago) comment permalink


If I import a publish service settings into another catalog do I need to uncheck “Delete remote files not in the local tree” under the FTP Sync tab?

Well, that depends on whether you want such files deleted. If the new service represents the exact set of files you want on the target FTP site, then yes; if not, no. —Jeffrey

— comment by Eric on December 3rd, 2012 at 2:19am JST (2 years, 6 months ago) comment permalink

BTW, I found a workaround regarding “maintain an ordering within a collection” – if you change Lightroom’s File Naming template, and republish all, lightroom renames all the files with the current order. I simply duplicated our preferred naming template (ie, CollectionPub01 and CollectionPub02) and just toggle between the two. It’s not pretty, but it works!

— comment by Chris Ogden on December 24th, 2012 at 1:51am JST (2 years, 5 months ago) comment permalink

Short Question – Ideas, Workflow or Tips?

I’ve heard the name, but that’s all… no idea what it is, sorry. —Jeffrey

— comment by OrinocoDelta on January 25th, 2013 at 9:19pm JST (2 years, 4 months ago) comment permalink

Jeffrey- can Zenfolio be used as an FTP site for the sync between a Mac Desktop and Photo Manger Pro. On the Zenfolio site they credit you as the author of their Lightroom to Zenfolio transfer plugin and I already have a registration for that plugin. Sure would make it convenient if Photo Manger Plus could access selective folders on the Zenfolio site.

You’d have to ask the folks at PMP to support interaction with Zenfolio. —Jeffrey

— comment by DaveB on February 14th, 2013 at 4:34am JST (2 years, 3 months ago) comment permalink

Hi…I’m still on LR2, and the current Collection Publisher plugin won’t work with that. I see in the version history that you did have a plugin at one time that worked with LR2, but is it still available to download? I’m not finding previous versions.


Lr2 has never supported any kind of Publish… that was introduced in Lr3. An upgrade to Lr4 is $80…. well worth it for the many improvements, of which Publish is a minor one. —Jeffrey

— comment by Robert on March 4th, 2013 at 4:24am JST (2 years, 3 months ago) comment permalink

I am assuming that choosing “original” for the upload image format will not upload any develop changes made within Lightroom. If that’s the case, would it be possible to have the option to also upload modified photos (jpeg) along with the original?

In Lightroom’s world, “Original” actually means “original pixels, with perhaps metadata updated within Lightroom” (which seems really odd to me, but they didn’t ask my opinion). To get what you want, you could set up two publish services that are identical except for “original” vs. “jpeg”. —Jeffrey

— comment by Tim on June 3rd, 2013 at 1:35am JST (2 years ago) comment permalink

Am using this plug in and started getting the following error:

error doing remote putFile(“/Volumes/Data/Pictures/Publisher iPad/Landscape_20130602_11817.mp4″, “Landscape_20130602_11817.mp4″): $$$/AgNetIO/Exceptions/UNKNOWN=an unknown error occurred

Sorry but I am at a loss

using latest LR4 under Max OSX 10.8.4

Publishing to iPad Photo Manager Pro

Lake Tahoe NV


That’s an error from Lightroom’s FTP system, being passed back to you by the plugin. Some error or other happened while sending the video over, but it’s not clear what. Maybe no space on the iPad? Maybe you’re on wireless and someone ran the microwave? Maybe the copy on your side is corrupt? It could be anything; the error message is frustratingly vague, but that’s how FTP tends to be. )-: —Jeffrey

— comment by Dan Kabat on June 13th, 2013 at 11:52pm JST (1 year, 11 months ago) comment permalink

Thank for this and your other great plugins, Jeff!

Here’s my situation: I have already invested in creating many nested non-published collections. My target device is a Digital Photo Frame (DPF). The only way to get images to it is an SD card or a USB drive.

So here’s what I’ve done: The target for the export is a directory on the SD card. To organize the images on the SD card, using your plug-in I first created a set of sub-folders, and in those I created sets of smart folders with rules so that they’d mirror my non-published collections’ contents.

These questions arise:
1) Is there an better organizing method to reflect my nested non-published collections (than the sub-folders containing collections)?
2) So that I could work without the SD card present, I wanted to make the target for the publish export a Windows 7 briefcase on my hard drive. I assume the briefcase would serve to sync the targeted folder on my hard drive with a folder on the SD card. However, when I tried to do that, I got that “Choose a root folder for the publish tree” error that others have mentioned above, so I published directly to the SD card. Is there any way to change the root folder now to a briefcase folder on my hard drive?
3) Is any enhancement in view that would enable copying non-published collections over to the publish services? You mentioned above that you might work on that.
4) Is there any enhancement in view that would mirror/copy whole nested trees of non-published collections to your plugin?

I’ve been thinking how to do a “mirror” thing… still no easy/natural solution presents itself. I don’t know what a “briefcase folder” is, but it seems easiest if you just export to a folder on your local disk (e.g. “DFP Pics”), then copy it to the SD card whenever you mount it. This is what I do for my iPad pics (though I use the plugin’s FTP feature to do the copy, the idea is the same). —Jeffrey

— comment by Julliette Carignan on June 20th, 2013 at 5:01am JST (1 year, 11 months ago) comment permalink

Hi Jeffrey,

first off, thanks for your great plug-ins. Without them, Lightroom would be much less useful for me.
I have a question regarding your Collection Publisher: Is there a difference in basic functionality to Lightroom’s built-in Hard Drive Publisher? Both allow me to nest collections, the structure of which I have to manually set up, in a folder on my HDD. Sure, yours has some additional features like FTP and more advanced file renaming, but basically it’s the same, isn’t it?

Best regards,

The concept is the same, sure, files exported to disk. But with mine you can go beyond manually setting up the folder structure, to also include a parametric folder structure via the template-based hierarchy naming. Among other things. —Jeffrey

— comment by Yaisog Bonegnasher on June 23rd, 2013 at 6:56pm JST (1 year, 11 months ago) comment permalink

Hi Jeffrey,

Many thanks for some great plug ins.

One task I am trying to do, so far unsuccessfully, is to publish JPGs of my catalogue with IPTC date and captions visible on the actual JPG image. Given other people look at my (family) photos using all kinds of viewers, many of which don’t show IPTC info and seemingly every one uses a different field for date :-) the only reliable way I have of providing this info is putting in a label at the bottom of the image.

I can partly do this using the slideshow function of LR but this doesn’t handle (re-)publishing and has very little flexibility (eg none of your preset templates). Do any of your plug-ins (or your plug ins together with others) provide a way that I can do this?

Many thanks


My plugins don’t, but this plugin does exactly what you want. —Jeffrey

— comment by John Whittington on July 8th, 2013 at 9:58am JST (1 year, 10 months ago) comment permalink

I have once again donated $25, which I don’t mind doing, to register your export to Zenfolio plug-in, as I work with an evaluation version of LR5, which I will soon buy (I very much like their return to the “Recovery” slider, among other things. However, I cannot figure out how to download and use some of your other plug-ins, which I’d like to try. More importantly, since I run LR on a PC as well (since this MBP is 1/3rd the speed), can I use the same PayPal number to register it on the PC.

Thanks for your kind gift(!) All my plugins are installed in the same way, so download and install as you have. Registration is related to the Lr serial number, so if you have the same Lr serial number on two computers, you can use the same registration code on them. And you can always generate new codes with $.01 transactions, if you like. As side note about the Recovery slider… that’s not newly returned in Lr5… that’s related to each image’s “process version”. The most modern process version (“2012″) does not have it, so you must be working with an image with an old process version. See here for more details. —Jeffrey

— comment by erich keser on July 17th, 2013 at 1:46pm JST (1 year, 10 months ago) comment permalink

Hi Jeffrey,

I’ve been trying to figure out a complex workflow for events. I have a watched folder that brings in images to the catalogue. Collection Publisher then uses already generated keywords and labels to bring them into their folders… this all works great.

The problem is on export of the collection. I want to be able to export a filtered selection of the photos not all the photos in the collection. You can filter in contact sheet window and it gives the appearance that this is what will happen, but when you hit export all the files from the collection export regardless of what is shown on the screen.


While in a publish collection, hold down the Option/Alt key and the [Publish] button becomes [Publish Selected], so that’s one way to control things. —Jeffrey

— comment by Russell on July 17th, 2013 at 5:40pm JST (1 year, 10 months ago) comment permalink

Other Plugins (jfFlickr etc.) Offer an option to create a develop snapshot. Could that feature be added to Collection Publisher?

That’s what my “Snapshot on Export” plugin is for. It offers more features than the built-in parts of my exporters. —Jeffrey

— comment by Cletus Lee on August 23rd, 2013 at 11:57pm JST (1 year, 9 months ago) comment permalink

Hi Jeffrey 😀

Things used to work but now something is probably wrong.

Before I used the Folder Publisher to put my images in a subfolder by referring to a LUA script name in the “Enhanced File renaming”. It worked great. Now I can’t seem to get that to work after upgrading from LR4 to LR5. So I decided to try out your Collection Publisher instead since it seems more fit to do the job. However I can’t get it to work using an external LUA script file name. It seems related to whenever i use {LUA= ….} in the text boxes. I have a smart collection related to the jf Collection Publisher and if I for example enter {LUA=return YYYY} in the “Sub folder is named as follows” text box LR stucks on “Updating published Collections”. If i just enter {YYYY} in the same text field it works.
Entering {LUA=return YYYY} is just for test purposes. What I really want to do is to make it run my external script by entering {LUA= return load(“D:/SkyDrive/LightRoom/FolderDestination.lua”)} but it will freeze on on “Updating published Collections”. Any ideas? Thanks

I’d think what you’re showing here should work. You don’t happen to have a long video in the collection, do you? They can take a long time for Lightroom to render. If not, perhaps after it gets stuck for a bit, send a log and I’ll take a look… —Jeffrey

— comment by Mikael on November 25th, 2013 at 9:39pm JST (1 year, 6 months ago) comment permalink

Back in February 2012 you said:

Come to think of it, I should build a “migrate” tool so that you can easily move from old non-Publish collections to these ones. Lightroom doesn’t supply the tools to allow smart collections to be migrated that way, but non-smart ones should be easy. I’ll give it a shot.

Any word on this?

There’s still no satisfying answer. I can have the plugin build a set of publish collections that matches the current state of normal collections, but there’s no easy way to keep them in sync from then on (unless they’re all smart collections, of course). —Jeffrey

— comment by Scott Frey on March 1st, 2014 at 5:20am JST (1 year, 3 months ago) comment permalink

Hi Jeffrey

I am currently publishing several thousands of images to a WebDAV drive on my PC. From time to time I am getting the following error – than the publisher stops but can be restarted.

Message: “Collection cannot be refreshed” German text “Sammlung kann nicht aktuakisiert werden”
“jf Folder Publisher”: size differs after move (c:\…. xxx.jpg, b:\… xxx.jpg): 1.093.985-> 0 bytes.

The WebDAV drive is permanently online. After restarting the publisher the transfer goes on. Looking if that particular file (xxx.jpg) is transferred I notice that it is a 0byte file on the server but it does not exist in the source directory! All other files in that directory have been transferred without problems.

I am confused now 😉

I’m also confused, but my expert opinion is that something has gone wrong. 😉

After Lightroom renders the temporary copy, it hands it off to the plugin, and in this case the plugin needs to move it over to the destination on the b: drive. The actual copy operation is performed by the operating system, but the plugin takes care not to trust it: it performs all kinds of sanity checks, and bails if anything seems less than perfect. So, in the end, the plugin doesn’t know why the copy failed, but at least it’s alerting you. —Jeffrey

— comment by Klaus on March 29th, 2014 at 5:15pm JST (1 year, 2 months ago) comment permalink

Hi Jeffrey, your plug-ins are very much appreciated – I just had a thought….
I have constructed a fairly large number of Smart Collections within Collection Publisher. Is there a way to see which Smart Collections need to be (re-)published ? I guess there is always the option to regularly re-publish all Smart Collections, but that seems a little inelegant. My Smart Collections contain some complex rule-sets and it’s not practical to figure out which collections will be affected by changes to the pictures. Many thanks from UK.

Unfortunately, Lightroom doesn’t offer anything here. The best I can suggest is to select all the collections in a service and [Publish] the whole group at once. —Jeffrey

— comment by Howard on April 8th, 2014 at 8:29am JST (1 year, 1 month ago) comment permalink

I use this to create a tree with photos I want to have on on my iPad – the plugin writes to my synced Google Drive folder. I was looking at the Mosaic application/plugin that works in a similary way (but with direct upload to Google Drive) – but I like yours better. However, one thing Mosaic has is an automatic Publish – it detects changes periodically and performs the sync automatically. Is that something you have thought of? I think that would be very convenient, especially when one have many collections set up that now needs to be checked and re-checked for changes to publish.

I don’t have any kind of automatic sweep for items that need to be published, sorry. If you have many collections, you can select them all and [Publish] and Lightroom will publish them one by one. —Jeffrey

— comment by Christer L on June 22nd, 2014 at 11:16pm JST (11 months ago) comment permalink

Hi Jeffrey, thanks for this really great plugin. I’ve read through the comments and saw that others also have my requirement: Publish an already EXISTING collection SET.
You mentioned something about solving this issue via a smart collection, but I did not succeed yet.

I’m not interested in sync or so, it is just to publish an existing collection set including collections including pictures – anyhow, without reediting collections within the publishing service.

Is there any new idea for solving that?

Thanks a lot!

If you just want to export an existing collection once, select all the photos and “File > Export”. Unfortunately, Lightroom doesn’t offer the ability to mirror a collection in Publish. )-: —Jeffrey

— comment by Oliver on June 23rd, 2014 at 12:12am JST (11 months ago) comment permalink

Hi Jeffrey,

I (with 90% support of a great apple forumer…) wrotte a script that “sync” my folders (exported with your plugins collection & folder) with iPhoto albums.

Currently, I have to launch the script manually after each export.

Would it be possible ( or is it already possible) to get an option in the export plugin that could launch an AppleScript at the end of the publish task?

If it makes sense for some of you, I’m pleased to share the link of the script. ( in progress)


Lot of thanks for your great job,


My run-any-command plugin should let you do this. —Jeffrey

— comment by Fabrice on August 9th, 2014 at 3:35am JST (9 months, 14 days ago) comment permalink

Hi Jeffrey,

Today I encountererd the following error using the collection plublisher plug-in:

crop-for-iPad#40 +729.4: [2D2E9DD8] @ Process line 371:
Error running jpegtran
log=”Access is denied.

status = 1

Any ideas as to where I have to look to solve this? I already checked all read & write access to the folder in question, but I do not see anything weird there.


— comment by Jos van der Woude on August 31st, 2014 at 11:45pm JST (8 months, 22 days ago) comment permalink

Hi Jeffrey,

Fixed the problem by moving the plug-in home folder to a real Windows folder instead of a samba share. Running jpegtrans from a samba share seems to be the problem.


— comment by Jos van der Woude on September 1st, 2014 at 12:05am JST (8 months, 22 days ago) comment permalink

I was having this problem, after I read and reloaded LR it worked correctly.

Thanks Jeffery

— comment by James Lascek on December 24th, 2014 at 2:11pm JST (4 months, 29 days ago) comment permalink

Jeffrey, I’m a huge fan of your products. While you track down the “move” error in jf Folder and jf Collection publisher, why don’t you change the error warning box so that it doesn’t require the user to press Enter … that way other publish runs could continue running as opposed to waiting for the user to press Enter.

Fundamentally the “move” error should not happen except in extraordinary cases (target disk full, target disk no longer present, etc.), so it makes no sense to try to continue in those situations. It’s possible for the error to come back for other reasons (perhaps unlucky timing somehow?), but as you mention in another comment elsewhere, it’s a huge can of worms to try to figure this stuff out, for little global benefit but some data-loss risk (and a lot of productivity risk on my part), so I’m inclined to leave it as it is, sorry. —Jeffrey

— comment by Cris on January 14th, 2015 at 1:31am JST (4 months, 9 days ago) comment permalink

Hi Jeffery,

Can you tell me where (on disk) the FTP Sync destination preset files are stored for the Collection Publisher? I’m running LR4 on Mountain Lion.

Thanks in advance,


They’re all handled by Lightroom (the FTP presets are a black box to the plugin). You should find them in your ~/Library/Application Support/Adobe/Lightroom/FTP Presets along side other folders for various kinds of presets. My system-info plugin will show you exactly, if you need. —Jeffrey

— comment by Michael Pollack on February 10th, 2015 at 5:18am JST (3 months, 13 days ago) comment permalink

Hi Jeffery,
Congrats and thank you for your great plugins set.

I have just found a problem with the Collection Publisher, once you have created the path initially there is no way to change it because the Lightroom Publishing Manager window does not allow you to go wider. So the “Publish Tree” button is not accesible (if) because the root is quite long…

Just let you know to see if can be fixed.

Thank you (and please excuse my english)

Good catch, thanks. Fixed. —Jeffrey

— comment by Luis on February 22nd, 2015 at 12:29am JST (3 months ago) comment permalink


I’ve just installed the standalone Lightroom 6 and downloaded the latest version of Collection publisher, installed it and restarted LR 6. But it says that the Nil plugin has not been installed.

Appreciate any help.

It sounds like a generic “corrupt plugin install” kind of thing… check out this faq —Jeffrey

— comment by Alan C on April 23rd, 2015 at 4:12am JST (1 month ago) comment permalink

I must admit I’m disappointed. The name “Collection publisher” and the first paragraph of the the page (“… that mimics the collection hierarchy you built within Lightroom”) is building false expectations.

Now that I searched the comments and reread the sparse examples (at least 3 times), I understand.

It is not mimicking the collection structure that I carefully built in the “Collections panel of LR. Instead, I’d have to recreate this same structure in plugin’s Publishing panel! Were’s the logic in that?

I understand that it’s a limitation of Lightroom, but I do believe that you should document this limitation clearly on top of this page! Tell the people what to expect and what not.

For me it’s too late; I’ve registered for a plugin which I cannot use – I guess I can mimic the folder structure, but I had registered that plugin already.


— comment by Peter on May 10th, 2015 at 10:24pm JST (1 week, 5 days ago) comment permalink

Hi Jeffrey

Just updated to Lightroom CC from Lightroom 5. Hoped I would just need to re register, but LR telling me the plugin isn’t compatible. I’ve downloaded the latest version but still no joy. Are there any plans to update the plug in or am I doing something wrong. Thanks.


Modern versions of my plugins work fine on LrCC… are you sure you pointed the Plugin Manager at the new copy? —Jeffrey

— comment by John W on May 14th, 2015 at 11:53pm JST (1 week, 1 day 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 the following tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Subscribe without commenting