Live streaming - concept
Live streaming delivers time-bound video events (also called Streams) to your app: a game, a press conference, or a studio show that Viewers watch as it happens. Streams are delivered as part of the Videos content type rather than as a separate content type, so they flow through the same widgets and player you already use for on-demand video. See Delivering Videos.
Use this page to understand how a stream behaves across its lifecycle, what the CMS controls, and what the SDK supports on each platform.
What makes a video a stream
A video is treated as a stream when it carries a stream state (Live, Upcoming, or Ended) and a start time. On-demand videos have no stream state.
Because a stream is a video, it needs no separate player and no separate integration. When streaming is enabled for your account, streams appear in your existing Videos widgets and player.
Stream lifecycle
Viewers experience the same stream differently depending on its state:
- Upcoming: Viewers see a waiting-room style experience before the event starts, showing the thumbnail and start time. When the stream goes live, playback starts automatically.
- Live: Viewers see live playback with a live indicator. If a Viewer pauses or seeks back, the player can show a back-to-live action.
- Ended: Viewers can still access the stream as a replay-style video. If a Viewer is watching at the live edge when the stream ends, the player can advance to the next item. If the Viewer is behind live, playback can continue until the end.
Managing streams in CMS
In CMS, on-demand and streaming Videos are managed in separate tabs. This separation is a CMS-only distinction. In your app, both are delivered as Videos.
- Videos tab: on-demand video. Here you can see and change metadata, set labels and schedules, and more. See CMS overview.
- Streams tab: the streaming video content currently available, with stream metadata such as State and Start time. Streaming video item metadata, such as schedules and labels, can't be edited directly in the CMS. These settings are set as part of the stream acquisition process. For changes, talk to your WSC Sports team.
Streaming is enabled per account by the WSC Sports team.
Guidance for developers
Streaming video (also called live streaming in SDK docs) is available starting with: Android 1.20.3 | iOS 1.20.0 | Web 0.35.2 | React Native 1.20.0.
When streaming video is available in your account, the SDK supports:
- Discovery in widgets: streaming video items can be shown alongside on-demand video items, based on configuration.
- Status-aware playback: the player renders each stream state as described in Stream lifecycle.
- Content updates: the player checks for updates on load and at periodic intervals. Updates to the current item are reflected in the player and at the widget level.
Ended behavior considerations
When a stream changes to Ended:
- The stream stays available in the widget and player as a replay-style video.
- If the Viewer is at the live edge when the stream ends, the player advances to the next item, or ends the widget if there is no next item.
- If the Viewer is behind live, playback continues until the end and then advances.
Platform support
Filtering, ordering, and live UI customization differ per platform. For the API details, see the platform pages:
On Web, the streaming API is documented across the reference pages rather than on a single page:
- Filtering:
VideoFilterBuilder()providesliveOnly(),upcomingOnly(),endedOnly(),allStreams(),vodOnly(), andwatchable(), pluscustom()for a specific combination of content types and stream states. See VideoFiltersBuilder. - Live UI: the player status indicator and the back-to-live button are both styled through the video theme. See Video theme.
Live UI customization differs by platform:
- iOS: the status indicator, the back-to-live button, and the waiting-room message are all customizable.
- Web: the status indicator and the back-to-live button are customizable, with separate styles for the at-live-edge and behind-live states.
- Android: the in-player status indicator and back-to-live button use SDK-managed styling. The widget-level live chip and event-time text are customizable.
- React Native: live playback behavior works automatically, including the waiting room, the live indicator, and back-to-live. Styling these elements isn't exposed on React Native.
Seeking to the live edge is handled by the player on every platform and isn't exposed as an app-level API.
Related
Updated 11 days ago
