|
2 | 2 | <a href="https://github.com/feder-cr/invisible_playwright"><img src="https://raw.githubusercontent.com/feder-cr/Jobs_Applier_AI_Agent_AIHawk/main/assets/invisible-playwright-banner.png" alt="invisible_playwright - the best undetectable browser" width="880"></a> |
3 | 3 | </p> |
4 | 4 |
|
5 | | -## Other projects |
| 5 | +<p align="center"> |
| 6 | + <a href="https://pypi.org/project/invisible-playwright/"><img src="https://img.shields.io/pypi/v/invisible-playwright?color=38f0c8&label=pypi" alt="PyPI"></a> |
| 7 | + <a href="https://pypi.org/project/invisible-playwright/"><img src="https://static.pepy.tech/badge/invisible-playwright" alt="Downloads"></a> |
| 8 | + <img src="https://img.shields.io/pypi/pyversions/invisible-playwright" alt="Python"> |
| 9 | + <img src="https://img.shields.io/github/license/feder-cr/invisible_playwright" alt="License"> |
| 10 | + <a href="https://github.com/feder-cr/invisible_playwright"><img src="https://img.shields.io/github/stars/feder-cr/invisible_playwright?style=social" alt="Stars"></a> |
| 11 | +</p> |
| 12 | + |
| 13 | +<h3 align="center">The best undetectable browser, open source.<br>An undetected Playwright on a real Firefox, patched at the source, that passes every bot detection test.</h3> |
| 14 | + |
| 15 | +## Why invisible_playwright? |
| 16 | + |
| 17 | +- **Undetected by design**: a real Firefox patched at the C++ source, so the fingerprint (navigator, screen, GPU/WebGL, canvas, fonts, audio, WebRTC) is set inside the engine, not injected into the page. No JS shim, no seam to read. |
| 18 | +- **Passes every bot detection test**: reCAPTCHA, hCaptcha and Cloudflare Turnstile score it as human. 5/5 detection suites. |
| 19 | +- **Human actions**: every click, hover and drag follows a Bezier-curve mouse path with real timing and trusted events, no teleporting cursor. |
| 20 | +- **100% Playwright-compatible**: sync and async, all methods, zero API changes. Switching from Playwright is two lines. |
| 21 | +- **Reproducible**: seed a run and get the same GPU, canvas hash and audio context every time. |
| 22 | +- **Proxies built in**: socks5, socks4, http and https, with DNS routed through the proxy so there is no local leak. |
| 23 | +- **Open source**. |
| 24 | + |
| 25 | +## Quick start |
| 26 | + |
| 27 | +```bash |
| 28 | +pip install invisible-playwright |
| 29 | +python -m invisible_playwright fetch |
| 30 | +``` |
| 31 | + |
| 32 | +```python |
| 33 | +from invisible_playwright import InvisiblePlaywright |
| 34 | + |
| 35 | +with InvisiblePlaywright() as browser: |
| 36 | + page = browser.new_page() |
| 37 | + page.goto("https://example.com") |
| 38 | + page.click("#submit") # mouse arcs to the button on a Bezier curve |
| 39 | +``` |
6 | 40 |
|
7 | | -Most of my work now goes into [invisible_playwright](https://github.com/feder-cr/invisible_playwright), |
8 | | -a Playwright replacement built on a Firefox patched at the source level, so the browser |
9 | | -fingerprint is set inside the engine rather than injected from the page - the same |
10 | | -automation-detection problem AIHawk ran into at scale, solved one layer lower. |
| 41 | +Full docs and source: [github.com/feder-cr/invisible_playwright](https://github.com/feder-cr/invisible_playwright) |
11 | 42 |
|
12 | 43 | --- |
13 | 44 |
|
|
0 commit comments