Skip to main content

HBrowser (hbrowser)

Setup

Tor Proxy (Optional)

HBrowser can route all traffic through the Tor network for IP privacy. If Tor Browser is installed, HBrowser will automatically detect and use it. To install:

  1. Download and install from https://www.torproject.org/download/
  2. HBrowser will automatically locate the tor binary from the default installation path:
    • macOS: /Applications/Tor Browser.app/Contents/MacOS/Tor/tor
    • Linux: /usr/bin/tor
    • Windows: Searches common installation paths (Desktop, AppData, Program Files)
  3. If Tor Browser is not installed, HBrowser will use a direct connection instead.
  4. To force disable Tor even when installed, set USE_TOR=0.
  5. If your Tor Browser is installed in a non-standard location, set the TOR_BINARY_PATH environment variable.

FlareSolverr (Optional)

HBrowser can use FlareSolverr to automatically solve both Cloudflare's page-level managed challenge and the Turnstile widget embedded in the Forums login form. Embedded Turnstile support requires FlareSolverr 3.5.0 or newer. Set FLARESOLVERR_URL to the instance's /v1 endpoint, for example http://127.0.0.1:8191/v1.

HBrowser keeps one persistent FlareSolverr browser across the managed challenge and login Turnstile so both steps use the same browser identity and clearance. That identity must also share the automated browser's public route. HBrowser therefore disables FlareSolverr when Tor or a residential proxy is active unless a future integration can configure the same sticky route on both browsers.

Environment Variables

HBrowser requires the following environment variables:

  • EH_USERNAME: Your E-Hentai account username
  • EH_PASSWORD: Your E-Hentai account password
  • HBROWSER_LOG_LEVEL (optional): Control logging verbosity (DEBUG, INFO, WARNING, ERROR). Default: INFO
  • HBROWSER_LOG_DIR (optional): Store HTML failure diagnostics in this directory. Default: a log directory next to the main script
  • USE_TOR (optional): Set to 0 to disable Tor proxy even when Tor Browser is installed. Default: auto-detect
  • TOR_BINARY_PATH (optional): Custom path to the tor binary if not installed in the default location
  • FLARESOLVERR_URL (optional): FlareSolverr 3.5.0+ /v1 endpoint used to auto-solve Cloudflare managed challenges and the Forums login Turnstile. Ignored when Tor or a residential proxy is active

Set the environment variables before running the script:

Bash/Zsh:

export EH_USERNAME=your_username
export EH_PASSWORD=your_password
export HBROWSER_LOG_LEVEL=INFO          # Optional
export HBROWSER_LOG_DIR=/path/to/log    # Optional: shared diagnostic directory
export USE_TOR=0                        # Optional: disable Tor proxy
export TOR_BINARY_PATH=/path/to/tor     # Optional: custom tor path
export FLARESOLVERR_URL=http://127.0.0.1:8191/v1  # Optional: auto-solve Cloudflare

Fish:

set -x EH_USERNAME your_username
set -x EH_PASSWORD your_password
set -x HBROWSER_LOG_LEVEL INFO          # Optional
set -x USE_TOR 0                        # Optional: disable Tor proxy
set -x TOR_BINARY_PATH /path/to/tor     # Optional: custom tor path
set -x FLARESOLVERR_URL http://127.0.0.1:8191/v1  # Optional: auto-solve Cloudflare

Windows Command Prompt:

set EH_USERNAME=your_username
set EH_PASSWORD=your_password
set HBROWSER_LOG_LEVEL=INFO
set USE_TOR=0
set TOR_BINARY_PATH=C:\path\to\tor.exe
set FLARESOLVERR_URL=http://127.0.0.1:8191/v1

Windows PowerShell:

$env:EH_USERNAME="your_username"
$env:EH_PASSWORD="your_password"
$env:HBROWSER_LOG_LEVEL="INFO"
$env:USE_TOR="0"
$env:TOR_BINARY_PATH="C:\path\to\tor.exe"
$env:FLARESOLVERR_URL="http://127.0.0.1:8191/v1"

When a Cloudflare or CAPTCHA challenge appears during login, HBrowser will first try FlareSolverr (if configured and applicable), then fall back to waiting for you to solve it manually in the browser window. Set headless=False when initialising the driver to see the browser window.

Logging

HBrowser uses Python's built-in logging module. You can control the log level using the HBROWSER_LOG_LEVEL environment variable:

  • DEBUG: Detailed information for diagnosing problems (most verbose)
  • INFO: Confirmation that things are working as expected (default)
  • WARNING: Something unexpected happened, but the software is still working
  • ERROR: A serious problem that prevented a function from executing

Example:

# Set log level to DEBUG for detailed output
export HBROWSER_LOG_LEVEL=DEBUG
python your_script.py

# Set log level to WARNING to see only warnings and errors
export HBROWSER_LOG_LEVEL=WARNING
python your_script.py

On browser failures, HBrowser saves uniquely named HTML diagnostics instead of overwriting a single error.txt. Page diagnostics and search diagnostics each retain at most 20 files and 20 MiB total, with each file capped at 2 MiB. On POSIX systems these files are created with owner-only permissions. Because page HTML can still contain account-specific data, keep HBROWSER_LOG_DIR in a private location.

Usage

Gallery searches use an explicit request and return a bounded, ordered result. An exact GID lookup only reports a missing gallery after two independent empty searches:

import asyncio

from hbrowser import (
    ConfirmedGalleryMissing,
    ExHDriver,
    GalleryFound,
    SearchRequest,
)


async def main() -> None:
    async with ExHDriver() as driver:
        result = await driver.search(
            SearchRequest(
                scope_url="https://exhentai.org/",
                query="artist:test",
            )
        )
        print(result.galleries, result.pages_visited)

        match await driver.lookup_gid(349189):
            case GalleryFound(gallery=gallery):
                print(gallery.url)
            case ConfirmedGalleryMissing(confirmations=confirmations):
                print(f"Missing after {confirmations} confirmations")


if __name__ == "__main__":
    asyncio.run(main())

HentaiVerse automation is provided separately by HVBrowser.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hbrowser-0.35.1.tar.gz (82.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hbrowser-0.35.1-py3-none-any.whl (71.3 kB view details)

Uploaded Python 3

File details

Details for the file hbrowser-0.35.1.tar.gz.

File metadata

  • Download URL: hbrowser-0.35.1.tar.gz
  • Upload date:
  • Size: 82.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hbrowser-0.35.1.tar.gz
Algorithm Hash digest
SHA256 20cde795f10ec4ceca6fa4a66af447ec48ecb937aec8c6f892d8fbd9bce54625
MD5 096a047d40701e88915fa1152c859dfc
BLAKE2b-256 806ad9d83a3994ccab6f3c7325a27ccfefdfe5bdf978d0d7f6848c3b13ce8cfd

See more details on using hashes here.

Provenance

The following attestation bundles were made for hbrowser-0.35.1.tar.gz:

Publisher: publish.yml on Kuan-Lun/hbrowser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file hbrowser-0.35.1-py3-none-any.whl.

File metadata

  • Download URL: hbrowser-0.35.1-py3-none-any.whl
  • Upload date:
  • Size: 71.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for hbrowser-0.35.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bf650562784319c51217d1a83309b9e35d51aba66bf6f8b67926de8e3c680d22
MD5 412ea279dc21bda4ccf0238c86498654
BLAKE2b-256 ac87ca7808e0c2e47995e5777f688ccce0f1cd3cb35b3eebe16a16ed61cf2c11

See more details on using hashes here.

Provenance

The following attestation bundles were made for hbrowser-0.35.1-py3-none-any.whl:

Publisher: publish.yml on Kuan-Lun/hbrowser

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.44.0

2 files

0.43.1

2 files

0.42.9

2 files

0.42.7

2 files

0.42.5

2 files

0.42.4

2 files

0.42.3

2 files

0.42.2

2 files

0.42.1

2 files

0.41.0

2 files

0.40.3

2 files

0.40.1

2 files

0.40.0

2 files

0.39.0

2 files

0.38.0

2 files

0.37.0

2 files

0.36.12

2 files

0.36.11

2 files

0.36.10

2 files

0.36.9

2 files

0.36.8

2 files

0.36.7

2 files

0.36.6

2 files

0.36.5

2 files

0.36.4

2 files

0.36.3

2 files

0.36.2

2 files

0.36.0

2 files

0.35.5

2 files

0.35.4

2 files

0.35.3

2 files

0.35.2

2 files

This release

0.35.1 This release

2 files

0.35.0

2 files

0.34.2

2 files

0.34.1

2 files

0.34.0

2 files

0.33.13

2 files

0.33.12

2 files

0.33.11

2 files

0.33.10

2 files

0.33.9

2 files

0.33.8

2 files

0.33.7

2 files

0.33.6

2 files

0.33.5

2 files

0.33.4

2 files

0.33.3

2 files

0.33.2

2 files

0.33.1

2 files

0.33.0

2 files

0.32.0

2 files

0.31.2

2 files

0.31.1

2 files

0.31.0

2 files

0.30.13

2 files

0.30.12

2 files

0.30.11

2 files

0.30.10

2 files

0.30.8

2 files

0.30.7

2 files

0.30.6

2 files

0.30.5

2 files

0.30.4

2 files

0.30.3

2 files

0.30.2

2 files

0.30.1

2 files

0.30.0

2 files

0.29.4

2 files

0.29.3

2 files

0.29.2

2 files

0.29.1

2 files

0.29.0

2 files

0.28.1

2 files

0.28.0

2 files

0.27.6

2 files

0.27.5

2 files

0.27.4

2 files

0.27.3

2 files

0.27.2

2 files

0.27.1

2 files

0.27.0

2 files

0.26.24

2 files

0.26.23

2 files

0.26.22

2 files

0.26.21

2 files

0.26.20

2 files

0.26.19

2 files

0.26.18

2 files

0.26.17

2 files

0.26.16

2 files

0.26.15

2 files

0.26.14

2 files

0.26.13

2 files

0.26.12

2 files

0.26.11

2 files

0.26.10

2 files

0.26.9

2 files

0.26.8

2 files

0.26.7

2 files

0.26.6

2 files

0.26.5

2 files

0.26.4

2 files

0.26.3

2 files

0.26.2

2 files

0.26.1

2 files

0.26.0

2 files

0.25.11

2 files

0.25.10

2 files

0.25.9

2 files

0.25.8

2 files

0.25.7

2 files

0.25.6

2 files

0.25.5

2 files

0.25.4

2 files

0.25.3

2 files

0.25.2

2 files

0.25.1

2 files

0.25.0

2 files

0.24.8

2 files

0.24.7

2 files

0.24.6

2 files

0.24.5

2 files

0.24.4

2 files

0.24.3

2 files

0.24.2

2 files

0.24.1

2 files

0.24.0

2 files

0.23.9

2 files

0.23.8

2 files

0.23.7

2 files

0.23.6

2 files

0.23.5

2 files

0.23.4

2 files

0.23.3

2 files

0.23.2

2 files

0.23.1

2 files

0.23.0

2 files

0.22.17

2 files

0.22.16

2 files

0.22.15

2 files

0.22.14

2 files

0.22.13

2 files

0.22.12

2 files

0.22.11

2 files

0.22.10

2 files

0.22.9

2 files

0.22.8

2 files

0.22.7

2 files

0.22.6

2 files

0.22.5

2 files

0.22.4

2 files

0.8.24

2 files

0.8.23

2 files

0.8.22

2 files

0.8.20

2 files

0.8.19

2 files

0.8.18

2 files

0.8.17

2 files

0.8.16

2 files

0.8.15

2 files

0.8.14

2 files

0.8.13

2 files

0.8.12

2 files

0.8.11

2 files

0.8.10

2 files

0.8.9

2 files

0.8.8

2 files

0.8.7

2 files

0.8.6

2 files

0.8.5

2 files

0.7.4

2 files

0.7.3

2 files

0.7.2

2 files

0.7.1

2 files

0.7.0

2 files

0.6.4

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

0.5.18

2 files

0.5.17

2 files

0.5.16

2 files

0.5.15

2 files

0.5.14

2 files

0.5.13

2 files

0.5.12

2 files

0.5.11

2 files

0.5.10

2 files

0.5.9

2 files

0.5.8

2 files

0.5.7

2 files

0.5.6

2 files

0.5.5

2 files

0.5.4

2 files

0.5.3

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.11

2 files

0.4.10

2 files

0.4.9

2 files

0.4.8

2 files

0.4.7

2 files

0.4.6

2 files

0.4.5

2 files

0.4.4

2 files

0.4.3

2 files

0.4.2

2 files

0.4.1

2 files

0.4.0

2 files

0.3.4

2 files

0.3.3

2 files

0.3.2

2 files

0.3.1

2 files

0.3.0

2 files

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.0

2 files

0.0.10

2 files

0.0.9

2 files

0.0.8

2 files

0.0.7

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page