livestream-player

Resilience

Retry, silent reload, the branded slate, and telemetry.

Live streams fail. The player's job is to keep the viewer watching when the failure is transient, and to degrade honestly when it is not.

The escalation ladder

  1. Retry — recoverable errors are retried in place by the engine.
  2. Silent reload — on a fatal error, the player tears the engine down and reloads the stream without user interaction, keeping the UI stable.
  3. Slate — when the stream is genuinely down (auto-retry and silent reload both failed), a branded full-screen graphic is shown as a last resort. The slate is distinct from the poster shown before playback begins.

Telemetry

Fatal errors and startup failures report through onTelemetry so operations can see outages. Recoverable errors that retry in place are not sent to this sink:

  • startup_failure — playback never began
  • fatal_error — the stream died mid-play

Both carry the normalized PlayerError. reloadAttempt is the 1-based silent-reload attempt that will follow, or 0 when no reload is scheduled because the budget is exhausted.

Try it

In the demo, press Simulate outage — it points the player at an unresolvable URL, so you can watch retry → silent reload → slate happen, with each stage logged in the telemetry panel.

On this page