Opt-in client-side ads integration (e.g. ImaAdsProvider). Set before
load()ing an item with adBreaks.
See OGPlayerOptions.fallbackToMutedAutoplay; mutable so a host (or
the vertical feed pool) can flip it per lifecycle phase.
While true, nothing may start playback — play() and every internal resume path no-op. Used by the hard ad-block policy; equally useful for host-side gates (paywalls, age gates).
BCP-47 language the engine names tracks in when it derives a name from
the track's language code ("de" → "German" under "en", "Duits" under
"nl"). Default "en" — never the browser's language. <og-player> sets it
from OGUIConfig.locale (or its lang attribute) on every mount.
ReadonlyvideoWeb routes all volume to the element; kept for API parity.
VMAP cue-point times in seconds (negative = postroll).
Ad-break cue positions in ms (postroll = duration).
Progress of the current ad (drives the yellow ad bar), or null.
True between an autoplay load-with-ads and the first provider verdict (content pause OR resume) — the UI keeps controls hidden meanwhile.
Index of the playing item within the playlist (−1 without one).
True when the current item carries a storyboard (trick-play) track.
True while the ads provider's own dialog (IMA's "About this ad") is up: the chrome steps aside and leaves every key to it.
True while the video is in picture-in-picture — entered through
enterPip() or by the browser itself (its auto-enter, its own PiP
control).
Loop the current item seamlessly (native <video loop>); survives
across load() calls,.
True from a manual quality pick until that rung is the one playing (or 10 s). The chrome shows its ring meanwhile.
The item that plays after the current one — null on the last item or without a playlist. The UI's "Up next" card keys off this.
Id of the current analytics session — a fresh UUID minted by every
load(), stamped on each AnalyticsEvent of that load so consumers can
key their pipelines without inventing their own ids. Null before the
first load.
The words of the track names the engine builds itself: audioFallback,
subtitlesFallback and audioChannels (the other keys are the chrome's).
Assign a partial map — it is merged over English. <og-player> sets it
from OGUIConfig.strings on every mount.
Embedded + sideloaded subtitle tracks, unified (sideloaded ids ext-N).
Supplied by <og-player>: the element IMA renders its ad UI into.
Puts the video into picture-in-picture: the standard
requestPictureInPicture(), or Safari's presentation mode where only that
exists. Resolves true once the video is in PiP (or already was); false —
never a rejection — when the browser has no PiP API (Firefox, smart-TV
engines) or refuses the request, before anything is loaded, after
release(), and while an ad break is on screen (PiP of an ad is not
offered). Browsers grant PiP to a user gesture: call it from a click or
key handler. There is no PiP button in the chrome — entering is the
host's decision, or the browser's (OGPlayerOptions.autoEnterPip).
onPipChanged and the PictureInPictureChanged analytics event report
every transition.
Leaves picture-in-picture; a no-op when the video is not in it. Resolves once the browser has closed the window.
Moves focus into the ads provider's own UI (IMA's skip button, icons) —
the remote chrome's deliberate step into the ad on Right/Up. True when
the provider took focus; false without a break, a provider, or provider
support (the mobile focusAdUi()).
The storyboard frame covering positionMs, or null (mobile parity:
getThumbnail). The frame is a crop within a sprite image.
Loads a single item, clearing any playlist set earlier.
Queues items and starts playback at startIndex. Each item keeps its
own DRM/ads/subtitle pipeline; when one ends (postrolls included) the
next loads automatically and onPlaylistItemChanged fires. The UI's
"Up next" countdown card appears in the lead window before each advance;
skipToNext() jumps immediately.
The player surface was resized — keep the ad UI matched.
Watches the licensed flag (the watermark follows it). Returns an unsubscribe — a host element that re-mounts must drop its old closure, or every mount leaks one that retains the element.
Reloads the last loaded item after a fatal error — VOD resumes at the last healthy playback position, live streams rejoin at the edge. The built-in error overlay's Retry button calls this; hosts building their own UI can too. No-op before the first load().
Buffer discipline for pooled players (the vertical feed): STANDBY caps appetite (10s forward / 8MB, no back-buffer, metadata-only preload for progressive sources); ACTIVE restores full defaults.
Skips to the next playlist item now (the "Up next" card's tap action). No-op on the last item or without a playlist.
Skips to the previous playlist item now, from its start (the remote's
previous key, the TV chrome's previous button). No-op on the first item
or without a playlist. Fires onPlaylistItemSkipped(from, from − 1), then
onPlaylistItemChanged — the same pair skipToNext() fires.
Stops playback and releases the media pipeline (hls.js instance, media
resource, decoder and any DRM session), keeping the player instance
reusable — the next load() re-attaches everything. Use it when a
player stays mounted but must stop holding a decode session (a paused
card in a feed, a hidden tab, a route the viewer left). A picture-in-
picture window closes with it (PictureInPictureChanged reports it).
The OGPlayer playback engine HLS via hls.js (MSE) everywhere, natively on Safari; MPEG-DASH via dash.js (MSE), loaded on the first DASH item; progressive files directly. UI is
<og-player>from theuimodule; the engine also works fully headless.