File size: 2,067 Bytes
eba9fc2 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | ---
title: Obscura Browser
emoji: 🌐
colorFrom: purple
colorTo: blue
sdk: docker
app_port: 7860
pinned: false
---
# Obscura Browser - Headless CDP Server
A headless browser engine running on HuggingFace Spaces, accessible via Chrome DevTools Protocol (CDP) for remote browser automation.
## Features
- **Stealth Mode**: Anti-fingerprinting, TLS spoofing, and tracker blocking enabled by default
- **CDP Compatible**: Works with Puppeteer and Playwright
- **Lightweight**: ~30MB memory footprint, instant startup
- **V8 JavaScript**: Full JavaScript execution via V8 engine
## Connection
### Puppeteer
```javascript
import puppeteer from 'puppeteer-core';
const browser = await puppeteer.connect({
browserWSEndpoint: 'wss://Xocen-obx.hf.space/devtools/browser'
});
const page = await browser.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.disconnect();
```
### Playwright
```javascript
import { chromium } from 'playwright-core';
const browser = await chromium.connectOverCDP({
endpointURL: 'wss://Xocen-obx.hf.space'
});
const context = browser.contexts()[0];
const page = await context.newPage();
await page.goto('https://example.com');
console.log(await page.title());
await browser.close();
```
## API Reference
The CDP server supports standard Chrome DevTools Protocol domains:
- **Target**: createTarget, closeTarget, attachToTarget
- **Page**: navigate, getFrameTree, lifecycleEvents
- **Runtime**: evaluate, callFunctionOn, getProperties
- **DOM**: getDocument, querySelector, querySelectorAll
- **Network**: enable, setCookies, getCookies, setExtraHTTPHeaders
- **Fetch**: enable, continueRequest, fulfillRequest, failRequest
- **Input**: dispatchMouseEvent, dispatchKeyEvent
## Environment Variables
| Variable | Default | Description |
|----------|---------|-------------|
| `OBSCURA_NAV_TIMEOUT_MS` | 30000 | Navigation timeout in milliseconds |
| `OBSCURA_TIMEZONE` | Europe/Berlin | Browser timezone |
| `OBSCURA_PROXY` | None | HTTP/SOCKS5 proxy URL |
## License
Apache 2.0
|