Key Concepts
Feature | Scrapybara | Kernel |
---|---|---|
Start Browser | client.start_browser() | client.browsers.create() |
Standby Mode | instance.pause() / instance.resume() | Automatic standby mode |
CDP URL | instance.get_cdp_url().cdp_url | Returns cdp_ws_url in create response |
Live View | instance.get_stream_url().stream_url | Returns browser_live_view_url in create response |
Stealth Mode | ❌ Not available | Create browser with stealth: true |
Replays | ❌ Not available | client.browsers.replays.start() and client.browsers.replays.stop() |
Save Auth | instance.browser.save_auth(name="default") | Create Profile. Then create browser with kernel.browsers.create(profile={"name": "profile1", "save_changes": True}) |
How to migrate
Basic Browser Creation
ScrapybaraSave & Reuse Authentication
ScrapybaraFile Download
ScrapybaraLong-Running Sessions
ScrapybaraFull API Comparison
Feature | Scrapybara | Kernel |
---|---|---|
Create Browser | client.start_browser() | client.browsers.create() |
Get CDP URL | instance.get_cdp_url().cdp_url | Returns cdp_ws_url in create response |
Get Live View | instance.get_stream_url().stream_url | Returns browser_live_view_url in create response |
Delete Browser | instance.stop() | client.browsers.delete_by_id(session_id) |
List Browsers | client.get_instances() | client.browsers.list() |
Save Auth State | instance.browser.save_auth(name="default") | Create Profile. Then create browser with kernel.browsers.create(profile={"name": "profile1", "save_changes": True}) |
Load Auth State | instance.browser.authenticate(auth_state_id="xyz") | kernel.browsers.create(profile={"name": "profile1"}) |
Pause/Resume | instance.pause() / instance.resume() | Automatic standby mode |
Screenshot | instance.screenshot() | Use Playwright or Puppeteer |
Timeout Config | timeout_hours parameter | timeout_seconds parameter |
Stealth Mode | ❌ Not available | Create browser with stealth: true |
Headless Mode | ❌ Not available | Create browser with headless: true |
Session Persistence | Auth state only | Full browser state via creating browser with persistence={"id": "persist-id"} |
Video Replays | ❌ Not available | client.browsers.replays.start() and client.browsers.replays.stop() |
File Upload | instance.upload() | client.browsers.fs.upload() or Playwright |
File Download | Via browser, then instance.file() | client.browsers.fs.read_file() |
Process Control | instance.bash() | client.browsers.process.* |
Proxy Support | ❌ Not available | Create Proxy. Then create browser with client.browsers.create(proxy_id=proxy.id) |