Capture pages. Render launch-ready videos.
An open-source CLI and Node API for real-browser captures and project-driven renders with structured sidecar artifacts.
One CLI. Capture or compose.
Rollberry launches a real Chromium browser, captures full-page motion with deterministic timing, and composes final outputs with FFmpeg. Use capture for one-off URLs and render for repeatable project-driven videos.
That means one pipeline for localhost previews, staged deployments, multi-scene product walkthroughs, and machine-readable artifacts such as manifests, JSONL logs, and render summaries.
How it works
From one-off captures to repeatable multi-output renders.
Define
Point Rollberry at one or more URLs, or describe scenes and outputs in a project JSON file.
Render
Rollberry drives real Chromium, performs actions and scrolling, then composes the final media with FFmpeg.
Ship
Collect video, manifest, logs, and render summaries that slot directly into product, QA, and release workflows.
Built for real capture workflows
One-off URLs, scripted scenes, and artifacts you can automate against.
Project-Driven Renders
Turn one project JSON into desktop and mobile outputs with repeatable scenes, timing, and sidecar artifacts.
Timeline Actions
Interleave scroll, pause, click, hover, type, and keypress actions inside a scene without leaving JSON.
MP4 And WebM
Choose output format per target and tune intermediate and final encoding settings per render output.
Audio And Subtitles
Attach looping audio, burn captions into MP4, or ship soft subtitles alongside WebM outputs.
Transitions
Compose scenes with fade-in or crossfade transitions for cleaner product walkthroughs.
Structured Artifacts
Every run writes machine-readable manifests and JSONL logs you can archive, diff, and automate against.
Localhost Ready
Retry logic and localhost HTTPS tolerance make it practical for staging previews and local demos.
Debug Frames
Export raw PNG frames to inspect timing, overlays, and scene boundaries frame by frame.
Node API
Use the same capture and render pipeline programmatically from ESM for custom tooling and CI jobs.
Outputs you can automate against
Video is only one artifact. Every run also emits manifests, JSONL logs, and render summaries.
Written artifacts
demo.render-summary.json
{
"kind": "render-summary",
"status": "succeeded",
"project": {
"path": "./rollberry.project.json",
"name": "Launch Demo"
},
"outputs": [
{
"name": "desktop",
"videoPath": "./artifacts/demo-desktop.mp4",
"manifestPath": "./artifacts/demo-desktop.manifest.json"
},
{
"name": "mobile",
"videoPath": "./artifacts/demo-mobile.webm",
"manifestPath": "./artifacts/demo-mobile.manifest.json"
}
]
}Quick Start
Copy, paste, capture, or render.
# Capture localhost with explicit output and wait condition $ npx rollberry capture http://localhost:3000 --out ./artifacts/local.mp4 --wait-for selector:body# Capture multiple URLs into one MP4 with a page gap $ npx rollberry capture https://example.com https://example.com/pricing --page-gap 1.5 --out ./artifacts/site-tour.mp4# Render a project file into all configured outputs $ npx rollberry render ./rollberry.project.json# Render only the mobile output from the same project $ npx rollberry render ./rollberry.project.json --output mobile
Built in the open
Rollberry ships as an MIT-licensed CLI and Node API. Contributions, issues, and production feedback are welcome.