Can I do it in HTML learned in 1998?
August 13, 2013 8:08 AM   Subscribe

I need either an extremely specific browser add on or a computer script that does a strange and complicated (??) thing. I'd rather download a solution, but if someone can point me to a scripting language that will eventually do what I need it to I am willing to learn.

So, my parents' Kodak Pulse frame bit the bucket. Unsurprisingly, Kodak's customer service has been vastly unhelpful. The frame brand is important because:

1. They've gone bankrupt (and no wonder), so I can't just buy a replacement frame
2. The frame relies on a webservice (Kodak Pulse) to get photos
3. Those photos cannot be bulk-downloaded from this webservice
4. The only way to fix the frame is via hard reset. If you hard reset the frame, all of the photos are deleted from the webservice

We have foolishly been using the webservice as a backup*. There are 1000 photos on there that do not exist anywhere else.

It is possible to right-click-save-as the photos, however, they are displayed as thumbnails. When you hover over the thumbnail (not click, just hover), a javascript popup appears with a shrunken version of the full photo. If you right click THAT, you can open it in a new tab or save it. The full photo is downloaded.

This means that standard browser addon image grabbers don't work -- they simply nab the thumbnails.

So: is there a browser addon that can somehow get the images that appear in the popup? Is there a script out there for this? Is there a script that I can write for this?

I have macs and PCs and the option to install whatever Linux distros I might need. I have all of the major browsers and can download any minor browsers. Basically, I am willing to go very far in order to avoid rightclicksaveas x 1000.

*dear god of technology if you give me a solution to this I swear to you that I will never let photos go un-backed-up again
posted by AmandaA to Computers & Internet (23 answers total) 2 users marked this as a favorite
 
It might be possible to automate this - a look at the page source would help a lot. There'll be a URL of some kind in the JS that could be used to pull the photo straight down. Can you post a piece of any of it (or mefi mail it to me if you don't want to post it)?
posted by jquinby at 8:18 AM on August 13, 2013 [2 favorites]


Best idea I have offhand: Try to find a service that interfaces with Kodak Pulse, and use that to pull your stuff out, and extract it from there less-painfully. From a very quick google check something called Primadesk might do the trick - connecting to Kodak Pulse and then letting you do a bulk transfer of your photos out?
posted by Tomorrowful at 8:19 AM on August 13, 2013


there is often a consistant logic to the naming of thumbnails - ie if you have the url of the thumbnail you can find the url of the main image by applying the same process to each url.
posted by missmagenta at 8:20 AM on August 13, 2013


Maybe a macro recorder would work? I have had good luck with Macro Recorder from Jitbit.
posted by Ferrari328 at 8:20 AM on August 13, 2013


missmagenta: "there is often a consistant logic to the naming of thumbnails - ie if you have the url of the thumbnail you can find the url of the main image by applying the same process to each url."

My thoughts too. Figure out that the scheme and wrap it in wget or curl, iterate as necessary.
posted by jquinby at 8:21 AM on August 13, 2013


Hmm...someone posted some POC code showing what purports to be Kodak Pulse server-compatible code.
posted by jquinby at 8:25 AM on August 13, 2013 [1 favorite]


Response by poster: missmagenta & jquinby:

There is! The full photos are name, for example, 2~a~76514464-598e-4813-8f43-a202f37e1bb5~635084938145982861.jpg and the thumbs are named 2~t~76514464-598e-4813-8f43-a202f37e1bb5~635084938145982861.jpg
posted by AmandaA at 8:31 AM on August 13, 2013


Can you reliably fetch the full-size picture by crafting a URL which points to:

https://something/blah/foo/whatever/2~a~76514464-598e-4813-8f43-a202f37e1bb5~635084938145982861.jpg

...?

If you can, and the photographs increment by 1, it would not be difficult to iterate across all 1000 of them and download them with a Unix CLI widget like wget, curl or lwp-request.
posted by jquinby at 8:36 AM on August 13, 2013 [1 favorite]


That is, if the photos are:

2~a~76514464-598e-4813-8f43-a202f37e1bb5~635084938145982861.jpg
2~a~76514464-598e-4813-8f43-a202f37e1bb5~635084938145982862.jpg
2~a~76514464-598e-4813-8f43-a202f37e1bb5~635084938145982863.jpg

and so on. You'd just need to know where the count starts and stops - the first and last pictures.
posted by jquinby at 8:37 AM on August 13, 2013


You might be able to use HTTrack to download the complete page, although login might be an issue - I haven't used HTTrack in a while.
posted by backwards guitar at 8:40 AM on August 13, 2013


Response by poster: They don't seem to increment:

2~a~76514464-598e-4813-8f43-a202f37e1bb5~635084938145982861.jpg
2~a~226b8045-826f-4152-a0aa-b796fe9b73d1~634979241664242551.jpg

are the first two photos. I wonder if the numbers are just a random string?

Thanks for all of your help, you've already gotten me farther than I had gotten before!
posted by AmandaA at 8:44 AM on August 13, 2013


You could also offer to pay a high school kid and/or Mechanical Turk to do it manually, if you'd trust someone with the login credentials.
posted by Rock Steady at 8:50 AM on August 13, 2013


If this were me, this is what I'd probably do:

- Using firefox, write a greasemonkey script to record in local storage the URL of each picture that matches the format you've described
- Click "next photo" or whatever through your entire library (you could probably automate this with the greasemonkey script, too)
- Save the resulting list of URLs
- Run those URLs through wget (assuming access to the URLs doesn't require some sort of login)

If each individual URL is secured behind a login, you could probably plug the download list into a firefox plugin like DownThemAll instead of wget.
posted by toomuchpete at 8:52 AM on August 13, 2013


I could probably do this in 20 minutes if I actually had access to the source of one or two of these pages.
curl [page_with_thumbnail.html] > page.html
while (more pages) {
  grep [some pattern to find thumbnail url] page.html | perl -ne "$_ =~ s/some substitution/.../; print" | curl > image.jpg
  grep [some pattern to find next page] page.html | curl > page.html
}
roughly that.
posted by tylerkaraszewski at 8:59 AM on August 13, 2013 [4 favorites]


Wasn't the Kodak Pulse Gallery purchased by Shutterfly?

Are you accessing the photos from Shutterfly? If not, using the same email address for Kodak user registration will link/assign the photos from the Kodak account to the Shutterfly account. Five billion photos from 70 million users were moved from Kodak to Shutterfly.

Once they are on Shutterfly, you can simply request the full resolution photos be backed up to disc and mailed out. Full resolution downloads are not available, they are limited to 1600x1200.

Good luck!
posted by Leenie at 10:36 AM on August 13, 2013


There's nothing in those hex values that make meaningful strings to me. The only pattern I can see is that the first four digits of the last section look contiguous:
2~a~226b8045-826f-4152-a0aa-b796fe9b73d1~634979241664242551.jpg
2~a~76514464-598e-4813-8f43-a202f37e1bb5~635084938145982861.jpg

If the rest of the filename is a checksum or fingerprint, as it kind of looks like to me, you won't be able to reconstruct these strings without access to the original files.

I did find this, though: "If you had photos uploaded to a Kodak Gallery account, they were moved to Shutterfly and can be accessed with just a few clicks.". You may have to pay to receive archive DVDs of the full resolution pictures, but it sounds like your pictures should be safe. This link, too, might help: http://www.shutterfly.com/kodaknews/.
posted by scruss at 10:37 AM on August 13, 2013


(dammit, should've previewed ... Leenie got it)
posted by scruss at 10:48 AM on August 13, 2013


Response by poster: Thanks, scruss and Leenie, but Kodak Gallery and Kodak Pulse are actually two separate services. Pulse does not connect to Shutterfly.
posted by AmandaA at 10:52 AM on August 13, 2013


You should be able to collect the urls of the thumbnails from page source and edit it accordingly into your script.
posted by Obscure Reference at 11:12 AM on August 13, 2013


What tylerkarazewski said will work, but does require a UNIX/Linux command line interface. An option for Windows users is to install Cygwin, but that may be getting a little too deep into the rabbit hole. (You also need to poke through the page sources to decide the patterns to use in the matches.)

I can't do it in 20 minutes, because I don't know regular expressions very well, but I've seen similar things done.
posted by seyirci at 1:06 PM on August 13, 2013


If those links really are generated internally as JavaScript, it looks like a web automation tool like Selenium might be your only option.
posted by scruss at 1:26 PM on August 13, 2013


If those links really are generated internally as JavaScript, it looks like a web automation tool like Selenium might be your only option.

In that case you could do it as a throw-away chrome extension.
posted by tylerkaraszewski at 4:04 PM on August 13, 2013


tylerkaraszewski has the right idea. Unfortunately something like this isn't really for the faint of heart. Web browsers don't make it easy to bulk-download files, or else I'd say just use a GreaseMonkey/TamperMonkey script.

Possibly a very slightly more user-friendly solution would be to whip up something with BeautifulSoup in Python. But if you knew Python you'd probably already be doing that. (I don't know about Selenium but it might work too.)
posted by neckro23 at 7:55 AM on August 14, 2013


« Older Found old Palm wireless universal keyboard, do I...   |   Is my boyfriend gay? Newer »
This thread is closed to new comments.