Chrome DevTools Protocol mit Browserberg nutzen
Wenn du gar keine Treiber-Bibliothek willst: Eine Session ist ein einfacher CDP-WebSocket. Alles andere auf dieser Website ist eine Komfortschicht über diesem Endpunkt.
Verbinden in einer Zeile
import WebSocket from 'ws';
const ws = new WebSocket(`wss://browserberg.com/v1/connect?token=${process.env.BB_TOKEN}`);
ws.on('open', () => {
ws.send(JSON.stringify({ id: 1, method: 'Page.enable' }));
ws.send(JSON.stringify({
id: 2,
method: 'Page.navigate',
params: { url: 'https://portal.example.de' }
}));
});
curl -X POST https://browserberg.com/v1/sessions \
-H "Authorization: Bearer $BB_TOKEN" \
-H "Content-Type: application/json" \
-d '{"locale":"de-DE","timezone":"Europe/Berlin"}'
# -> { "sessionId": "...", "cdpUrl": "wss://browserberg.com/v1/connect/..." }
Details
| Transport | WebSocket, TLS am Edge terminiert |
|---|---|
| Session-Erstellung | POST /v1/sessions |
| Standard-Locale | de-DE |
| Standard-Zeitzone | Europe/Berlin |
| Lizenz Wire-Protokoll | Apache-2.0, Schema veröffentlicht |
| Wo Sessions laufen | EU-Bare-Metal (OVHcloud) |
Stand: 2026-08-30
Fragen, die wirklich gestellt werden
Warum sollte ich rohes CDP statt eines Treibers nutzen?
Meistens nicht. Es lohnt sich, wenn du eine Domain brauchst, die kein Treiber freilegt, oder wenn du eine eigene Abstraktion baust und die Meinungen eines Treibers im Weg stehen.
Was ist der häufigste CDP-Fehler, den ihr seht?
Page.addScriptToEvaluateOnNewDocument ohne Page.enable aufzurufen. Es liefert eine gültig aussehende Kennung zurück, und das Skript läuft still nie — kein Fehler, keine Warnung. Uns hat das echte Zeit gekostet.
Können zwei Clients eine Session steuern?
Ein Writer plus beliebig viele Nur-Lese-Beobachter. So funktioniert Live-View, ohne dass zwei Clients um dieselbe Seite kämpfen — und die Writer-Lease ist explizit, nicht nach Windhundprinzip.
Was du wissen solltest
Page.enable vor addScriptToEvaluateOnNewDocument
Ohne Page.enable liefert Page.addScriptToEvaluateOnNewDocument eine gültig aussehende Kennung zurück, und das Skript läuft still nie. Das hat uns Zeit gekostet und steht nicht ohne Grund in unseren Notizen.
Standard-Locale ist de-DE
Sessions starten mit de-DE und Europe/Berlin, weil das der erste Markt ist. Beides lässt sich bei der Session-Erstellung überschreiben.
Ein Writer pro Session
Eine Session akzeptiert genau einen schreibenden Client. Nur-lesende Beobachter können sich daneben hängen — so funktioniert Live-View, ohne dass zwei Clients um dieselbe Seite kämpfen.
Weitere Integrationen
- Playwright Playwright verbindet sich über das Chrome DevTools Protocol mit Browserberg.
- Puppeteer Puppeteer spricht CDP nativ.
- Selenium Selenium erreicht Browserberg über die CDP-Unterstützung von Chrome.
- LangChain LangChain-Agenten steuern Browserberg heute über das Playwright-Toolkit, gerichtet auf einen entfernten CDP-Endpunkt.
- MCP Ein Model-Context-Protocol-Server, der Browserberg-Sessions als Tools für jeden MCP-Client bereitstellt.
Zeig ein bestehendes Skript auf uns
Fünf Browser-Stunden kostenlos, keine Kreditkarte. Was lokal läuft, läuft hier mit einer geänderten Zeile.