Photobox Downloader V2 is now available, even easier to download all your photos. Blog post below refers to the original (V1) version.

During the week I found out that my wife had a bunch (over 2.4K!) of photos on PhotoBox.ie that were not part of our family archive. This weekend I dug around PhotoBox website and could no way to download an entire album, it was only possible to download photos individually! With 2.4K+ of photos, that is a lot of clicking!

As Larry Wall said the, a good developer, is a lazy developer! Thus I created a NodeJS module (photobox-downloader) that makes it easy to access an download individual photos or an entire album (or everything!) easily. With the module I was able to backup all of my wife’s photos in about 5 minutes, no clicking needed!

Photobox Downloader will auto scan your album list and then can automatically downloaded every photo. Optionally you can download only specific files or albums.

Built with Request for making the HTTP requests, Cheerio for parsing of the HTML, Async for managing the asynchronous control flow, as well as Progress for showing a fancy progress bar.

I have open sourced the code and it is available on GitHub, I also published it as a NodeJS module, so you can find it in the NPM registry.

Installation

$ npm install photobox-downloader

Usage

Screenshot

photobox-downloader

 

If you run into any issues running the module just give me a shout!


5 Comments » for Photobox photo downloader/backup tool
  1. Ged says:

    Hello Robert,
    My name’s Ged and my wife and I have encountered the same problem as you did. Yours is the only solution that is to be found after a great deal of searching, but I’m obviously not code savvy enough to understand how it can be used. I’ve managed to get my authentification cookie ( that wasn’t too hard thanks to your explanations but the rest has me stumped.
    I’m using a laptop with windows 8.1 (my wife has a mac)
    Should I be using the command prompt? Should I be using a combination of github and gitshell?
    When I copy your code into either, having first changed the photoshop site from .ie to the French .fr I get a load of error messages.
    Could you possibly give an explanation for noobs?

    Thanks,

    Ged

  2. Robert says:

    What is the exact error you are seeing? My guess is that either that the authentication cookie is not correct, or that you are not calling the script correctly. Let me know the error(s) and I can help further.

    • Ged says:

      Hi Robert,
      I downloaded and installed the new version, created a directory called pbox and entered my authentification code.
      The program ranand the following messages appeared:

      C:\Users\Ged>mkdir pbox

      C:\Users\Ged>pb-dl
      ===================================================================
      PhotoBox Downloader – Copyright 2015 Robert Kehoe – MIT Licensed
      ===================================================================

      This tool will download all your photos from your Photobox account.
      Usage instructions at: https://github.com/RobK/photobox-downloader

      :Photobox domain: (www.photobox.ie) http://www.photobox.fr
      :Authentication Cookie: ********************************
      :Folder where to save albums: (albums) pbox
      Logged into Photobox!
      Starting to download all albums and photos
      Processing album: instagram
      fs.js:751
      return binding.mkdir(pathModule._makeLong(path),
      ^
      Error: ENOENT, no such file or directory ‘C:\Users\Ged\AppData\Roaming\npm\node_
      modules\photobox-downloader\pbox\instagram’
      at Error (native)
      at Object.fs.mkdirSync (fs.js:751:18)
      at Object.module.exports.downloadPagePhotos (C:\Users\Ged\AppData\Roaming\np
      m\node_modules\photobox-downloader\lib\photobox.js:104:10)
      at C:\Users\Ged\AppData\Roaming\npm\node_modules\photobox-downloader\lib\pho
      tobox.js:212:18
      at C:\Users\Ged\AppData\Roaming\npm\node_modules\photobox-downloader\node_mo
      dules\async\lib\async.js:125:13
      at Array.forEach (native)
      at _each (C:\Users\Ged\AppData\Roaming\npm\node_modules\photobox-downloader\
      node_modules\async\lib\async.js:46:24)
      at Object.async.each (C:\Users\Ged\AppData\Roaming\npm\node_modules\photobox
      -downloader\node_modules\async\lib\async.js:124:9)
      at C:\Users\Ged\AppData\Roaming\npm\node_modules\photobox-downloader\lib\pho
      tobox.js:208:15
      at C:\Users\Ged\AppData\Roaming\npm\node_modules\photobox-downloader\lib\pho
      tobox.js:170:17

      All Greek to me unfortunately.

      Any idea where I went wrong?

      Yours,

      Ged

      • Robert says:

        It looks like it could not create the a folder called “instagram”. This is a little strange as it is an inbuilt function that is being called. You can try manually creating the folder. Open up a command prompt/console and enter following command:

        mkdir C:\Users\Ged\pbox\instagram
        

        Then try run the app again `pb-dl`. If that fails then send me an email (robert [at robertkehoe.com]). Also include the output of running “node -v” command from the console.

        Cheers,
        Robert

Leave a Reply

Your email address will not be published. Required fields are marked *

*