Ambient light for the web's moving pictures.
Ambilight style glow for video, canvas and YouTube. Framework-agnostic core with React integrations.
Install
pnpm add @videoglow/react-video # native <video>
pnpm add @videoglow/react-youtube # YouTube
pnpm add @videoglow/core # engine only, no ReactCore first
A framework-agnostic engine samples frames into a small canvas. React, video, canvas and YouTube plug into it.
Blur on the compositor
The glow is a CSS filter on a 160 px buffer. No pixels are read back, so cross-origin media just works.
Frame-aware sampling
requestVideoFrameCallback drives the glow; a 30 fps cap and visibility gating keep the main thread idle.
Honest about YouTube
Iframe pixels cannot be read. A muted second player follows the visible one through an explicit drift policy.
Sources
Native video
A <video> element with the glow behind it, driven by requestVideoFrameCallback.
@videoglow/react-videoCanvas source
Any canvas you draw into becomes a frame source, continuous or on demand.
@videoglow/reactYouTube
Two synchronized IFrame players with an observable drift policy.
@videoglow/react-youtubeIntegration
Validation
Performance
Measure render cost per frame across buffer resolutions and sampling rates.
@videoglow/coreBaseline comparison
The original full-resolution pipeline compared with the new small-buffer pipeline.
@videoglow/react-videoreact-ambilight 1.x API
The compatibility package running on the new implementation.
react-ambilight