|
|
Thread Tools | Display Modes |
|
#1
|
|
|
Major grins
|
smdown.pl - Unix command-line album downloader --> now OS X compatible!
Hi -- a while back I wrote a quick and dirty album downloader in Perl that scraped the HTML from your albums, grabbed links to the originals, and used curl to download the images.
One drawback to the hack was that it didn't get your files back to their original filename. Well, I finally sat down, figured out this Smugmug API thing, and wrote myself a new version. Basically it works like this: smdown.pl --login login --password password http://your.smugmug.com/album If you use John Ruttenberg's great sm_tool.py for uploading, your .smugmugrc file with login: and password: should work for smdown.pl as well, meaning you won't have to use --login and --password every time you call this script. It requires a few fairly standard Perl modules (XML::Simple, Getopt::Long and File::Spec) and it makes calls to curl to actually talk to the Smugmug website. These come standard on most Linux/FreeBSD boxes, as well as OS X. You might be able to get this script to work in Windows as well, but I don't have the time nor inclination to test this. Here's the link: http://www.darryl.com/smdown/ Feedback welcome. Enjoy! Last edited by darryl; Nov-15-2006 at 11:45 PM. Reason: added OS X support |
|
|
|
|
#2
|
|
|
technicolored
|
Hey Darryl,
I have written a fair bit of scraping stuff in perl but not for smugmug, I am interested to know why did decided to use curl in of something like LWP, which is part of the perl distribution ? Cheers, David |
|
|
|
|
#3
|
|
|
technicolored
|
Also, you are using the old api endpoints...
https://api.SmugMug.com/hack/rest/beta.mg?method=smugmug.login.withPassword&EmailAdd ress=$login&Password=$password&Version=1.1.1&APIKe y=$apikey https://api.SmugMug.com/hack/rest/beta.mg?method=smugmug.albums.getInfo&SessionID=$s essionid&AlbumID=$albumid https://api.SmugMug.com/hack/rest/beta.mg?method=smugmug.images.get&SessionID=$sessi onid&AlbumID=$albumid&Heavy=1 https://api.SmugMug.com/hack/rest/beta.mg?method=smugmug.logout&SessionID=$sessionid all become... https://api.SmugMug.com/hack/rest/1.1.1/?method=smugmug.login.withPassword&EmailAddress=$l ogin&Password=$password&APIKey=$apikey https://api.SmugMug.com/hack/rest/1.1.1/?method=smugmug.albums.getInfo&SessionID=$sessioni d&AlbumID=$albumid https://api.SmugMug.com/hack/rest/1.1.1/?method=smugmug.images.get&SessionID=$sessionid&Al bumID=$albumid&Heavy=1 https://api.SmugMug.com/hack/rest/1.1.1/?method=smugmug.logout&SessionID=$sessionid note, you can drop the Version parameter from the login method. Cheers, David |
|
|
|
|
#4
|
||
|
Major grins
|
Quote:
|
|
|
|
||
|
#5
|
||
|
Major grins
|
Quote:
Also, I think like how curl displays stats about download speed and status. Saves me from having to write progress bars, etc. :-} --Darryl |
|
|
|
||
|
#6
|
||
|
technicolored
|
Quote:
|
|
|
|
||
|
#7
|
||
|
Major grins
|
Quote:
Anyways, lost my Album titles for a little bit back there. I probably should do a bit more error checking. :-} --Darryl |
|
|
|
||
|
#8
|
|
|
Major grins
|
Hi all...
Well, I finally got around to trying my script on my OS X box, and lo and behold, XML::Simple isn't installed by default. Well, phooey. So I hacked it to work without a real XML parser. Suuuuper-hackish, but hey, it works for me. :-} http://www.darryl.com/smdown/ Grab the one named, smdown-noxml.txt and save it as smdown.pl --Darryl |
|
|
|
| Tell The World! | |
| Thread Tools | |
| Display Modes | |
|
|