Find and scrape any company on Earth.
invisible_core
Pure config for a patched Firefox stealth profile - zero Playwright dependency.
seed → fingerprint profile → Firefox prefs, plus patched-binary download,
proxy config, and geo/timezone resolution. Importing it does not start a browser,
which is the point: the same fingerprint config backs an automation wrapper and a
desktop profile manager without either depending on the other.
The shared foundation used by:
- invisible_playwright - the
Playwright automation wrapper (
InvisiblePlaywright). - invisible_firefox - the antidetect profile manager (launches the binary directly).
The engine itself lives in firefox_antidetect_patch, a Firefox patched at the C++ source level so the fingerprint is produced by the browser instead of injected into the page.
pip install invisible-core
from invisible_core import generate_profile, translate_profile_to_prefs, ensure_binary
profile = generate_profile(seed=42) # deterministic Bayesian fingerprint
prefs = translate_profile_to_prefs(profile) # dict of Firefox user prefs
binary = ensure_binary() # path to the patched Firefox binary
Same seed → same fingerprint, every time.
What the fields actually mean
Which surfaces a browser fingerprint is made of, what each one gives away, and why consistency between them matters more than any single value, is written up at feder-cr.github.io/invisible_playwright. Those pages are about the problem, not about this package, and several of them record something we got wrong first. A few that document the exact fields this package generates:
- Pinning fingerprint fields -
how
pin=interacts with the Bayesian sampler, and which combinations it refuses because they don't occur on real hardware. - How to make Linux and macOS report real Windows fonts -
the font side of
generate_profile, and why the family list is bundled rather than sampled from the host. - Canvas and WebGL fingerprints, identical across OSes - why the same seed produces a byte-identical hash regardless of what's actually running underneath.
- Playwright timezone does not match the proxy IP - the surfaces this package's geo/timezone resolution has to keep in agreement.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file invisible_core-20.14.0.tar.gz.
File metadata
- Download URL: invisible_core-20.14.0.tar.gz
- Upload date:
- Size: 396.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
636cfaa98b02ef0e5b94d8b12e1dbfcc8ef22049d1c38d4cfcf9ef9ea28bc281
|
|
| MD5 |
b31d43aaf428424c024f7ae72bababed
|
|
| BLAKE2b-256 |
98bb41a2d530bdec299544b7b83bab0d7d5ffb179ff260c850790bd6b82a2a02
|
File details
Details for the file invisible_core-20.14.0-py3-none-any.whl.
File metadata
- Download URL: invisible_core-20.14.0-py3-none-any.whl
- Upload date:
- Size: 213.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
abecd273a86c82454c928d31275399a23dfafd84e06be33facdc85c1d1a812f3
|
|
| MD5 |
6b284ebc060c573d6a6997e22ad8155d
|
|
| BLAKE2b-256 |
6de83ce5e0d1783f6b4a5304fd621adbffde47778b3ab4ce4f06e9229f262f73
|