In looking into SmugMug for photos, I had some issues with memory and the normal uploader (it'd use a ton of RAM and then close unexpectedly). I also have several starts at custom album solutions that needed importing. After a suggestion that I should archive some webcam pictures for a construction project online, I decided I needed a tool that I could use to simply upload pictures from the command line. Especially on a remote system (such as a web host), a quick shell loop to directly transfer is much easier than downloading files and running another tool.
You may download sm-fileupload.pl and use for whatever purposes you would like. Dependencies are perl, LWP, a compatible SSL library such as Crypt::SSLeay (unless you disable the secure login), and Digest::MD5.
sm-fileupload.pl --getsession --email <email address> --passwd <password>
sm-fileupload.pl --getsession --email <email address> --passwdhash <password hash>
sm-fileupload.pl --sessionid <sessionid> --albumid <albumid> --file <image file> [--filename <smugmug filename>] [--caption <Caption>]
sm-fileupload.pl --sessionid <sessionid> --logout
On success, the script will exit with code 0. It will be nonzero for failure, with any messages on STDERR.
The script can be used as the core for other tools. For example iphoto-uploadalbum.pl which takes an iPhoto album directory (such as would be on a server - useful for direct copy), parses captions, and uploads to SmugMug using the sm-fileupload.pl script.
While I can't promise any level of time commitment as this is primarily a tool for myself, I'm open to suggestions for things that would make it more useful to others. You can email me at the address below.