KodakLoader

KodakLoader is a graphical Linux tool for uploading photos into Kodak EasyShare gallery. It is a convenient alternative to the web interface, which requires you to select each individual file for upload, and limits uploads to 20 photos at a time.

News

Mar 25, 2006: KodakLoader released

2007-09-16 Update: Just found out about the Firefox Companion for Kodak EasyShare Gallery. This tool provides a great solution for Linux users, and a preferable solution to my kodakloader tool below, as it is better maintained.

After trying out a few services for printing digital photos, we've settled on KodakGallery.com. The prices are comparable with other services, but most importantly the quality is good and the colours are accurate (unfortunately this can't be taken for granted).

Unfortunately, Kodak Gallery doesn't provide an upload tool for Linux, so the only option is to use their web interface. This is fine for a few files, but for large batches (100 photos or more), it could take an hour to select each of the files, and would require uploading in 5 batches. Clearly not much fun.

To make this process easier, I spent a few hours writing a graphical interface I'm calling KodakLoader, which makes it much more convenient to uploading files. Now that it's mostly complete, I'm releasing it.

This was a nice opportunity to play with gtk2, which I don't often have opportunity to do. Kudos to the pygtk team for the excellent python bindings and superb documentation.

I used John J. Lee's mechanize, ClientForm and ClientCookie modules to emulate a browser. Hopefully this won't break too often if they rename URLs and links (KodakLoader does some screen-scraping to read out existing photo albums). I'd expect that Kodak Gallery has a soap or xmlrpc interface (which their ofoto software uses), so it'd be great if they were nice enough to provide some documentation about this (I haven't asked, but am considering doing so).

Probably the single largest hurdle was figuring out how to report accurate progress for the file upload, as the actual upload is buried within mechanize, urllib and httplib. Once I was able to figure out the twisty maze, it didn't take too much code to implement. I used some hooks to provide a few alternate classes, which enabled me to break up the transfer into chunks and invoke a callback occasionally.

Posted by Jason Hildebrand <jason@opensky.ca> Saturday Mar 25, 2006 at 1:38 PM | Comments (312) | Trackbacks (0)

Mar 25, 2006: KodakLoader released

2007-09-16 Update: Just found out about the Firefox Companion for Kodak EasyShare Gallery. This tool provides a great solution for Linux users, and a preferable solution to my kodakloader tool below, as it is better maintained.

After trying out a few services for printing digital photos, we've settled on KodakGallery.com. The prices are comparable with other services, but most importantly the quality is good and the colours are accurate (unfortunately this can't be taken for granted).

Unfortunately, Kodak Gallery doesn't provide an upload tool for Linux, so the only option is to use their web interface. This is fine for a few files, but for large batches (100 photos or more), it could take an hour to select each of the files, and would require uploading in 5 batches. Clearly not much fun.

To make this process easier, I spent a few hours writing a graphical interface I'm calling KodakLoader, which makes it much more convenient to uploading files. Now that it's mostly complete, I'm releasing it.

This was a nice opportunity to play with gtk2, which I don't often have opportunity to do. Kudos to the pygtk team for the excellent python bindings and superb documentation.

I used John J. Lee's mechanize, ClientForm and ClientCookie modules to emulate a browser. Hopefully this won't break too often if they rename URLs and links (KodakLoader does some screen-scraping to read out existing photo albums). I'd expect that Kodak Gallery has a soap or xmlrpc interface (which their ofoto software uses), so it'd be great if they were nice enough to provide some documentation about this (I haven't asked, but am considering doing so).

Probably the single largest hurdle was figuring out how to report accurate progress for the file upload, as the actual upload is buried within mechanize, urllib and httplib. Once I was able to figure out the twisty maze, it didn't take too much code to implement. I used some hooks to provide a few alternate classes, which enabled me to break up the transfer into chunks and invoke a callback occasionally.

Posted by Jason Hildebrand <jason@opensky.ca> Saturday Mar 25, 2006 at 1:38 PM | Comments (6) | Trackbacks (0)