Jeffrey’s “Export to ipernity” Lightroom Plugin

This plugin for Adobe Lightroom Classic allows you to export images from Lightroom directly to your ipernity account.

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

Please see the FAQ and known issues before reporting bugs.

It supports both Export and Publish.


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 )


Work around a bug in Lightroom 11.2 that causes publishing to get stuck. The workaround is to switch the view away from the collection being published. If the user does that switch manually, the bug goes away. This plugin update notices if the bug is being triggered, and if so, momentarily switches the view to the quick collection and back.

Removed a bunch of debug logging that was slowing down the LUA token.Newline


Work around a Lightroom "lua_gettop( L ) == 1" bug.


Added the WEEKNUM token, along with DAYNUM, weeknum, and daynum.

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


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

Fixed that the Province template token did not respect the plugin-specific geo-privacy settings.

Fixed an issue with the {Newline} token, and added {Comma}, {Hyphen}, and {Space} for good measure.

Fixed a problem with filters on the {Keyword} token.


Added 'separated by' to the People token.

Added the ImageViewDirection and ImageViewBearing tokens.

Reworked the Keywords token to better accept filters.


working around 'constant table overflow' error


Added the PF filter to turn typographic fractions into plain-ASCII fractions.


Updates for Lr10

Added the SpeedKnots token.

Worked around an "unknown key captureTime" error.

Added the {PlusCode} and {GeoHash} tokens.

Handle the "All Except Camera & Camera Raw Info" metadata option WRT geoprivacy.

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

Some of the filename-related tokens could be incorrect in rare situations.

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


Added the LensInfo template token.

Updated the Exposure token to allow customization.

More token work: added {Urls}, and updated {ISO} and {Copyright} to allow customization.

Added the {RelativeFolder} token.


Fixed the SST1 and SST2 tokens.


Updated the PublishCollectionName token (and CollectionNames and CollectionFullNames) to remove the MIRROR: prefix from the name that mirrored collections within my Collection Publisher plugin automatically get.


When not logged in, make it more clear what you're not logged into, and how to fix it.

Updated the alphabetical sort to be "sorta-smart alphabetical sort", whereby names that differ only by a number are sorted numerically. For example, "album2" properly falls between "album1" and "album3", but "album20" falls after. The former straight-up alphabetical sort put "album20" before "album3", which is ugly and unpractical.

Added the PEOPLE variable to the LUA token.

Fixed a problem with the SpeedKPH token.

Finally figured out the “Assertion failed: packed” error.

Added TempC and TempF to the template tokens that my plugins understand.

Added the TempC and TempF tokens.

Updated the keyword-related tokens to accept standard filters.

Work around a bug that sometimes causes plugins to be disabled when starting Lightroom via clicking on a catalog file.

Fix an "Unknown key: captureTime" crash.

Fix an "Unknown key: captureTime" crash.

Added the GPSCoords token.

Fixed a problem related to template tokens and photos without capture times.

Added functions uc(), ucFirst(), lc(), and lcFirst() to the LUA token.


Make the template-editing window a big bigger in the caption editor.


Updates for Lr8 (Lightroom Classic CC Version 8).

Added the special PP() function to the {LUA} token.

Added hierarchical options to the Keywords token.

Try to work around a Lightroom bug related to photo timezones and how Lightroom handles accessing plugin data.


Added the 'nicknames' modifier to the {People} token.

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

Sometimes Lightroom loses the "Visit At... " link for a publish collection; dig harder to come up with it anyway.

Input fields that accept a location can now handle a What3Words code and a Plus Code.

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

Added the IptcDateTaken token.

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

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

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

Updated the Keywords token, and added the KWf function to the {LUA} token.

Added the {NonSmartCollectionNames} and {NonSmartCollectionFullNames} tokens to the data templates that my plugins understand.

When encountering catalog corruption, present a better error message.

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


Oops, more Lr7 stuff.

20171019.41 -

Updates for Lr7.

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

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

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


Added the Newline template token.

Enhanced the FolderName token

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


Fix to get around a Mac display issue with Lr6 on OSX.

Added Russian-langauge support for the People-Support {People} tag.

Added the {FilenameNumber} token to the templates that my plugins understand.

Some updates to support Lr2. Lr2 is sufficiently old that I will drop support for it soon.

Added the following tokens to the templates that my plugins understand: FileModYYYY, FileModYY, FileModMM, FileModDD, FileModHH, FileModMIN, FileModSS, FileYYYY, FileYY, FileMM, FileDD, FileHH, FileMIN, FileSS.

Fix for Lightroom 2. Support for older versions of Lightroom will be stopped soon.

Got around a situation where Lighroom would crash duing an export of large images.

Better dialog real-estate managment for the meatadata section.

Fixed a bug with the keyword tables in the LUA token.

Added Weekday, Wday, weekday, and wday to the list of template tokens that my plugins understand.

Switch the log-sending mechanism to https.

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

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


Added ChildOf and DescendantOf filters to the {Keywords} and {KeywordsAll} template tokens that my plugins understand.

Fixed a bug with the 'edit saved credentials' dialog.

Fixed how custom {People} formatting works with people keywords that have no birthday associated with them.

Try to avoid yet another place where Lightroom gets hung because it can't handle certain kinds of dialogs at the same time.


Updated the Caption part of the dialog to show up to three lines of text, and the full text in the tooltip.

Updated Twitter support to better count lengths of tweets that include URLs.

Added {SpeedKPH} and {SpeedMPH} to the list of template tokens supported by my plugins.

The {People} token wasn't working properly for some keywords without a registered birthday.


Fixed the "SpecPeople:259: attemt to index al nil value" error.

Clicking on the example caption in the export dialog now brings up a dialog showing the whole example caption, which is useful to see the full thing when it contains multiple lines.

Fixed an assert-failure bug that could happen when editing a collection's settings.


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.

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.


If the remote site sends back garbage during the authorization handshake, properly report the error instead of crashing.

Added an "Export Location Override" section to the Publishing Manager dialog (when editing an existing publish service) that allows you to change the Export Location. I don't know why Adobe doesn't let you change it... it seems arbitrary.

Use a compressed view on the Plugin Extras dialog if the screen is not very tall.

Added extra logging to debug why Lightroom might fail to render for export.

20141019.33 Windows Only: Add a one-time check for the POODLE security vulnerability, and alert the user if it exists.
20141010.32 Better error reporting with the visit-collection item in Publish.
20140923.31 Added the LrMD5, LrLocalization, LrSystemInfo, and LrMath packages to the {LUA} template token.
20140922.30 When deleting from a publish collection, properly maintain the 'Uploaded to...' metadata field.
20140902.29 New build system

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

20140731.27 Registration fix for Lr5.6
20140720.26 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.23 Sigh, had a bug in the Creative-Cloud support.

Now supports Lr5.5+ Creative-Cloud Installs.

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

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


Plugin authentication to ipernity suddenly stopped working. I'm not sure what happened, but some fiddling around later and now it seems okay.

Add a note to the Keyword options to highlight that only exportable keywords are considered.


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


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


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

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

Fixed a sublocation-related bug in the new geo-privacy stuff.


Adapts to a change in how ipernity returns the list of albums.

Added a new "Location Privacy" section to the Exprt/Publish dialogs.

Updated the location-based tokens in the template language the plugin uses — City, State, Country, Location, Latitude, Longitude — to respect new privacy options in the Export/Publish dialogs, and in the resend-metadata dialog. You can override those options on a case-by-case basis with the evenIfPrivate filter.

Added locationIsPrivate variable to the environment available to the LUA token.


Enable a new feature internal to Lr5 for large exports that keeps the CPU from running too far ahead of the upload. Prior to this, Lightroom would go ahead and peg the CPU to pre-render all the images even if they weren't being uploaded at nearly the same speed. Now Lightroom pauses the behind-the-scenes rendering if it has gotten too far ahead of the upload.


Added a way to set the visibility at ipernity via the star rating.


Gave the Publishing Manager UI some attention on Windows.

Added the “:EMBED” token filter to the template language.

20130926.10 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.


Better handle very long user account names, so that the [Logout] button doesn't get cut off of the Export dialog.


Removed restrictions on what kind of image format can be uploaded... ipernity can handle most anything, and if not, well, then don't use that format. 🙂

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


Made big updates to the "Export with Smart Previews?" section; you can now pick to be asked whether to export via Smart Previews, and can differentiate between when the Smart Previews are "good enough" for an export and when they are not.

Added the ability to associate images (between Lightroom and at ipernity) manually, via "File > Plugin Extras > ipernity Extras".

20130722.4 Fix for the "can't delete: nil" bug.
20130721.3 More random fixes.
20130721.2 A republish didn't like it if the photo had been deleted at ipernity.
20130721.1 Initial public release.

All 11 comments so far, oldest first...


Thanks for producing this plugin. (donation sent! 🙂

I can setup a smart collection and publish OK.

What I can’t seem to do is associate my existing images at Ipernity with my LR catalog. Is there a logging function for the Ipernity Extras that I can activate. It whizzes through the albums and says
No Photos were populated.

The “Associate” feature is kludgy/fragile at best, but I haven’t yet given it my full attention… I wanted to get the plugin out. I’m traveling for the next month so may not get to it for a while, sorry. Like I said, I didn’t want to delay the whole plugin for that one side feature. —Jeffrey

— comment by Mike on July 23rd, 2013 at 6:07am JST (11 years ago) comment permalink

Played around with this new plugin.

During registration at ipernity i got a

…Hoppla! Der “frob” Parameter ist ungültig oder fehlt…

Message, which means the frob parameter is invalid or missing.

I’m using a german site of ipernity and LR 4.4.1



I’ve occasionally heard of this bug, but I don’t know what causes it. Trying again often fixes it, perhaps with a different browser. (Make sure you’re using the latest version of the plugin, of course.) If you continue to get the error, restart Lightorom then try one more time, then send the log and I’ll see whether I can figure it out. —Jeffrey

— comment by klaus on July 24th, 2013 at 5:00am JST (11 years ago) comment permalink

Thanks a lot for the plugin, much appreciated.

Would it be possible to add a “resend metadata” option, like the flickr plugin has?

It turns out that very few people use this plugin (I can, literally, count the registrations on two hands), so it’s unlikely I’ll spend resources developing it further. Sorry. —Jeffrey

— comment by TD on September 29th, 2013 at 7:38pm JST (10 years, 10 months ago) comment permalink

As one of the folks you can count on those two hands let me first say that I appreciate your effort in developing it because I use it regularly and find it invaluable.

Regarding the low usage I suspect that is a marketing problem with iPernity. They don’t do a lot of communication and when they announced it they didn’t say a thing about why it is useful or what it can do. They merely said it was available and gave a link to install it.

I bet that if they let people know what they are missing things would change.

— comment by Florida Guy on September 30th, 2013 at 11:36am JST (10 years, 10 months ago) comment permalink

Really, that few? Given the clamoring beforehand, that’s really disappointing.

— comment by TD on September 30th, 2013 at 4:03pm JST (10 years, 10 months ago) comment permalink


I’m also struggling with the recognition of existing pictures on my ipernity account. 9 of my 400 pictures are original JPG, all others are DNG within Lightroom. Matching by name or capture date does not work.

So I tried manual assignment, but this does not work either, because any entered URL must contain my ipernity userid. When entered the user id is replaced by my ipernity synonym and stored this way in the meta data. Synchronize will not work afterwards …

Well, you already replied that this feature is not robust. How can I help you to improve this plugin?

With kind regards

If you can email some example URLs and associated descriptions (e.g. what is an ipernity synonym?), that might help. —Jeffrey

— comment by Michael on October 16th, 2013 at 5:25am JST (10 years, 9 months ago) comment permalink

Hi Jeffrey,

I’m using your flickr publish plugin for some years and can’t think how to live without it! 🙂

But I’m thinking of moving to another service, and ipernity is one of my choices. As I’d like to use your plugin for ipernity I’m wondering about you support for that plugin in the future remembering your quote “It turns out that very few people use this plugin (I can, literally, count the registrations on two hands), so it’s unlikely I’ll spend resources developing it further.”

Can you recommend moving to ipernity relying on your plugin for thousands of photos?


If the plugin works for your needs, sure, but support is currently lacking, it will likely continue to lack for the foreseeable future. —Jeffrey

— comment by peter on October 20th, 2013 at 9:32pm JST (10 years, 9 months ago) comment permalink

Hello Jeff,

I download and install your module 2 weeks ago (donation sent) on my Lightroom 5.

The module was working great, but this morning (2013-10-25) he just stop. The only information I have is ”non register” I try to register back and I can’t. What to do…



I’m not sure what you’re reporting… perhaps send a log the next time it happens? —Jeffrey

— comment by Danyel on October 25th, 2013 at 11:20pm JST (10 years, 9 months ago) comment permalink


Thank you for developing this plugin! Video is always disabled when using this plugin, will support for video be added in the future?


Probably not… the way they implemented their API makes it really painful for large uploads, and video runs into that very quickly. —Jeffrey

— comment by Gustav on March 1st, 2014 at 5:31pm JST (10 years, 5 months ago) comment permalink

With Lightroom 5.5 registration with ipernity suddenly works!

I did this with version 20140606.18 of your plug-in. Registration with this version and Lightroom 5.4 had not worked.

I have now paid for the plug-in and updated to version 20140613.19.

Once again, thank you for your efforts!

— comment by Graeme Churchard on June 20th, 2014 at 12:05am JST (10 years, 1 month ago) comment permalink

Hi. Do you do an FTP plugin for Lightroom CC?

I’m sure it used to be built into older versions. Is this something you can help with?

thanks Jon

“Lightroom CC” doesn’t allow for plugins. If you mean “Lightroom Classic CC”, there’s an FTP plugin as a sample within the SDK download —Jeffrey

— comment by Jon Hobley on April 12th, 2019 at 3:19am JST (5 years, 3 months 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.

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