Forget the previous two posts (especially as the code went funny in the last one), apparently using getTitle() is a red-herring. I tried it with an album that is named in lowercase and it gave the non-object error again, so I deduce that album names are in fact lower case, and that's what needs to be passed. Giving a name with upper case produces the same as giving album-zip.php a completely made up name.
So, next I tried commenting out line 66 of print-album.zip ($persist = $_zp_gallery->getPersistentArchive()

and adding $persist = NULL; instead. This works in the sense that the zip file is created, but presumably there's no caching going on, so every request will create a new file.