Jeffrey’s “Export to Google Photos” Lightroom Plugin

Warning: this plugin is currently extremely limited, because Google's API is extremely limited.

NOTE: If you used this plugin prior to Sep 6, 2018, you must re-load the list of albums. Google changed how Google Photos refers to albums internally, so prior references held by the plugin are no longer valid. If you made Publish Collections, you must recreate them after refreshing the album list.

This plugin allows you to export images from Lightroom directly to Google Photos.

At this point, Google does allow the plugin to:

  1. create albums.
  2. upload photos and videos to those (and only those) albums.

In particular, Google does not allow this plugin to:

  • upload to any album not created by this plugin.
  • update any aspect of any photo or video at Google Photos.
  • delete or replace anything at Google Photos.

The inability to delete or replace precludes creating a Publish Service in Lightroom for Google Photos. As such, this plugin is currently an export-only plugin.

Logging In To Your Google Account

Giving the plugin permission to upload photos on your behalf to your own Google Photos account is currently a bit more complex than it needs to be, until Google verifies my app.

First, make sure you're logged into Google in your web browser, to the account you want the plugin to upload to.

Then, start the authentication process in the Export Dialog:

Clicking the Authenticate to Google Photos brings you to a scary-looking page at Google:

Clicking on Advanced opens up a bit more of the page:

And there you can see an oddly-worded Go to regex.info (unsafe) link. The regex.info is my blog website, but I don't know why they use it as the name here. It's where I host the privacy policy web page that Google requires (it's down below, on this very page). Weird.

In any case, clicking on that link finally brings the granting-of-permissions page:

Here, too, you see the odd use of my web site as the name of this app.

The list of permissions you see here seems to grant much more functionality than the plugin actually offers. The first one, View and manage your Google Photos library seems to be pretty much full access, you'd think.

The discrepancy between what we see here and what we actually get is mirrored in the API documentation (it's inconsistent and sometimes wrong). It also mirrors the communication I've seen from Google employees working on the project (it's inconsistent and sometimes wrong).

In any case, clicking Allow should send you back to Lightroom, and you'll be ready to create an album.

Selecting the Destination Album

As noted above, Google, for unknown reasons, allows the plugin to upload only to albums created by the plugin. However, Google doesn't let the plugin know which albums those are (and the plugin can't know because they could have been crated by you on a different machine, or with a different catalog), so the plugin must list all your albums.

If you try to upload to one not created by this plugin, Google will return an error only after the photo has been uploaded.

So, be sure to create an album with the plugin.

Here's what the Export dialog looks like:

I'm not privy to Google's plans for the API, but the takeaway from what I've learned so far is that Google has little interest in this API, so I don't expect it to expand in a meaningful way any time soon.


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.

Please see the FAQ and known issues before reporting bugs.

Availability

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

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

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

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

Privacy Policy

Google requires that I have a stated privacy policy, so here it is: I respect your privacy.

With one exception mentioned below, the plugin keeps all your Google data between you and Google, and it's never sent to me or anyone else unless you go out of your way to share it (e.g. by explicitly sending me plugin logs or an email). If you do choose to send me something, I respect your privacy.

The plugin stores your Google data mostly in the Lightroom catalog, and partially in Lightroom's preferences file. Data may appear in the plugin log file maintained by Lightroom on your system. The log file is cleared out each time Lightroom starts or the plugin is reloaded, and can be manually cleared via Lightroom's plugin manager.

The one exception mentioned above is that during the process of authenticating the plugin (giving it permission to upload photos on your behalf to your own Google account), technical limitations at Google require the process to momentarily pass through my web site's servers. The data in this step is used only in furthering Google's authentication process, and is neither logged on my server nor shared with anyone.

Unrelated to your photos or your personal data, the check for plugin updates process passes along anonymous system statistics: what version of the plugin is currently installed, what version of Lightroom is being used, and whether the plugin is being run on Windows or a Mac; no Google data is involved in this.

Version History
( Update Log via RSS )

20181110.7

I happened to notice that Google had sometime made a small (unannounced!) change to the API, and now suddenly videos that couldn't be uploaded before can be.

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.

20181017.6

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

20181015.5

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.

20181004.4

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

20180927.3

Allow the plugin to run in Lightroom 4. I'm not sure whether it'll work, but worth a try if you're still on Lr4.

20180912.2

Now list only albums created by the plugin, as those are the only ones that Google allows the plugin to upload to.

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.

Try to avoid having unexpectedly-long error messages create too-big a dialog.

20180607.1 Initial public release