{"id":45905066,"url":"https://github.com/Tokariew/hb_downloader","last_synced_at":"2026-03-13T14:01:19.018Z","repository":{"id":44460770,"uuid":"263391338","full_name":"Tokariew/hb_downloader","owner":"Tokariew","description":"Simple python script to download purchased items from humble bundle","archived":false,"fork":false,"pushed_at":"2025-09-19T20:52:15.000Z","size":57,"stargazers_count":4,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-09-19T21:29:20.124Z","etag":null,"topics":["downloader","hoarding","python"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Tokariew.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-12T16:28:22.000Z","updated_at":"2025-09-19T20:52:19.000Z","dependencies_parsed_at":"2025-09-19T20:36:27.999Z","dependency_job_id":"da7fbcc0-0dd0-4c15-b892-92adaf5ef287","html_url":"https://github.com/Tokariew/hb_downloader","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/Tokariew/hb_downloader","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokariew%2Fhb_downloader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokariew%2Fhb_downloader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokariew%2Fhb_downloader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokariew%2Fhb_downloader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Tokariew","download_url":"https://codeload.github.com/Tokariew/hb_downloader/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Tokariew%2Fhb_downloader/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30467872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-13T11:00:43.441Z","status":"ssl_error","status_checked_at":"2026-03-13T11:00:23.173Z","response_time":60,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["downloader","hoarding","python"],"created_at":"2026-02-28T02:00:38.272Z","updated_at":"2026-03-13T14:01:18.944Z","avatar_url":"https://github.com/Tokariew.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# hb_downloader\n\nSimple script to download purchases from humble bundle account.\n\nBy default, script download multiple files at once, starting with the\nbiggest files. Script will only download files specified by platform\nparameter. Platform parameter is based on platform selection in [HB\nLibrary](https://www.humblebundle.com/home/library).\n\nScript only download files once even if it was purchased in multiple\nbundles. It will be saved in the oldest bundle/purchase folder.\n\nTo not download files multiple times, hash of file is computed and\ncompared with one provided by HB, so if HB will update files it will\noverwrite existing one.\n\nBy default, file are saved in following folder structure:\n\nplatform/date of purchase bundle name/item name\n\nThis structure helps with importing e-books into calibre, so each e-book\nwill be in separate folder with multiple available formats.\n\n## Requirements\n\nPython in version 3.x or higher, accessible in command line\n\nScript require few additional non-standard packages. Install them with\n\n``` bash\npip install python-slugify ruamel.yaml requests loguru --user\n```\n\nFor Windows systems script require removing 260 path name limit,\notherwise download of some files will fail or script will try to\nredownload files with long file names.\n\n## Usage\n\nMake config.yaml file based on example_config.yaml and provide\n`_simpleauth_sess` cookie from browser between apostrophes.\n\nProviding switches for download_limit and purchase_limit ignore default\nvalues from config.yaml file.\n\n``` bash\nusage: hb_downloader.py [-h] [-l X] [-n Y] [-s] [-w] [-m] platform [platform ...]\n\nDownload files from Humble Bundle, based on selected platform\n\npositional arguments:\n  platform              platform to download, valid platforms are: ['android', 'audio', 'ebook', 'linux', 'mac', 'windows', 'video',\n                        'other', 'nogames', 'all']\n\noptions:\n  -h, --help            show this help message and exit\n  -l, --download_limit X\n                        Download X files in parallel\n  -n, --purchase_limit Y\n                        Download only from Y newest purchases, 0 for all --default\n  -s, --smallest_first  Download smallest files first\n  -w, --keep_wrong_size\n                        Download files with wrong size and keep them\n  -m, --keep_wrong_md5sum\n                        keep files with wrong md5sum them\n```\n\nYou can specify multiple platforms to download, for example to download\nall audio albums, and all e-book files:\n\n``` bash\npython hb_downloader.py audio ebook\n```\n\nTo download all files from HB account use:\n\n``` bash\npython hb_downloader.py all\n```\n\nTo download all files, but not games:\n\n    python hb_downloader.py nogames\n\nBy default, script download multiple files at once, starting with the\nbiggest files. You can limit maximum parallel downloads by specifying\ndownload-limit, to download 6 audio files at once use:\n\n    python hb_downloader.py -l 6 audio\n\nTo download only files from the latest purchase use purchase-limit\noption, for example to download only e-books from last 5 bundles use:\n\n    python hb_downloader.py -n 5 ebook\n\nAbove example will skip files if they were in previous bundles\npurchased, so it recommended use is to update downloaded collection by\nnewest purchased bundles not downloaded before. If purchase-limit option\nis omitted all previously downloaded files will have their hash\nrecomputed which will slow down overall process of downloading.\n\n### Keep files flags\n\nAdded flags to keep files with wrong reported sizes and hashes. Humble no longer\nprovide md5sum on their websites, when downloading, so i stopped nagging them\nthat sums and/or sizes are incorrect. So to keep downloading all books I added\nsuch flag.\nThere are some files with wrong size, but correct hash, but most of them will\nhave both wrong. So you probably want to use both flags.\n\n### Trove\n\nIn 2020-11-01 ability to download trove games was added.\n\nBy default script don't try to download trove games, it can be enable in\nconfig file or by using --trove switch. Trove games are inside\nwindows/linux/mac folder in *2010-11-24 trove* directory. If reported\nmd5sum for trove games is identical to games from other purchase, then\nit will be put in corresponding purchase folder and not trove directory.\n\n**Script don't have ability to download only trove games**\n\nTrove support was dropped on 2022-02-15, because Humble Bundle no longer\nprovide it.\n\n### podman/docker\n\nOn 2022-08-08 created podman/docker image for easy use.\n\nTo download image use:\n\n``` bash\npodman pull ghcr.io/tokariew/hb_downloader:latest\n```\n\nBasic run looks like:\n\n``` bash\npodman run -it --rm -v .:/srv:z hb_downloader:latest all\n```\n\nAbove command at first run will create `config.yaml` file and fail, edit\nthe file by providing `session_cookie` and run it again. Don't edit\n`download_folder` unless you properly change container volume. Files\nwill be downloaded into current folder. You can change it by changing\nvolume location for example:\n\n``` bash\npodman run -it --rm -v ~/Downloads/hb:/srv:z hb_downloader:latest all\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTokariew%2Fhb_downloader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FTokariew%2Fhb_downloader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FTokariew%2Fhb_downloader/lists"}