Graham Media Group
@grahamdigital/livestream-player
The in-house live HLS web player replacing Bitmovin on station sites. Shaka Player runs headless behind an Engine port; Google IMA DAI and CSAI sit behind an Ads port; hosts bind to a stable, engine-agnostic normalized event contract.
Demo
The full kitchen sink: live HLS, DAI ad breaks, CSAI pre-roll, resilience (retry → reload → slate), overlays, sticky mini-player, and the imperative handle — server-rendered and hydrated, validating the package's SSR-safety.
Open
Documentation
Getting started, the normalized event contract, ads (DAI + CSAI), resilience, SSR, testing fakes, and the architecture decision records.
Open