Skip to content

xtream1101/humblebundle-downloader

Repository files navigation

Humble Bundle Downloader

PyPI PyPI

Download all of your content from your Humble Bundle Library!

The first time this runs it may take a while because it will download everything. After that it will only download the content that has been updated or is missing.

Features

  • support for Humble Trove (--trove flag)
  • downloads new and updated content from your Humble Bundle Library on each run (only check for updates if using --update)
  • cli command for easy use (downloading will also work on a headless system)
  • works for SSO and 2FA accounts
  • optional progress bar for each item downloaded (--progress flag)
  • optional filter by file types using an include or exclude list (--include/--exclude flag)
  • optional filter by platform types like video, ebook, etc... (--platform flag)

Install

Using PIP

pip install humblebundle-downloader

Using docker

Remember to mount your download directory in the container using dockers -v argument. docker run ghcr.io/xtream1101/humblebundle-downloader -h

Instructions

1. Getting cookies

First thing to do is get your account cookies. This can be done by getting a browser extension that lets you see or export your cookies.

  • Method 1 (recommended)

    • Get the value of the cookie called _simpleauth_sess and pass that value using -s 'COOKIE_VALUE'
    • Note: The quotes in the cookie value are part of the value, you might need to wrap the entire value (including double quotes) in single quotes. Some suggestions for common issues can be found in issue #50
  • Method 2

    • Export the cookies in the Netscape format using an extension.
      If your exported cookie file is not working, it may be a formatting issue. This can be fixed by running the command curl -b cookies.orig.txt --cookie-jar cookies.txt http://bogus

2. Downloading your library

Use the following command to download your Humble Bundle Library:
hbd --cookie-file cookies.txt --library-path "Downloaded Library" --progress
If using the docker image, exclude the hbd part of the command

This directory structure will be used:
Downloaded Library/Purchase Name/Item Name/downloaded_file.ext

Notes

  • Inside your library folder a file named .cache.json is saved and keeps track of the files that have been downloaded. This way running the download command again pointing to the same directory will only download new or updated files.
  • Use --help with all hbd commands to see available options
  • Find supported platforms for the --platform flag by visiting your Humble Bundle Library and look under the Platform dropdown
  • Download select bundles by using the -k or --keys flag. Find these keys by going to your Purchases section, click on a products and there should be a downloads?key=XXXX in the url.