Lightroom 2 Zenphoto Publishing Service v1.5.1 + SRC

Leider ist der Eintrag nur auf Amerikanisches Englisch verfügbar. Der Inhalt wird unten in einer verfügbaren Sprache angezeigt. Klicken Sie auf den Link, um die aktuelle Sprache zu ändern.

Today I like to introduce a new plug-in for Lightroom 3. „Lightroom 2 Zenphoto“ is – like the name  already says – a Lightroom 3 publishing service. The service gives you the possibility to sync Lightroom with your Zenphoto installation – but in an intelligent and very easy to use way…

The new publishing service feature of Lightroom gives you the possibility to monitor and manage exported images on different web services. Whenever you make changes on published photos (e.g. change the image settings or some of the metadata in Lightroom), these photos will be monitored and marked, automatically. You can now republish all these photos with a single click.

Furthermore, whenever you add or remove photos from your published collections, they will be added or removed to your web server the next time you press the Lightroom „Publish“ button. Please read the Lightroom 3 documentation for the full story…

How does the service work?

After you have installed the service via the Lightroom „Plug-in Manager“, you have to enter the host of your Zenphoto installation. In the next step press the login button and enter your username and the password. You must be a Zenphoto administrator to be able to login. All other Zenphoto accounts are not allowed to access the web service.

After you successfully logged-in you can sync with your already uploaded images. When pressing the „Sync Album“ or the „Sync Photos“ button, all Zenphoto albums will be read and created as collections as part of the „Lightroom 2 Zenphoto“ service. Therefore the plug-in will connect to the web server and will gather information of your already uploaded albums and images (e.g. the album name, the filename and the URL).

This information is used to to find the images within your current active catalog. If an image was found, it will be assigned to the corresponding collection of the „Lightroom 2 Zenphoto“ service.

Finally, you will get an infobox showing you the images which were not found in your current catalog but are available in your Zenphoto installation.

Once you have synced with your Zenphoto installation you can assign any image you like to an album (or – in Lightroom terminology – collection). When you now change any metadata of published images, these images will be automatically marked to be republished the next time you push the „Publish“ button.

Please see the Lightroom 3 documentation for details on how it works.


The installation is very simple. The download comes as a ZIP-file which contains two directories:

  • ZenphotoPublisher.lrplugin – is the Lightroom plug-in which must be installed from the Lightroom Plugin Manager
  • zp-lightroom – the web service which makes the interaction between Lightroom an Zenphoto possible. Please copy this directory as it is into the root path of your Zenphoto installation. All communication between Lightroom and Zenphoto is done via XML-calls:
    • – 3rd party PHP class to handle XML client/server communication (this class is also used e.g. by WordPress)
    • xmlprc.php – contains functions to access the Zenphoto-API, e.g. to read data and make any changes. The service will not write to the database via SQL. Any changes are made via Zenphoto-API calls. So it should be save in any way! Nevertheless, there are some SQL-statements used to get images and albums based on their stored database ID. Unfortunately, Zenphoto offers only the possibility to get this ID, e.g. via „getAlbumID“, but offers no function to get an album or image by its ID 🙁
    • xmlrpc_upload.php – receives multipart POST messages and stores the image. The received images will be temporarily saved in the ‘zp-lightroom’ directory. So please make sure that sufficient write permissions are available.


zp-lightroom directory to your root path of your Zenphoto installation. Furthermore you need to install the ZenphotoPublisher.lrplugin via the Lightroom’s Plug-in Manager. When you have done this and you’ll have activated the plug-in you’ll need to do some configuration steps to connect with your server:

now have still problems then check the owner and the permissions of the photos that you want publish. In other words: you must be the owner of a photo that you want publish to the server. This problem can happen when you want “overwrite” an already existing photo on the server which has a different owner or not sufficient permissions.

I get the message ‘Unable to upload photo …’

See the point above. If you still have problems, then please try to change the “Upload method” to “XML data”.

My filenames contain an apostrophe and I cannot publish any photos

Please change the “Upload method” to “XML data”. Until now I couldn’t find any way to cast an apostrophe for the Multipart-POST, but “XML data” is working.

Download „ZenPhoto Publisher“

1.5.1 + SRC
Lightroom 3
22.1 kB



  • many users have reported huge problems with the version 1.5. Unfortunately until now I couldn’d find the reason why the plugin isn’t working on these systems but on my one – I love computers! 🙁 Until I have found the error I have decided do “downgrade” the plugin and have removed the code which seems to make trouble. This release contains now all bug fixes and changes of v1.5 but does not support multiple instances of the publish service anymore. Sorry for any inconveniences!


  • new: it is now possible to have multiple instances of the publish service. This might be interesting for people which have more than one Zenphoto installation. To make this possible several major code changes were necessary. So you will need to remove any old plugin versions and initialize all configuration again (sorry, but there is no other way…)
  • changed: the communication from the publishing service to the server is now XML based, too. This prevents some errors which could occur when using special HTML characters
  • several “small” bug fixes
  • blog: created a small F.A.Q. (see above) and updated the screenshoots


  • fixed: in some server configurations it could happen that a “PHP Warning: Cannot modify header information…” exception was fired. This release is fixing this issue. (thanks to wolfich for the hint and support)


  • new: watermarking, sharpening etc. was re-enabled (due to an user request)
  • fixed: the sync functionality was fixed for files with similar names. In the past it happened that a file on a server e.g. with the name “2010-01-02-0100.jpg” was matched to a file in LR e.g. “2010-01-02-0100a.dng”. This happened because I searched for filenames without the filetype extention but also without the trailing “.” and “2010-01-02-0100” is a substring of “2010-01-02-0100a” – which is a wrong match. This is fixed now and working. (thanks to Pekka for the hint)


  • new: added the ability to choose the upload method. Usualy, the image files will be trasmitted via HTTP MultiPost.This requires that the “zp-lightroom” folder on the server has write permissions. But but some users will not be able to set this folder to write enabaled. In this case you can select not the upload method from the Publishing Manager dialog. Via a selection menu you can select “HTTP MultiPost” or “XML file” upload method. If you choose the XML method the image file is converted to a base64 string and will be submitted as a part of the XML. Please note, that this kind of upload takes much longer and needs more resourses because the file needs to be converted and trasmitted as a normal string. Furthermore and depending on your webserver configuration a memory allocation error can happen on your server when uploading large files (in this case no special exception handling is possible so you will only get an unspecific error message). I recommend the XML upload only if HTTP MultiPost is not working at all.


  • changed: the plug-in checkes now the Zenphoto version. If the version is lower than 1.3 a message appears and a login is not possible.fixed: when using album names with special characters (like: ä,ü etc.) an error “ZenphotoExportServiceProvider.lua:426” happend. This is fixed now. (thanks to Pekka)
  • fixed: the links in Lightroom to the albums and images in ‚Show album on Zenphoto” were wrong, when Zenphoto was running in a sub-folder of the webserver. This is fixed now and Zenphoto can run in the root or in any sub-folder with correct Lightroom links. (thanks to Pekka)
  • fixed: a bug that happened when trying to sync with only one Zenphoto album was fixed


  • fixed: removed the sync function from the Publishing Manager (many users had problems). Please use now the sync function from the “Maintenance” collection, only. Simply, right click on the “Maintenance” node and select “Edit album…”. Choose now your operation from the opened dialog.


  • new: delete “not found images”. When initially syncing the images from your server it might happen that there are images on the server but not in your catalog. You are now able to remove these images from your server. Open the album management dialog via the “Edit album” context menu item and press the “Delete –not found-“ button.
  • change: when making a sync over all abums and images the “not found images” are now assigned to each collection in Lightroom. So you don’t need to do a sync on each collection to find out which photos are not available in your current catalog. Just open the album management dialog via “Edit album” context menu item and press the “Show –not found-” button.
  • change: some internal API changes


  • new: the album description field accepts now HTML code, too
  • changed: login is enabled when a service has been created. How to use? Enter a name for your service and press the “Save” button. Then open the Publishing dialog again and login.
  • improved error handling
  • bug: fixed a bug in web service that occured when a database entry without a corresponding album folder exists


  • new: upload method of images has been changed from base64 coded XML to HTTP multipart. This makes the upload process faster and enables the handling of larger files without web server memory problems. Only the image upload process uses this multipart method. The data communication itselfs is untouched and XML-based.
  • new: new file ‘xmlrpc_upload.php’ in the web service receives the photo and save it to the current path
  • change: the value for the web service directory within the Publishing Manager now expects the directory and NOT anymore the path with the xmlrpc.php file. Please ensure that you changed your configuration!
  • some minor GUI changes
  • some little bug fixes and code optimizations


  • data exchange via base64 coded values. This allows a better handling of special HTML characters, like quotes
  • redesigned creation and edit dialog to be able to handle some general album facilities
  • major stability improvements
  • rewritten PHP functions


  • ignore dynamic albums when importing from server
  • simplified and more stable album and sub-album management (edit/rename/move)
  • more secure album delete functionality – you can now choose whether the selected collection (album) shall be removed from the server and from the ZenphotoPublisher service or if the collection shall be removed from the ZenphotoPublisher service, only
  • ability to save image list of not found images after a server sync
  • Lightroom “rename” function is now working
  • further stability improvements
  • some minor GUI changes


  • Zenphoto sub-album handling
  • major stability improvements and exception handling
  • some minor GUI changes


  • Unfortunately, I’ve uploaded an old version with non working functions yesterday. This is a bug fixed and hopefully working version now.


  • initial release

Bugs & Limitations

  • Due to a bug in Lightroom, the Zenphoto sub-albums are not yet fully supported
  • Lightroom crashed sometimes when using the Sync buttons from inside the Publishing Manager. This seems to happen under Vista only, and is already announced as a bug to Adobe. I never have experienced catalog damages – but nevertheless: use it on your own risk. If you afraid problems then make use of the sync buttons from withing the “Maintenance” collection. This works in any case!
  • ATTENTION: do never ever make an album part of itself or of an containing sub-album. Usually, there should be fired an exception by Zenphoto, but it doesn’t happen… 🙁

185 Antworten zu “Lightroom 2 Zenphoto Publishing Service v1.5.1 + SRC”

  1. Actually I made a branch on Github the supports LightRoom 5

    Check it out … thanks to LARS for the code.

  2. Compizfox sagt:


    First off all, this looks like a nice plugin.

    But is it supposed to work with LR4.1? I’m using LR4.1 and I can’t get it to work. When I try to login it does nothing. When I save my settings anyway and try to edit the album, it say I’m not logged in.
    When I try to edit the settings after that, I get an „Internal error“.

  3. Loki sagt:


    There is now a google code repository of the code available at – anyone who wants to help me work on it, I’ll add to the project (or they can of course work on it by themselves).
    Would it be possible for you to choose an existing open source license for the code you’ve released to us? Since you want it to be perpetually free, I’d suggest the GPL.


  4. Lars sagt:

    Dear friends,

    unfortunately, I don’t really have time to continue the development of this plugin on a regular base. So I have decided to make the source code free available and hope that somebody of you is willing to continue.

    In any case: let this tool freeware in future and don’t remove any links and references to my site 😉


  5. Loki sagt:

    awesome! it it’s easier (it would be for me), feel free to use my email address to contact me.

  6. Loki sagt:


    As soon as I see the source available, I’ll start hacking at it. I’m also more than willing to manage throwing it into source code control, and setting up the project. I manage quite a few open source projects on bitbucket and google code right now, so one more wouldn’t be an issue.

    Of course, if you are willing to set up the repository yourself, please do so and give us the link!

  7. Lars sagt:

    Dear Friends,

    I’m very sorry that there is not update available until now. The major reason is, that I have changed my job and had/have no time to make a new (fixed) version, availabale.

    For this reason I have decided to make the source code available very soon. I have planned to make the source code available during the second weekend in June (when I come back to Berlin the next time). I hope that there is somebody out there to bring the plugin to its next stage.

    Thanks to all of your comments and greets,

  8. David sagt:

    very nice idea, this plugin! But i dont get it workin.
    i get an internal error trying to update to my site: ZenphotoAPI.lua: 100: bad argument #1 to ‚pairs‘ (table expected, got nil)
    Any idea?

  9. tony sagt:

    I follow the above instructions, I enter the URL and the relative path, but the login button does not appear, it is only an unactive button outline.
    If I save without a login and the try using the zen publisher I get a reqest to login and the publishing manager stats „the plug-in had an internal error“
    I find this in the error logs:
    An error occurred while attempting to load this plug-in’s portion of the Export dialog.
    ZenphotoPublishSupport.lua:123: canceled

    I really hope you can help me your publisher would be a great feature for me.
    I use windows 7, 64bit.
    Kind regards,

  10. G.M.P sagt:

    Are you planing to make any update to work with zenphoto 1.4.x or we must acept that this is over .

    Thx for info

  11. G.M.P sagt:

    Hy , Im late using this plug , anyway looks grate .

    Are you planing any update for zenphoto 1.4.x , or just we must

    about this project.

    THx for info

  12. Kevin sagt:

    Lars last comment fixed problem for ZP 1.4, thanks Lars

  13. […] “Publish” button. Please read the Lightroom 3 documentation for the full story….read more Share| ZenPhoto Lightroom 2 Zenphoto, […]

  14. Loki sagt:


    That simple change seems to make it work with LR3.3 and ZP1.4 – thanks a ton!

  15. Loki sagt:

    At this point, it has a few major issues I’d like to see fixed (and I’d be willing to work on).
    – It isn’t compatible with LR 3.3 – this is a major issues, since the newest revs of some of the other plugins I use now require LR 3.3
    – It seems to have some small issues with ZP 1.4, which includes security updates, so is important.
    – Since LR 3.3 seems to fix the child album issue, adding child albums should be possible now

  16. Gokul sagt:

    I would really appreciate if you could update the plug-in for the new versions.
    Or else, as people have suggested please consider making this an open source project and move it to sourceforge or somewhere..

    Thank you,

    • Lars sagt:

      @all: hello everybody. it is now a long time ago that I have updated the plugin. Unfortuntaely, the last months were too busy to work further on this plugin. But I promise that the development continues! As far as I can see this now, I will be able to work on the plugin again at the end of March. Until then I would please all of you to be patient.

      There is a very small (but untested) fix for Zenphoto 1.4:
      – open the „xmlrpc.php“ file from the „zp-lightroom“ folder in an editor of your choise
      – locate the function „authorize“ (line 125)
      – change the „if-statement“ from „preg_match(‚#^1.3#’…“ to „preg_match(‚#^1.4#’…“
      – then the plugin should work with Zenphoto 1.4, too

  17. Jason sagt:

    Hmm.. Seems like Lars isn’t around right now… Last post from him was last November. Sigh.

    Noticed that ZenPhoto upreved to 1.4.x now, If you’re back Lars, any chance of updating to use with 1.4? Just curious.

    Or, as Loki asks, any chance on getting a few other people approved to help fix these things? Maybe putting together a group of people to help you, if you don’t have time?


  18. Loki sagt:

    Seems to be some incompatibilities with LR3.3 – any plans on updating this (or releasing source so others can fix it)?

  19. thierry sagt:

    Seems not to work with zenphoto v.1.4, got a fault message

  20. patm sagt:

    if I try to setup a second publishing service for a second site/gallery it retains the first one credentials, if I try to publish something the plugin crashes.

    everything will be ok if I remove the second publishing service.

    there’s a way to fix it?


  21. mungler sagt:

    It complains that it ZenPhoto is 1.4 but it requires 1.3.X – is there an updated version?

  22. Thanks for an awesome plugin. You have made my workflow so much quicker. Much appreciated!


  23. Shepy sagt:

    Absolutely awesome Lightroom plugin, makes keeping the Zen gallery up to date with smart collections an absolute walk in the park.

    One small suggestion though, is that there seems to be no hierarchy in the album names as they display within Lightroom, so I have

    Parent Folder 1
    Parent Folder 2
    Parent Folder 3
    Child Folder 1
    Child Folder 2
    Child Folder 3
    Child Folder 4

    Where as it would be awesome if it showed:

    Parent Folder 1
    –Child Folder 1
    Parent Folder 2
    –Child Folder 2
    Parent Folder 3
    –Child Folder 3
    –Child Folder 4

    And was toggle enabled / collapsible so i can filter out those albums im not working with at present (much like how the Folders pane works)

    is this perhaps something that is planned for the future?



  24. Jo sagt:

    OK, so I’ve worked out the uploading. What about descriptions? How can I have this field pre-populated in Lighroom so it imports direcly into Zenphoto?

  25. Jo sagt:

    Hi, nice plug in. I was wondering though …

    – How to upload directly from Lightroom 3.3 without first having to export and upload via Zen site;

    – How to have keywords export with the images. Afterall, it’s part of metadata and presumably that’s what the search function looks for?

    Thanks in advance for your advice,

  26. Philippe sagt:

    Continuing from what I said before:
    „… the published status is not updated in Lightroom: new added photos are set to be published, deleted ones are set to be deleted but photos set to be republished still have that status right after publishing, even the newly published ones are to be republished.“

    It seems weird but here is the solution found on Adobe LR3 forum:
    this is not a problem due to the publishing service but rather a bug in LR3.2.

    The problem is related to keywords (I said it was weird), actually to multi-level keywords. If the top level keyword is set to ‚do not export‘, the published status of the photo won’t be updated to ‚published‘. So you need to set the top level keyword to be exported. But what to do if you don’t want that keyword to be exported?

    Just take this example to be clearer: my photo of Time Square is keyworded this way:
    Countries > USA > New York > Time Square (hierarchy: parent > child)
    As it doesn’t seem relevant to me, the top level keyword ‚countries‘ is set to ‚do not export‘. This way, the ‚published‘ status of the photo is not updated.
    The workaround is to set the ‚countries‘ keyword to be exported AND to setup the next sub-level keyword, ‚USA‘ is that example, to not export the parent keyword.
    In both settings, the keywords exported are ‚USA > New York > Time Square‘ but in the second case, the published status IS updated.

    So, with:
    ‚countries (don’t export) > USA (export) > New York (export) > Time Square (export)‘
    you have the problem, and with:
    ‚countries (export) > USA (don’t export parent) > New York (export) > Time Square (export)‘
    all is fine.

    I hope having being clear enough to help anybody with the same problem.
    Enjoy the worderful ‚Lightroom2zenphoto‘ publishing service 😉

  27. Thanks for your nice work.

    I have however some issues : it seems that you use the file name to initially match the image at the first synchronisation.
    Since I keep my camera numbering (IMG_9999), and have more than 80.000 images in my catalog, the program does not identify correctly the source image.

    Have you a way of pointing it to the right picture ?

    Thanks !

  28. Jukka sagt:


    sync button crashes LR even with W7 …. 🙁

    and I dont get this publish service work to zenphoto properly anyhow… 🙁 same images are seen in the gallery, but same not…

    Nice try though, I’ll look forward to seeing it develop… Wish you luck with project.

    cheers Jukka

  29. rossen sagt:

    I was able to create new albums and sync them with the zenphoto server. However, when I try to publish images from Lightroom, I get the following error:

    An internal error has occurred: Error Domain=NSXMLParserErrorDomain Code=70 UserInfo=0x12110d290 „Line 1: Space required after the Public Identifier
    Line 1: SystemLiteral “ or ‚ expected
    Line 1: SYSTEM or PUBLIC, the URI is missing

    This is with the XML data post method. Do you know what the problem might be?

  30. Loki sagt:

    What exactly is the bug with sub-albums? I’ve done som Lua work, though not LR3 specific, and may have some time to help develop this…

  31. Philippe sagt:

    Most problems got fixed using „/zp-lightroom1“ instead of „/zp-lightroom“ folder name so now I can update my gallery from within Lightroom (LR3.2, plugin 1.5.1).
    But the published status is not updated in Lightroom: new added photos are set to be published, deleted ones are set to be deleted but photos set to be republished still have that status right after publishing, even the newly published ones are to be republished.
    I’ve read the 3 pages of instructive comments here but it seems noone had this problem.
    Any clue for fixing this?

  32. Philippe Y sagt:

    Release 1.5.1 is not working for me. How can I revert to 1.3.1 which worked like a charm?
    I did keep the plugin and put it back to Lightroom 3.2 (with companion php files to my ZenPhoto install) but I think something has been changed to the catalog or in a pref file somewhere because I can’t have it work anymore.
    Thanks for your help.

  33. peter sagt:

    Hi Lars, your plugin is working like a charm for one site, but I would like to configure a second publish service. I can create a second item in the publishing manager, but when I change the URL in the new entry, it is also changed in the old entry and vice versa.

    Is there a way to set up more than one lightroom 2 zenphoto publisher service?

  34. Phil sagt:

    Hello. First I want to thank you for you plugin which I used with great pleasure in release 1.3.1 with Lightroom 3.2 on MacOS.
    But now, I upgraded to 1.5.1 (LR plugin and php files on the server) and it is a bit messy: I can no longer create album (dynamic or not). Just hit ‚create album‘ (on the new publishing service as the former one is no longer available) and nothing happens. If I try to modify an existing album (retreive from ZenPhoto via ’sync albums‘ and ’sync images‘ features, I get an error message saying ‚An internal error has happen. Invalid parameter not satisfying: aString != nil‘
    I tried lots of things: reverting to 1.3.1, deleting the plugin optimizing reloading… without success… It even doesn’t work with a fresh new album. I even used a former catalog backup.
    With all these tests, I think something gets wrong with Lightroom pref files or something else but I can’t find it. The last solution I have is to reinstall the all system…
    Thanks a lot for any help 😉

  35. Jason sagt:

    Hey Lars,
    I looked in the catalog after deleting the old module. Couldn’t find anything. Then when I put the new one in, it showed up in the catalog, already configured (as verified by examination of the catalog file itself).

    I suspect that part of the problem is that something else is being cached; and you’ve changed enough of the new version to be incompatible? That’s the only thing I can think of… I’ll post in the LR forum asking where things like this are cached.


  36. Jason sagt:

    So, maybe you can answer this question now… I have 1.2.5 configured. I remove 1.2.5, optimize my catalog, reboot, and install 1.5.1…

    And the settings from 1.2.5 are pre-installed in the configuration panel for 1.5.1. Where is this information being cached?


  37. Rob sagt:

    Hi, i am unable to login to my server from the lightroom plugin. it is hosted on my Lan so im using the ip/zenphoto for the URL.
    I get this error from the log.

    An error occurred while attempting to load this plug-in’s portion of the Export dialog.
    ZenphotoPublishSupport.lua:123: canceled

    any ideas?

  38. Jason sagt:

    Hi Lars,
    No worries. The logger in the plugin page returns this:
    Plug-in error log for plug-in at: /Applications/ZenphotoPublisher1/ZenPhotoPublisher.lrplugin

    **** Error 1

    An error occurred while attempting to load this plug-in’s portion of the Export dialog.
    ZenphotoPublishSupport.lua:123: canceled
    As for giving you admin access on my server.. I’ll have to think about it!

  39. Jason sagt:

    Hey Lars,
    I think there has been a bit of a misunderstanding. I have in no way tried to compile/modify your scripts. I didn’t mention that, either.
    The jpeg problem was not your issue, it was just the one that it got found on. Some how, some installation or update in the past few weeks broke the underlying jpeg library on my server. We don’t know what it was,how it happened, or even when. We recompiled _our_ supporting programs (any program that used the libraries) and was able to get everything working as far as jpeg creation/display was concerned. You are correct, it had nothing to do with you or your software! When I initially asked, it looked like an isolated issue. By the time we were many hours into testing, we proved it was a base problem instead, and worked on that.

    The second problem I had was when I updated to 1.5.1 i would get the „can’t login“ message, same as a couple of other people post here claimed to have. Reading up in the message cue here shows Cathy had it last, but on a 1.5 version. I posted the error report from LR in a previous message; that was from a fresh install of 1.5.1, after deleting all other versions, optimizing my catalog, and rebooting. So I haven’t a clue why it doesn’t work!
    So, you can definitely ignore the thumbnail issue; it wasn’t even zen-photos problem!
    If there is anything I can do to help you debug why 1.5.1 won’t work on my system, let me know, and i will be glad to try it.


    • Lars sagt:

      Jason, sorry then I really had misunderstood you (decompile). For that login issue: I have tried out to re-install a login and it works on my system. You can try to find out some debug messages via „logger“ on Mac or WinDebug on Windows systems. Furthermore you can send me your login data, so that I can access your system. Maybe I can see what is happen. If you decide to give me access, then please use the contact form on my site to send me the data (sorry, but it must be an admin account).

  40. Jason sagt:

    hi Lars,
    I know you need to update both halves at the same time. :} I was very careful to make sure they did not overlap. I even tried using different directory names on both sides, and configuring it for each one (just to make SURE they know where they are) and deleting the opposing directory when trying the other, so it couldn’t possibly use the other version.
    With 1.5.1 I could not login.

    I have no idea why at this point, so I’m back on 1.2.5; at least i can use it!

    Oh, and the corrupt thumbnails? We don’t know what happened, but somehow the underlying jepg libraries got out of sync. We rebuilt and all programs depending on the jpeg library and now it works again. We have no idea how that happened, and after many hours of searching, we tried recompiling, so we’re done with that. Hopefully it didn’t break anything else!


    • Lars sagt:

      I really don’t know how I should or can help you. The problems with the login is new to me and it seems so that nobody else has this problem… Your second problem with the thumbnails has definitively NOTHING to do with the plugin. Thie impossible from the technical point of view. I would assume that there is really something strange with your system.
      BTW: you wrote that you have or have tried to recompile the script. There is a reason why the script was compiled. Everybody can use the script as it is for free. Nevertheless it is copyrighted by me and any modification and/or decompilation is not permitted! So let it be or delete the script!

  41. Jason sagt:

    Well, I’m basically stuck now. I’ve posted over on the zen-photo forum, but thought I would let you know here:
    1.5.1 will not let me login, and creates the error seen above when tried.
    1.2.5 still works for me.
    looks like zen-photo is interacting with something on my system that has changed in the last month (php?) to corrupt thumbnails. Haven’t figured out what it is yet, but it doesn’t look like a publisher problem.


  42. Jason sagt:

    So I cleaned up and reinstalled 1.2.5 (apparently the latest I have), and can login just fine. I can sync the albums, etc, sync the images, and it all works. Just the upload does not create (or creates badly) the thumnails/images. The actual images look like they should be okay, as irfan viewer opens them without a complaint… hmm… Yep, so does firefox.
    so if I stay on 1.2.5, who is creating the thumnails? zen-photo? I guess I’ll check that next. Sigh.

  43. Jason sagt:

    Oh, and of course, it won’t let me login. I get the user/password invalid message. If I downgrade to your earlier release, it lets me login and manipulate the albums, so my login and admin rights should be just fine..

  44. jason sagt:

    I just did a fresh install. When I try and edit the settings, it retains the old settings. I then cancel that, and right click on the publish to create a collection,and it tells me i have to be logged in to do that. Then I go back into the configuration, and it shows an error. This is what the logfile claims:

    Plug-in error log for plug-in at: /Applications/ZenphotoPublisher1/ZenPhotoPublisher.lrplugin

    **** Error 1

    An error occurred while attempting to load this plug-in’s portion of the Export dialog.
    ZenphotoPublishSupport.lua:123: canceled

  45. Jason sagt:

    It looks like whatever is creating the thumbnails broke (in the older version). Reason I think this: I logged on and downloaded the actual image from where it was uploaded, and the images are fine.. it was just the thumbnails that were broken. Previously, I had created several albums using LR3.0, doing updates, etc. I have not modified zen-photo, nor did I change any of the plugins/etc. I only updated LR from 3.0 to 3.2RC, then 3.2 Final (I didn’t try to add images to my website when using 3.2RC). So when I created a new album and uploaded, everything looked just fine, until I tried to view the album. All the thumbnails were blank. I thought maybe 3.2 introduced an incompatibility, so tried your latest and greatest.
    Where is LR saving the configuration information? I checked in the catalog (after removing the plugin and optimizing the catalog) and can’t find anything that seems to concern it. Yet if I reinstall it in the same place, it „magically“ finds all the config info… Strangeness.
    I had the old one completely working before this latest attempt.. And zen-photo still lets me login and manipulate the albums, etc, so that looks like it’s working there…

  46. Jason sagt:

    Oh, one more thing… Would you consider naming your zip files with the version or the date? That way, it won’t keep trying to overwrite the same one, and we can find older ones easier.. :}


  47. Jason sagt:

    Strange goings on. I just tried to create a new album, after updating to LR3.2 final… All I got were blank thumbnails. So I figured, what the heck, might as well download the latest incase things changed.
    Now I’m totally hosed. I can’t login, and i can’t change things (except manually with zen-photo). I’ve tried just about everything I can think of… I deleted everything from server and LR. optimized my catalogs. Reinstalled, and… it _remembered_ still, in LR, who i was and where it was configured! So something looks like it’s still cached… but I haven’t a clue where!


    • Lars sagt:

      well, a blank screen has definitively nothing to do with the plugin. This is in fact not possible. Have you also installed the most current files on your server (xmlrpc.php)? If you like you can send me your host and login data via the contact form, so that I can check what is going wrong on your system. By the way: have you checked that the user data entered within the LR-plugin have admin rights on ZenPhoto?

  48. I can’t find any sync buttons and when i right-click om Maintanance and choose Edit Album I get the message „You are not logged in -You need to log in before you can get access“. After that the plug-in crashes and i have to restart it. When I go to the settings it says that i am logged in. Any ideas?

    When I wrote this i realized that I’m running 64-bit Lightroom. Could that be a problem?

    • Lars sagt:

      Robert, at first: ist has nothing to do with your 64bit version. I’m running this plugin on Windows with 32bit and on Mac with 64bit. This „crash problems“ occurs sometimes on Windows-based systems. It has nothing to do with the plugin itselfs but with the Publish Manager implementation of LR. This bug has already been announced to Adobe. We will see what is happening in next releases… But now to your initial problem: a stupid question at the beginning – did you follwowed the installation and configuration description? When you have installed the plugin you have to change to the Publish Manager. There you have to login. When everything was fine the „login“ button changes and notifies you that you have loggid-in. Now close the Publish Manager and doubble-click on the Maintanance. The sync button should be enabled now. Please let me know when it doesn’t work at all…. Good luck!

  49. Fabrice sagt:

    Hi Lars,
    It was a problem with the folder /zp-lightroom on the server, I created /zp-lightroom1 and it works ! 🙂
    Thank you for your patience.


  50. Fabrice sagt:

    maybe am I stupid but I can’t make work… 🙂 I’ll send you a private message !

  51. Fabrice sagt:

    I tried both XML and HTTP POST. I am using zenphoto’s username and pass and my relative path is OK

    • Lars sagt:

      Hi Fabrice, I’m pretty sure that you have entered somewhere a wrong value. If not try the following: uninstall the publishing service and the plugin. Then optimize your catalog and restart LR. Finally re-install the plugin. I’ve noticed in the past that this can fix problems with plugins (for what reason ever). If everything fails then send me your login data and paths via the contact form (to make i not sooo public :-)) so that I can take a look (if you like). Greets, Lars

  52. Etienne sagt:

    try setting it to HTTP POST, not XML. Make sure you are using the username / password for zenphoto, not the server. And make sure your relative path doesn’t include the domain, just everything that comes after it which links to zp-lightroom.

  53. Fabrice sagt:

    On the login button, I can see „Switch User“ but I am not logged in.
    Upload Photos is XML Data and I CHMOD 777 the webservice directory and its files. I still cannot connect to the server.

  54. Fabrice sagt:

    hi Lars,
    The POST problem is also corrected here bt I still cannot connect to my server. I tried with Lightroom 3 and 3rc2

  55. Fabrice sagt:

    Hi Lars,
    The „POST“ problem is corrected here but I still can not connect to server.

  56. Etienne sagt:

    hi Lars,

    1.5.1 works for me. The POST problem is corrected. A few questions / requests:

    1/ On my ZP, i have albums within albums. But the plugin has just a straight list of all my albums on one single level. Can the hierarchies mirror each other as hierarchies?

    2/ Some pictures from the web site were not synced with the local folders. I don’t know why.

    3/ I’m happy to be a better tester.

  57. Etienne sagt:

    Also I have tried with 3.2RC and, like Fabrice, the problem is still the same — „POST“ is always the value the plugin uses for „relative path“ no matter what I put in there.

  58. Etienne sagt:

    I am also getting the problem reported by Fabrice. The relative path in my plugin is being reset to „POST“ on each startup of Lightroom. Also, no matter what I put in the relative path field, the plugin sends the request to my server with „POST“ as the relative path. I have the tcpdumps to prove this.

  59. Fabrice sagt:

    I tried with 3.2RC, it doesn’t work. I don’t know what is my problem but computers don’t like me those last days !
    it’s certainly a problem with me, your plugin seems to be perfect for other people 🙂

    • Lars sagt:

      Hi everybody, today I have uploaded the v1.5.1 which contains a bug fix, only. Please check the release notes for further information. I’m very sorry for the non-working release. It is really really strange because it is working perfectly on my own system. I will further investigate to find the reason for trouble. Thank you very much for your support! Is anybody there interrested to play the beta-tester role in future? Cheers, Lars

  60. Chris sagt:

    Hi Lars,
    I’ll keep my eye out for any further issues. Are you interested in releasing the source for the plugin? I’d be happy to drop into the code in the future if I have any problems and help out that way (and obviously submit back any tweaks/fixes)

  61. Chris sagt:

    Quick update: I got it all working by updating to the latest version of Zenphoto (I was previously on 1.2) and reconfiguring everything. It’s possible there was a permissions issue on the server, or that the zp-lightroom code doesn’t work well with older versions of Zenphoto. I wasn’t seeing quite the same issues as Fabrice, though: I never had a problem with the relative path being set to POST.

    • Lars sagt:

      Hi Chris, on the one hand site it is good to hear that it is working. On the other hand: you should get a message when ZP is lower than 1.3 😉

      @Fabrice: which ZP version do you use?

      BTW: version 1.5 was developed on Lightroom 3.2RC (which fixes a lot of bugs). So it would be really great if somebody could confirm that the plugin (v1.5) is running fine or if there are really problems with 1.5. I have tested the plugin today for a long time and couldn’t reproduce any errors… Or in other words: I really would like to fix any bugs but therefore it’s necessary to reproduce them. In the past I’ve noticed that the optimization of the catalog can fix some problems….

  62. Fabrice sagt:

    @Lars :
    When I do the step 6 „Open the Publish Service again and login“, My configuration is lost. The only thing that is retained is the description. The other fields are replaced by and /zp-lightroom. When I try to reopen the configuration, the relative path is „POST“ and sometimes I have to reload the plugin because Lightroom is saying it is crashed.

  63. Fabrice sagt:

    @Lars : yes, I tried a lot of times. I also saw that sometimes, the „log in“ button is empty.

  64. Chris sagt:

    Hi Lars,
    I’m seeing a problem with 1.5, also. I can’t login, and the plugin reports an internal error when I try to access the Maintenance collection. This looks like a fantastic plugin, so I’d love to be able to get it to work.

    If it helps, the error logged by Lightroom (Mac, 3.0, Snow Leopard) is:

    Plug-in error log for plug-in at: /Users/ctucker/Library/Application Support/Adobe/Lightroom/Plugins/ZenPhotoPublisher.lrplugin

    **** Error 1

    An error occurred while attempting to load this plug-in’s portion of the Export dialog.
    ZenphotoPublishSupport.lua:123: canceled

  65. Fabrice sagt:

    Hi Lars,
    Since I upgraded to the last version of your plugin, it doesn’t work anymore. With 1.3, everything was perfect. Now, I can’t login and in the field „Path of the web service“, my path is always replaced by „POST“. Is it possible to find the 1.3 version of your plugin ? It was perfect for me 🙂

  66. Lars sagt:

    @all: please check out the new version 1.5. Now it supports multiple plugin instances. Please note, due to some major code changes it is necessary that you will need to configure all plugin configuration again.

  67. Marcia sagt:

    I rename my files to their titles. Images with apostrophes cause an error. Any way to fix that?

  68. Dimy sagt:

    Great 🙂

    thnx Lars for the fast help, this indeed solved my problem 🙂

    now lets test this baby

  69. Dimy sagt:

    its under
    all files are there.
    for the webservice i tried some like /zp-lightroom

    Kind Regards,

    • Lars sagt:

      „Server could not be connected“ solution: some users had problems with this error message. It apprears due to incorrect server settings, especially when ZP is running in a sub-directory.

      ZenPhoto-URL – contains ONLY the the server name
      webservice directory – contains the complete path from root

      For example: when you have installed ZP on „“ your „zp-lightroom“ directory is copied under „“, then the correct values are:

      ZenPhoto-URL – „“
      webservice directory – „/zp/zp-lightroom“

      hope that helped!

  70. Dimy sagt:

    My gallery is running on

    de site is working no more errors there. But the plugin for Lightroom 3 doesn’t work.

    settings there:
    Enter Zenphoto-URL:
    Enter relative path to the webservice directory: „is blank“ (also tried /zp-lightroom)

    but I always get the error in Lightroom:
    Server could not be connected!
    please make surec that an internet connection is established and that the web service is running.

    Kind Regards,

  71. Dimy sagt:


    I want to say that I have the exact same problem as Pood.
    also tried different things but still no luck 🙁

    • Lars sagt:

      @Dimy: please can you give me some more information about your configuration. Further: does the requested album really exists on your server? I’m asking, because sometimes I noticed that ZP does not delete all data from the database when removing an album via the ZP admin interface. So the folder does not exists anymore but the database entry. Please can you check this and give me a short note. I could also offer you that you send me your access data to your installation so that I can login and I would check what’s going on or wrong on your system (of course I will not change/modify/delete anything on your system).

  72. Pekka sagt:

    Hi Filip, just a thought: Have you checked that the Virus scanner/firewall software on your computer is not blocking Internet access for LR? Many Virus scanner+firewall products have also application firewall (also called application security) which controls which applications are allowed to access the Internet. Please make sure lightroom.exe (on a PC) is allowed to access the Internet.
    Best regards,

  73. Filip sagt:

    I tried another time your plugin but I still can’t login.

    I did a fresh install of ZenPhoto 1.3 (on
    It works in the browser.
    I created a new user with all rights
    I can logon in the browser

    I downloaded the latest version of the plugin (1.3.1)
    I copied the zp-lightroom folder to
    I installed the plugin in lightroom and configured it.
    path to service: /zp-lightroom

    I try to logon but it fails:
    „Server could not be connected“
    „Please make sure that an internet connection is established and that the web service is running“

    Please help me out.

    PS: If you email me I give you the login to try it yourself or can I send you screenshots.

    Thanks in advance,


  74. pood sagt:

    @ Lars.

    To my knowledge, everything is set correctly including the permissions.

    What’s really weird is I’ve actually had this working once after switching to a subdomain, but I messed up the default image folder (rather not have it on the desktop), so I removed the ZP lightroom plugin from lightroom, and added it back in, reset the settings, but then I got that can not connect error, even though the only thing I changed was the default images folder in lightroom. What’s going on here? How do I completely clear lightroom’s settings, maybe it’s something to do with lightroom instead.

  75. pood sagt:

    I’m getting a server could not be connected error.

    All the settings to my knowledge are correct.

    Though, when I visit the xmlrpc.php, it says it can’t find the album, which is due to the htaccess I believe.

    • Lars sagt:

      Hi pood, have you logged successfully? Usually, the login process is pretty well working. The plugin is tested and is working with and without a „enabled“ htaccess. Have you checked the write permissions for the „zp-lightroom“ folder? Is it possible that there is something wrong with your ZP installation. I’ve noticed in the past that ZP (sometimes) does not clear everything when making a change via the ZP admin panel. So it could happen that there a databse entry for an album or image does exist but not the album or the image…

  76. Dezi sagt:

    Lars, i switched to XML data from HTTP multiPost and all seems to work well now … thank you very much for a great plugin & your help : )

    • Lars sagt:

      Dezi, my fault: it is „zp-lightroom“ and not „zp-include“ for the permissions 🙂 The reason why XML upload fails could also be that the file you will publish is already on your server owned by a different user (sometimes ftp programs set users). Because of the missing ownership, the „overwrite“ will fail here. Pekka (see coments above) had similar problems. I will try to fix this with the next release.

  77. Dezi sagt:

    thank you for your help – Lars, however, I can’t find a „zp-include“ directory — I have zp-core, zp-data, zp-lightroom directories — zp-lightroom folder & file permissions are set to 777

  78. Dezi sagt:

    when I try to publish I get the error message „Warning. Can’t Update this collection. An internal error has occurred: a semi colon character was expected. “ any suggestions or advice?

  79. AnnMarie sagt:

    Sorry not to have replied sooner Doctor Gonzo.

    To get Mogrify running with ZenPhoto Publisher:

    1] Make sure that you have LR-Mogrify 2 intalled and working
    2] Install Zenphoto Publisher
    3] Right click on the Zenphoto Publisher tab in Lightroom
    4] Select ‚Edit Settings …‘
    5] Set up your export settings for ZenPhoto in the Lightroom Publishing Manager
    6] From the Post-Process Actions list, insert the Mogrify configuration and any features of it that you wish to use
    7] Save your additions and you’re good to go.

    Hope that helps.

  80. Courtney sagt:

    On a related note, the publish service works for both zenphoto installations correctly, as long as only one of them is setup at a time. There is only a problem if both publish services are setup at the same time.

    • Lars sagt:

      Courtney, I’ve checked this and you’re absolutely right. Unfortunately I don’t know how to fix this, yet. This seems to be a really stupid bug (or better: a missing feature) within the API. It is only possible to request all publishing services for a dedicated plugin. So you will receive a list of published services but without any possibility to find out which one is the currently selected. I already wrote a mail to the development department of Adobe, but I didn’t got any response ‚til now.

  81. Courtney sagt:

    That is essentially what I tried. I have a copy of the zp-lightroom folder in each of the zenphoto folders on the webserver (Ubuntu/Apache). I then created a second publishing service. That is where the trouble was. When I setup the second publishing service, it changed the „relative path to the webservice directory“ for both of the services.

  82. Pekka sagt:

    Lars, just a quick update to say that everything is now working 100% for me. I have set albumdir permissions back to 757 (I tried stricter 755 but that didn’t work) and the owner of all photos is the web server’s www-data user (deleted all photos I had uploaded via FTP and did a fresh publish to set the owner right).
    It may be worth mentioning that I did encounter one peculiar internal LR error in two occasions right after the last image for the collection was uploaded. I have posted the error message here:
    It seems that this error didn’t have any real impact on anything since I was able to publish new photos etc. normally although this error kept repeating itself every time. I was able to get rid of the error by removing ZenPhoto publisher service in LR and then recreating it. Not a big issue at all but it would be great to know what might be behind this and whether anyone else has bumped into this.

    • Lars sagt:

      Pekka, such a SQL message usually appears when there is an error within the catalog. Try to optimize it. It has definitively nothing to do with the plugin, because it is not possible to make direct SQL statements via the LR API. During the development I sometimes got similar messages but after optimizing the catalog they are gone.

  83. Pekka sagt:

    1) I wasn’t able to re-produce the problem by doing a filename search in LR. When I renamed the files back to their originals (with underscore instead of a space) and uploaded them to the server, the other file wasn’t found after image sync. I removed these two files from LR catalog, added them back and renamed them after which I haven’t had issues with these two photos. It might have been a glitch on the DB. Who knows. I will keep an eye on this…
    2) I believe creating real files from a VC or even from riginals when there are VCs to that original is the only way to get around the matching issue since the VC may get matched with the original and also vice versa.
    3) Changing albumdir permissions to 777 and file permissions to 666 seemed to rectify the issue. It appears that if I am the owner of the files instead of the owner being the server user (www-data) then you have to relax permissions in order to be able to re-publish. I have previously used FTP to upload the images and therefore my personal user account is the owner. I think I am going to remove all existing photos from the server from all albums and then do a fresh publish to get the ownership right.

    My improvement request: Sorry, I didn’t realise it is all in Adobe’s capable hands to get this sorted 😉

    • Lars sagt:

      good to hear that some of the issues are working now. I will try to add the functionality for the VCs (next week I will be a bit busy, but I will try to find a time slot 😉 ). Thank you for the report on this „permission issue“. I will try to reproduce it with changing the owner on my own server, so that I will be able to bring up a better error processing (I afraid that changing the permissions via LR will not be possible). I could imagine that some other users will have similar problems.

  84. Pekka sagt:

    Lars, in addition to my previous post – while making use of the plugin for some serious work – I found out that republishing photo/photos works very randomly. So far I have managed to republish 3 photos only (tried with approx 20 different photos in all seven albums I have). Most times I get a warning :
    Can’t update this collection: Only one top level element is allowed in an XML document. This sounds like the permission issue I had earlier. Strangely enough, I haven’t had a single issue with publishing new photos or removing them. It is only the republishing that keeps failing. I haven’t been able to establish any common factor amongst the photos that keep failing or the ones that have been succesfully republished. Any thoughts why this would happen?

    A request for the future to improve the usability: It would be a nice touch if it was also possible to unmark the photos if they have been accidentally marked to republish. Now the only way to remove them from the „photos to re-publish“ view is to sync images.

    • Lars sagt:

      Hi Pekka, thanks for the infos:
      to 1.) that is a really strange behaviour. But I guess it has nothing to do with my plugin but with LR. When reading a filename, I only remove the file extention and search then for the „basename“ via the LR API provided function. Please try the following: go to the LR Library Filter and configure a search for filename and enter the filename with the space. What is the result? Is it the same wrong filename as in your example, then it is definitively a LR issue…
      to 2.) this is an interesing approach. What I could imagine is to build-in an additional switch, so that the user can decide how to handle virtual copies in terms of creating a „real file“ from a virtual copy. Not everybody will like to use such a feature for creating „real files“ from VCs 😉
      to 3.) this is really strange. I use the plugin for one of my sites and do what you wrote very often – without any problems, yet. Such a message is received when an error has occured on server side (e.g. any PHP errors), so that the XML return value could not created correctely. It can happen when some file permissions are missing. Please try to change the owner to all files and set the permissions of all files to 666 and the albumdir permissions to 777 – just for testing. Does it work then?

      According to your usability improment request: you are absolutely right! It would be really great to have such a feature. Greetings to Adobe 🙂 Once a file is marked for republish or for deletion – it cannot be undone. This is also announced to Adobe as an urgent request by several users.

  85. Pekka sagt:

    Lars, thanks for the 1.3.1 update! Everything looks pretty good! However, there are still a couple of issues which may need attention:
    1) When the filename contains spaces, images matching seems to behave erratically. Either the image is not found or it gets matched with a random image. In my case I had two images: „Westminster South Bank-pano-final.jpg“ and „Westminster North Bank-pano-final.jpg“. The latter image got matched with a image „20100210-85.dng“ which doesn’t exist on the server and is not part of any of my albums in LR (although it is on LR DB) . Once I had replaced the first space with an underscore in both filenames (Westminster_South Bank… and Westminster_North Bank…) there were no further issues. Strange!
    2) We discussed earlier about the challenge to differentiate between original and virtual copy since the filename is essentially the same. One workaround is to first export the virtual copy as a TIFF file with a slightly different name (eg: filename-copy name-export.tif), then import this to LR and use this exported version in an album you want to publish. Problem solved!
    However, if I want publish the original version of the image (not the virtual copy), everything is fine until I want to synchronise images. The original published image gets matched too often with the virtual copy of the image. I could, of course, use the same export-to-TIFF trick here too but I find this too tedious and cumbersome way of working. Unfortunately, it seems that at the moment the only way to deal with images with virtual copies is always to create a separate publishing version first regardless whether you are publishing the original or virtual copy. Any better ideas?

  86. Courtney sagt:

    Thanks for the plugin! It is extremely useful!

    Does it work with multiple different zenphoto galleries on the same website? I have what may be an unusual setup – two separate zenphoto installs on the same site. (i.e. and When I try to configure the second publish link, changing the relative path in the settings changes BOTH connections.

    Thanks again, and I’d be happy to help troubleshoot if you’d like.

    • Lars sagt:

      Hi Courtney, I guess the solution is pretty simple: copy the „zp-lightroom“ folder into and into In Lightroom: just add an additional Zenphoto Publishing service within the LR Publishing Manager and configure it according to your second gallery settings (path). Please let me know if that was working. Greets, Lars

  87. wolfich sagt:

    Hi! I’m trying to login in settings menu, but nothing happens.
    Browsed server logs and found following:
    [Thu Jul 22 12:51:25 2010] [error] [client *.*.*.*] PHP Warning: Cannot modify header information – headers already sent by (output started at /web/ in /w
    eb/ on line 369
    This could be fixed by changing 7h string in zp-lightroom/xmlrpc.php
    define(WEBPATH, substr($dir, -1) != ‚/‘ ? $dir.’/‘ : $dir);
    define(‚WEBPATH‘, substr($dir, -1) != ‚/‘ ? $dir.’/‘ : $dir);
    I think it is server specific issue, but maybe someone else will face it too =)

    P.S. Great plugin, thnx!

  88. Doctor Gonzo sagt:

    AnnMarie, how do you get Mogrify to work with the Publish Services? It works great for normal exporting, but I can’t get it to work with Publishing. Any insights would be welcome!

  89. AnnMarie sagt:

    Just wanted to say thanks, been using the plug-in for a couple of days and it works a treat.

    Also to those who wish to expand the functionality, try installing LR-Mogrify and then you’ll be able to add frames, watermarks, etc to your hearts content. It works great with Lars‘ publish plugin.

    Ta very much 🙂

  90. Doctor Gonzo sagt:

    Okay, I know I’m being an ungrateful wretch, but I have two suggestions for how to improve this. Add the ability to control both metadata and watermarking for the export. Other publish services allow you to control metadata (with checkboxes for „Minimize Embedded Metadata“ and „Write Keywords as Lightroom Hierarchy“) as well as a checkbox and selection for watermarking.

    If you added these two features, I would sing your praises from the highest mountain.

  91. Doctor Gonzo sagt:

    Lars, the XML upload worked like a charm. Thank you!

  92. Doctor Gonzo sagt:

    I think I’ve found part of the problem.

    I made the zp-lightroom directory writeable, as per previous instructions. However, making it globally writeable somehow disables the PHP files (such as the xmlrpc.php file) in that directory from being run. I’m not sure if that is how my webserver is configured or not. My ZenPhoto server is hosted with HostGator, I installed it using cPanel.

    My computer is Windows 7 64-bit Ultimate edition, and I’ve been installing the plugin by extracting it from the ZIP file, putting it in the plugins folder, and loading it from the plugin manager.

    I’ll see if I can tweak my web server settings some more.

  93. Doctor Gonzo sagt:

    Okay, I deleted the plugin and the files on the server, and reinstalled them. Same issue.

    Full error message from the log:

    Plug-in error log for plug-in at: P:LightroomPluginsZenPhotoPublisher.lrplugin

    **** Error 1

    This plug-in’s post-processing task did not finish successfully.
    Required white space was missing.

    • Lars sagt:

      That is really really strange! Please can you tell me a bit about your system. On your path exampe I can see that you are using a Windows based system. Is is 32bit or 64bit? What about your Zenphoto server? What kind of system is that? Please can you describe all the steps you done in detail until when this error message appears?

  94. Doctor Gonzo sagt:

    Thanks Pekka. I made my zp-lightroom directory writable. Now I get a „required whitespace missing“ error when trying to publish.

    • Lars sagt:

      Doctor Gonzo, hmm strange. Its the first time I hear from this. Is there a popup coming up with this message? Please uninstall the plugin from the LR Plugin Manager and add it again. Please also make sure that you have installed the current „zp-lightroom“ version on your server and that Zenphoto v1.3 i running. Let me know if this is working…

  95. Jason sagt:

    I updated to the latest version, then switched catalogs. I edited the location of the album, then selected a couple of more images. Then hit publish. And it did.

    which is what I expected to happen the first time, so I have no idea why it didn’t. Ah well. Maybe it got fixed when i did the update? :} Works for me, however it did!

  96. Jason sagt:

    Hey Lars,
    As for the exact error message: no, I skipped it and worked around. Doing a „sync“ with the server is very painful; first it looks like it tries to re-download all of my photos? Not just image references? I stopped that after 10 minutes (probably shouldn’t have), and then I exited and re-entered lightroom. When I hit „publish“ again, it promptly deleted all of my images except the one it had redownloaded. Sigh. Not totally unexpected, but not nice, as it deleted all of my descriptions, too. I then recreated the collection and published again, and it was fine.
    Doing a full sync (and letting it redownload the images) is not quite the way to go; I run three catalogs of images in lightroom. Thus, I have some collections in some catalogs, and others in another catalog. Obviuosly, I don’t wish to mix them (that was the purpose of the different catalogs!). Actually, I still have not updated the location of one of my other catalogs, so might be able to get error messages for you when i bring up the other catalog. I’ll do better at documenting the sequence for you next time.

    • Lars sagt:

      Hi Jason, first of all its good to hear that it works now. But one comment to what you wrote on that sync is slow: well what is the plugin doing?

      When pressing sync all image references in the LR plugin (plugin collection only!) will be removed. Then the server is connected. Here an XML file with imagename, image url and image ID is created and transmitted back to LR. LR now is searching file by file from the received XML and will add found images to the plugin collections. No image download happens. BUT, when you use a very large catalog with many photos on Zenphoto to search for and/or a slow computer – it can take a while. When you see the progressbar, then the image search on the catalog happens.

      Actually, I have tested the plugin with a LR catalog containing ca. 150.000 photos, a server with 10 albums and ca. 150 photos in each folder. A complete sync takes approx. 5min.

  97. Pekka sagt:

    Doctor Gonzo, this is exactly the same problem I had too after update to 1.2.6 (see my posts on July 15 and Lars‘ replies). Here is the solution in short: If you don’t have system temp configured on the server (this is where uploaded files are stored temporarily by default) zp-lightroom folder is used instead. Either configure system temp folder on your server or check the permissions on Zp-lightroom folder and make sure it is writeable. There was no system temp configured on the server in my case (and no way to do it myself either sice it is a shared server) so I enabled write access to zp-folder. There were no further issues with publishing any of the albums after this.

  98. Doctor Gonzo sagt:

    I installed the 1.2.6 version today. I no longer get the “ZenphotoExportServiceProvider.lua:426: attempt to index local ‘result’ (a nil value)” error. I do get another error, though. Now I just get an „Unable to upload image“ error.

    I have one album (other than Maintenance) that I created in LR that shows up in ZenPhoto. However, when I attempt to publish a photo to that album, I get the „Unable to upload image“ error.

  99. Natasha sagt:

    Hi Lars, it was the latest release, and it worked fine for a couple days, then suddenly stopped. I tried uninstalling and reinstalling via the Plugin Manager, which didn’t work, but then, since I sent the first message, I tried again, this time shutting down Lightroom in between, and that seems to have fixed the problem. So, I’m good again. I’ll let you know if the problem re-occurs, hopefully with more information on what happened.

    By the way, I’m very impressed with the ability to reload all my albums back from the server, so no harm done at all!

    Great plugin, thanks.

  100. Natasha sagt:

    Hi Lars,
    The plugin has suddenly stopped working. In the Plug-In Manager I see the following diagnostic message:

    Plug-in error log for plug-in at: /Users/natashahadfield/Downloads/ZenphotoPublisher/ZenPhotoPublisher.lrplugin

    **** Error 1

    An error occurred while attempting to load this plug-in’s portion of the Export dialog.
    Utils.lua:86: bad argument #1 to ‚ipairs‘ (table expected, got nil)

    I tried un-install/re-install, of the plugin, but the error still occurs and I can’t use the plugin. I’ve no idea what I did right before hand to trigger the error the first time, I’m afraid. Any ideas?


  101. Pekka sagt:

    Lars, the file in question is „DSC00102-Edit-17.jpg“. This image is found (a valid image in LR) but the closest filename in the album on the server is „DSC00049.jpg“ . This DSC00049 gets actually matched with another image which has identical filename in LR (totally my fault!). That substring matching could explain the issue I mentioned in my earlier post (issue #1: file 20100117-2.jpg on ZenPhoto got matched to 20100117-27.dng on LR.) but this „rogue“ image is something different I can’t figure out.

  102. Pekka sagt:

    Lars, there seems to be no system temp configured on my shared server since after I had applied write permissions to zp-lightroom folder upload was completed successfully! Many thanks for your help! I will carry on playing with the plugin and report any further findings to you. BTW, did you have any explanation or idea why a photo which doesn’t exist on the server at all would appear on the publishing service catalog after syncing images?

    • Lars sagt:

      Pekka, what is the exact image name which is found or not found. The plugin works pretty simple to find images: it reads the filenames from the server without the file extention and will find this „image basename“ on the server. But in this moment I see the problem which could happen: when you have a file like „20100107-0001.jpg“ on the server and file like „20100107-0001a.jpg“ in your LR catalog then I could imagine that the file „20100107-0001a“ is found because „20100107-0001“ is a substring of it…. Hmmm. I will check (and fix 🙂 ) this tomorrow….

  103. Jason sagt:

    Greetings Lars!
    Well, not bad overall… Next problem, though! I created 4 albums and stuffed photos into them. Then created (on the website) a couple of overview sites, and moved the ones created under as sub albums. This seems to work fine, but when I tried to update… nothing worked. 🙁 I edited the location first, of course, and it did find the new albums. I selected the upper album as location, and left the directory name the same. Kept getting can not update this album. I exited and came back, and same thing… I tried a sync, and it wiped out my (local) album in light room with an error message for each one. When I dragged in new photos, I even got an sql error statement, saying it wasn’t properly formatted! even though LR no longer contains the images (I moved only one back in), the site still contains them… Looks like it can’t find a sub-album this way? What should I try?


    • Lars sagt:

      Jason, what was the exact error message? Just for a better understadning: you have created some albums on your server and then you have created collections in LR? Is this right? If so then here is the problem: whenever you have created or modified an album or images on your server from outside LR, then you need to make a sync (Edit album menu item). This is because LR needs to know about the album folder (albumID from your Zenphoto databse).

      Have your tried to go to the Maintainance album and made an „complete sync“ (this should be the last chance to reset everything to default)?

  104. Pekka sagt:

    Lars, thank you for the update! I can confirm that issue #3 is now fully fixed.

    I don’t get the error message regarding I mentioned in issue #2 anymore but now I get „unable to upload image filename.dng, image upload error of file filename.jpg“. First I thought this might be due to some strange folder permission issues on the Linux server (Apache) but regardless of how the album is created (in ZenPhoto, via FTP or ZP Publishing Service) I am still unable to publish any photos. I just can’t figure out what is causing this.

    I understand what you are saying about the image matching, it is a real challenge. BTW, the example I gave you in issue #1 was actually not a original image + virtual copy combination but two totally different photos that got mixed up (with one character difference in the filename).
    I also realised that in one occasion syncing images has actually included a photo (DSC00102-Edit-17.jpg) which doesn’t exist on any album on the server (there is no physical file with this name on the server at all).

    I am happy to carry out testing and report the findings to you but before I can get the image upload fully working, I am pretty much stuck. Hopefully at some stage I will be able to use this great plugin of yours for some real work too.

    • Lars sagt:

      Pekka, that is really strange, because I’m testing the plug-in with three different systems. Usually, this message appears when the tmp file which was uploaded was not found. In other words: the file xmlrpc_upload.php receives the HTTP-multipart post and saves the file in the system temp directory. I don’t know where this directory is on your system (if none is configured the zp-lightroom folder is taken – permissions???). Maybe you can check there to see if the uploaded file is present. If not, then you have a writing permission problem. In the second server call this temp-file will be moved and renamed to the correct album folder. If the temp file was not found then this exception is fired. Can you check for the temp file please?

  105. Doctor Gonzo sagt:

    I am having the exact same problem as Pekka, specifically #2. I am able to create a new album from within Lightroom, but when I try to publish photos I get the „ZenphotoExportServiceProvider.lua:426: attempt to index local ‘result’ (a nil value)“.

  106. Pekka sagt:

    I am now running ZenPhoto v1.3 and I am now able to do the initial sync. Plugin version is 1.2.5. There are still a couple of issues though:
    1) When LR catalog has multiple images with the same filename, the first photo which has that name in LR catalog is used. Therefore, the image on ZenPhoto gets matched to a wrong image in LR. Would it be possible to use also other criteria when matching images, such as Capture Time? Also, with some images I found out that there are issues with matching when the first 10-12 characters of the filename are the same. For example, file 20100117-2.jpg on ZenPhoto got matched to 20100117-27.dng on LR.
    2) Second issue is that I am not able to publish any albums at all due to the following error: ZenphotoExportServiceProvider.lua:426: attempt to index local ‚result‘ (a nil value). Interestingly, I am able to create new empty albums, which get created on ZenPhoto without any issues.
    3) ‚Show album on ZenPhoto‘ doesn’t use correct url. It assumes that ZenPhoto is in the root of the website even if it is in a subfolder, eg. /zgallery. Is there any way to fix this?

    • Lars sagt:

      Pekka, thanks a lot for the detailed list. I will investigate on the items and hope to release an unpdated version still today.

    • Lars sagt:

      Pekka, thanks for your „morning input“. Several things (2+3) have been fixed. The most interesting point is what you wrote under (1). I tried to realize this but I failed. The reasons are a bit difficult to explain but I’m trying: when you export a file which is part of a stack or a virtual copy etc. then LR appends a squence number (‚20100102-0001.jpg‘, ‚20100102-0001-2.jpg‘, ‚20100102-0001-3.jpg‘ etc.) to the exported photos, automatically.

      When you exporting files this is very nice because you don’t need to handle the filenames. But when you make a sync with your server a lot of problems will happen. Because LR allows only unique filenames it is very difficult to decide which photo to take. I tried to read files from the server and removed the sequence number from the end. In my example I had a JPG, a DNG and a NEF file. I also created a small dialog which allowed the user to select the „association“. So far so good and everything worked the first syncing time.

      The problems arrived when syncing a folder a second time. The LR API does not offer a method to really remove a photo from a collection. The only method is to „mark a photo to delete“. So the photos are still in the collection, but marked. When you now read the photos from the server and made the association in a different order, LR fires an exception telling that the remoteID must be unique. The remoteID is a unique and strongly required number (usually the databse ID from Zenphoto). It is obvious that such a exception occurs, because the photo is still part of the collection (only marked for deletion). I have already mentioned this to the guys from Adobe and hope that they will bring a solution.

      The other search criterias you have mentioned (filetime, capture time etc.) are not really working, because people can decide to remove the metadata from the images. Even the filetime on the Zenphoto server and on your local system can differ. So I afraid, that the filename is the only real criteria to search for.

  107. Fabrice sagt:

    Hi Lars,
    I upgraded Zenphoto to 1.3 and now it seems to work perfectly. Sorry for my late response, I wasn’t on my computer yesterday.
    And Thank you for your work.


  108. Natasha sagt:

    Thanks for the info, Lars, that sounds like it would be quite good enough to work with then! I look forward to playing around with it.

  109. Natasha sagt:

    Hi Lars,
    Please could you give me some more information about the subalbums – what exactly does and doesn’t work?

    Many thanks,

    • Lars sagt:

      Natasha, the sub-alums are working. But currently there is no „tree“ shown in LR. All albums and sub-alums are imported and shown as a „flat list“. But you can manage, delete or create new sub-alumbs as you like. The reason for not showing the tree yet is that of albums and sub-albums canot be distingushed (due to a „small“ bug in the LR API)

  110. Fabrice sagt:

    Hi Lars,
    I got the same error :
    Error Domain=NSXMLParserErrorDomain Code=5 UserInfo=0x11e912e00 „Line 2: Extra content at the end of the document

  111. Fabrice sagt:

    Hi Lars,
    No, it doesn’t work before the update, there was the same error.
    My domain name is and the zenphoto website is
    In the configuration of the plugin, when I try to put in the first field and /zp-lightroom in the second one, it doens’t work at all, I can’t log in.
    When I try in the first field and /gallery/zp-lightroom, I got the error : Domain=NSXMLParserErrorDomain Code=5 UserInfo=0x12d42d270 “Line 2: Extra content at the end of the document

  112. Pekka sagt:

    I will do the update to v1.3. I was probably stuck too much to the idea that this could work with v1.2.x as is mentioned in the requirements. Sorry about the trouble. Thank you for your great efforts with the development work you have done so far!

  113. Pekka sagt:

    I am logged in successfully. It says ‚logged in…‘ and I have double checked the username (with admin permissions to Zen) and password are definitely correct (used the same credentials to login to ZenPhoto admin to verify this). I have also uninstalled the plugin and re-created the publishing service and made sure the firewall on my workstation gives LR full access to the Internet with full trust to the local machine too. Still no luck. I believe there must an issue with the connectivity as you said, but I can’t figure out what might be causing it.
    Is there any way to verify weather the publishing service has actually established connection to the server, apart from checking the status which always says ‚Logged in…‘ no matter what credentials are entered? I was just thinking would it be possible that the credentials are not properly passed on to the server and therefore the connection wouldn’t get established even if the status indicated you are logged in?

    FYI: I’m running LR on Win XP SP3. Server information: ZenPhoto version: 1.2.8, PHP version: v5.2.12-0.dotdeb.0, MySQL version: 5.0.32.

  114. Pekka sagt:

    Hi Lars,
    When I edit the maintenance node in order to do the initial sync, there is no sync button(s) on the dialog box, only Edit and Cancel buttons. When I click on the Edit button on the dialog, I get the following error message: An internal error has occurred: Only one top level element is allowed in an XML document.
    I was able to do the initial configuration and login to the server without any issues. At the moment I pretty much stuck since I am not able to get any further due to the error I get when attempting do the initial sync.

    • Lars sagt:

      this behavior happens when there is a login error or no connection is established. Usually, a dialog should appear, but due to a bug in the LR API it doesn’t (already announced and confirmed by Adobe). Please open the LR Publishing Manager and check whether you are logged-in successfully. Let me know if this fixes your problem.

  115. Fabrice sagt:

    Hi Lars,
    Here is the error I see when I try the updated version of your plugin :
    Error Domain=NSXMLParserErrorDomain Code=5 UserInfo=0x12d42d270 „Line 2: Extra content at the end of the document

    I got the impression that this error occur because my website is in a subdirectory.

  116. Jason sagt:

    Woops! Yes, I did see the empty entry under zenphoto publisher for the directory, but when loading photos I don’t see a count of photos in the collection at all now… Ah… single digits are completely off the right side of the window edge, double digits are only partially on. Looks like you have the „window“ a little large (no, resizign my frame size doesn’t fix it).

  117. Jason sagt:

    Greetings Lars!
    Great, that did fix the bug; I now have successfully loaded small gallery into zenphoto. :}

    Now to try and figure out how to stop it exporting my keyword tags when it uploads the images!

    Thanks, I’ll see what other trouble i can get into!


  118. Jason sagt:

    Okay, more info: got the “An internal error has occurred: ?:0: attempt to perform arithmetic on a string value” error; this happens when you try and sync when zenphoto has no albums, or there are no photos in the album you have.
    Here are the steps I’ve done now, to get a new error:
    preset: zenphoto has no albums or images, I login via publisher interface.
    right click on maintenance, select ‚create album‘
    Album: Carving
    foldername: carving
    description: put text in it
    said create.
    It created the album in zenphoto, and the collection in lightroom.
    Dragged in some photos from my library.
    (minor note: the spaces before the numbers in number of images is too long, it pushes most of the digits in number of photos off the screen)
    right click on Carving collection
    click on „Publish Now“
    Get error message (after it works a bit):
    An internal error has occured
    ZenphotoExportServiceProvider.lua:369: attempt to index local ‚result‘ (a nil value)

    No images are uploaded…

    • Lars sagt:

      Jason, I have uploaded a new plugin version, which should fix your problem with the initial sync. See the instructions on the screen (or the history on the webpage) when you have installed the plugin.

      When you have created a collection in LR you should see a new and empty album in zenphoto. Do you see this album?


  119. Jason sagt:

    Greetings Lars,
    well, now I got it to login. I hadn’t been clicking on your image shots above, because normally text is better… so I didn’t see the „correct url“ format until just now. It finally let me login… Now, to see what else I can mess up!

  120. Jason sagt:

    Greetings Lars;
    No, zenphoto doesn’t use public key encryption, my server does. You require a login to be able to get to the pages, right? Well, login only happens with ssh and public key pairs on my server. I’ve been trying to work around this, by loading the remote drive as a local drive on my development machine, but apparently have to have a url to be able to use publisher? Sigh. No, I’m not yet sure what exactly is going on, I’m just trying to setup the software so i can see what it does!
    I’ll try seting up zenphoto on a local machine (without pubkey) and see what it does. I might be wrong about what anything is doing… the error message I get back from publisher is „login failed“ which is why I figured it was a key failure. :}


  121. Brian sagt:

    I am unable to „Read albumlist from server“ or „Read albums and images from server (EXPERIMENTAL)“ I was able to create and synchronize photos to Zenphoto by right-clicking on the Zenphoto option in „Publish Services“ and creating an album. Unfortunately, if I attempt to sync, my „album“ disappears and I have to start over.

    • Lars sagt:

      Brian, this sounds a bit strange. Please try the following:
      1. login and close the Pblishing Manager
      2. You should see now your Zenphoto Publisher as a node under the Publish Services. By default there is a collection (or subnode) called „Maintainance“. Right-click on it and use „Edit album…“
      3. A dialog pops-up with two buttons. Please click the button „Sync all images“
      4. all albums are read from the server and the Plugin will assign all images found on your server and in your current opened catalog.

      Please note: usually you need to sync the albums and/or images only one time – in case when you use the plugin the first time or when you have uploaded images via another system like ftp etc. It is like a „reset“, whenever you press „sync albums“ or „sync images“. All albums and images in Lightroom will be removed from the Plugin and newly created (if they are existing on the server).

      When you want to keep track the images of a dedicated album only, you can use the „sync images“ from the „Edit album…“ menu item. Only the images of this album will be synced.

      Please let me know, whether this info helped to solve your problem.
      Cheers, Lars

  122. Jason sagt:

    Greetings Lars…

    My server requires public key encryption keys for logins; a login name and password combo will not work. Do you think you could add an option for using a public key pair instead of login password? Oh, and of course it’s using ssh (sftp) instead of http://ftp...



    • Lars sagt:

      Jason, are you sure that Zenphoto offers public key encryption for login? I will check this and add this if possible.
      ftp isn’t used to transfer the images to the server. The files will be transfered via PHP multipart posts. So this shouldn’t be the problem…

      Greetings, Lars

  123. Brian sagt:

    I was able to successfully install the plugin. However, when I attempt to sync (either option) I receive the following error:

    „An internal error has occurred: ?:0: attempt to perform arithmetic on a string value“

    I verified that my user ID configured is at the administrative level and have attempted to rename my album names in the event there is conflict with characters or spacing. Nothing has resolved the problem.

    Thanks for your help, Brian.

    • Lars sagt:

      Hi Brian,
      thanks a lot for the info. I never experienced this error until now. How do you try to sync? Do you use the sync option from the „Maintainance“ collection or from the Publishing Manager? The next question: do you have albums on your Zenphoto with numbers as its names? (just try to identify the reason so that I can reproduce the error on my installtion)

      Greets, Lars

  124. Filip sagt:

    I’m glad to see this plugin and I tried to install it directly.

    I think that I did everything right but I can’t login.
    I copied the folder in my zenphoto installation, I installed the plugin in Lightroom but when I try to logon I get the following message:
    Server could not be connected
    Please make sure that an internet connection is established and that the web service is running.

    Any help is appreciated,

    BTW: What is the problem with the subalbums? I normally have 6 albums (categories) wich holds each a bunch of albums. should this give also problems?

    Thanks in advance,


    • Lars sagt:

      Hi Filip, usually this message appears when the server path is not correct.
      Please try the following:
      1. install and activate the plugin
      2. enter the correct web URL
      3. enter the correct path from root to the „zp-lightroom“ directory. I guess that the leading „/“ is important.
      4. Press the „Save“ button of the Publishing Manager
      5. Open the Publishing Manager again. Now the Log-In Button should be enabled. Enter your Zenphoto username and password. You must be an Zenphoto-Administrator with all privileges.
      6. When you now press the ok button and all data are valid you should be logged in and you can close the Publishing Manager and work with the plugin.

      Please let me know whether this fixes your problem.