Download all of the pictures from a SmugMug user, including password-protected users (you must know the password). This method is slightly inefficient, but works without requiring a SmugMug API key or any other information.
- Install Python 3
- Clone this repository or download it as a zip
- Install the requirements:
pip install -r requirements.txt
- NOTE: If you are on Linux, you will probably need to type
pip3
andpython3
instead
- Run
python smdl.py -u USERNAME
and it will begin downloading your pictures into separate folders in the default output directory. The username is what is found in the URL, i.e. USERNAME.smugmug.com. - Some SmugMug sites are organized with folders and hierarchy; if you would like to restrict your download to certain folders, you can directly put the relevant path into the username (USERNAME.smugmug.com/a/b/c would become
-u USERNAME/a/b/c
). - To specify the output directory, use the
-o
flag:python smdl.py -u USERNAME -o output
- If the user requires an unlock password, you must # using the password in your web browser, then copy over the SMSESS cookie. In Google Chrome, you can view your cookies by pressing
Ctrl-Shift-I
, then go to the Application tab, go to the Cookies dropdown, and click on https://USERNAME.smugmug.com. Then copy the value of the SMSESS cookie. You can then paste this cookie as an argument:python smdl.py -u USERNAME -s xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
- For a full list of command-line options, run
python smdl.py -h
, or see below:
usage: smdl.py [-h] [-s SESSION] -u USER [-o OUTPUT] [--albums ALBUMS]
SmugMug Downloader
optional arguments:
-h, --help show this help message and exit
-s SESSION, --session SESSION
session ID (required if user is password protected); log
in on a web browser and paste the SMSESS cookie
-u USER, --user USER username (from URL, USERNAME.smugmug.com)
-o OUTPUT, --output OUTPUT
output directory
--albums ALBUMS specific album names to download, split by $. Defaults
to all. Wrap in single quotes to avoid shell variable
substitutions. (e.g. --albums 'Title 1$Title 2$Title 3')