obx / README.md
vivekkushalch
Initial commit for HuggingFace Spaces
eba9fc2
|
Raw
History Blame Contribute Delete
2.07 kB
---
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