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