Broadcast Live Events (SaaS)
- Introduction
- Events as media in JW Player
- Event media types in Zapp
- Create a live and upcoming shelf
- Create a video-on-demand shelf
- Creating an event page
- Assigning a live now badge
- Combine live streams with other videos in a shelf
- Handling delays and live stream issues
Introduction
JW Player offers different types of live services:
- Broadcast Live Events (With Broadcast Live Standalone)
- Broadcast Live Events (With Broadcast Live SaaS)
- Instant Live
This article describes how to implement Broadcast Live Events (SaaS) with Applicaster Zapp. The article describes how to build
- a shelf with live and upcoming items
- a shelf with historical streams: video on demand
- a page that groups multiple events streams on a single screen
And takes into account transitioning feeds from upcoming to live to vod
Events as media in JW Player
Broadcast Live Events are available as media items in the JW Dashboard. Those media items can be grouped into JW Player playlists, and these playlists can be registered as feeds in Applicaster.
Broadcast Live will automatically add and update the media items with custom fields in JW Player. Manually added fields do not get overwritten by Broadcast Live.
The important fields are
VCH.EventState
, which goes through the following states:PRE_LIVE
LIVE_UNPUBLISHED
LIVE_PUBLISHED
INSTANT_VOD
VOD_PUBLIC
VCH.ScheduledStart
andVCH.ScheduledEnd
. These follow the ISO 8601 format.- Publish Date, which automatically is derived from
VCH.ScheduledStart
and a configurable offset in BCL. This will is used for sorting.
Important Note: When creating broadcast live events in SaaS these parameters will only appear when selecting a contentType. Also note the selection for contentType when creating a new BCL stream will only appear if at least one contentType exists with hosting_type = live_bcl
Event media types in Zapp
Zapp assigns a video type based on the fields. It takes a few minutes before changes to media item fields are available in Applicaster apps due to caching. Applicaster Zapp therefore also uses VCH.ScheduledStart
and VCH.ScheduledEnd
to determine when an event is live.
Zapp Video Type | Conditions | Comments |
---|---|---|
live-future | VCH.ScheduledStart is in the future | Link to a landing page WITHOUT a player |
live-now | (VCH.ScheduledStart is in the past AND VCH.ScheduledEnd in the future) OR VCH.EventState is LIVE_PUBLISHED | Link to a landingpage WITH a player |
live-vod | VCH.EventState is INSTANT_VOD or VOD_PUBLIC | Link to a landing page WITH a player |
With contentTypes
Where a contentType is defined in the JW platform the Zapp middleware will use this to replace the live-
part of the Zapp video type. eg if a live asset has a content Type liveEvent
Zapp will use the three video types: liveEvent-future
liveEvent-now
liveEvent-vod
This can be used to manage live assets with content type metadata and allow for multiple live workflows and application logic.
Create a live and upcoming shelf
- Create a dynamic playlist that contains your live and upcoming events, with
- Custom parameter filter ‘any’
- Filter on parameter:
VCH.EventState
:PRE_LIVE
- Filter on parameter:
VCH.EventState
:LIVE_UNPUBLISHED
- Filter on parameter:
VCH.EventState
:LIVE_PUBLISHED
- Have the list sorted by ‘Publish date’. This field automatically is derived from
VCH.ScheduledStart
and a configurable offset in Broadcast Live (publish_start_date_offset_hours
)
- Register the playlist as a feed in Applicaster
- Add a list component in Applicaster and link it to the newly created feed
- Set autorefresh on 60 seconds to deal with VCH.EventState changes
- Ensure the videos with type
live-future
link to a target screen WITHOUT a player. Tip: show a message on the page: “Event is not live, come back when the event has started” - Ensure the videos with type
live-now
link to a target screen WITH a player
Create a video-on-demand shelf
Live events will automatically become VOD streams in Broadcast Live
- Create a dynamic playlist in JW Player that contain your VOD events, with a custom parameter filter:
- Custom parameter filter ‘any’
- Filter on parameter:
VCH.EventState
:VOD_PUBLIC
- Filter on parameter:
VCH.EventState
:INSTANT_VOD
- Have the list sorted by ‘Publish date’. This field automatically is derived from
VCH.ScheduledStart
and a configurable offset in Broadcast Live.
- Register the playlist as a feed in Applicaster
- Add a list component in Applicaster and link it to the newly created feed
- Set autorefresh on 60 seconds to deal with VCH.EventState changes
- Ensure the videos with type
live-vod
link to a target screen WITH a player. See here
Creating an event page
- Create a JW Player playlist representing the grouped live streams
- Create a JW Player media item for the event to group the individual shows for an event together.
- To create the dummy media item, upload a placeholder video into the JW Dashboard. For example,
http://foo.com/bar.mp4
. The actual URL is not important. Note: For DRM properties, you need a short (e.g., 1 second) video. - The title, thumbnail, and description set on this video will represent the event.
- Add custom parameters that will contain the playlist ids. Prefered:
playlistId
- To create the dummy media item, upload a placeholder video into the JW Dashboard. For example,
- Ensure your Live and VOD feeds take the playlist id as input ` { {playlistId} }`
- Assign the
playlistId
key to list components in Zapp. E.g.extensions.playlistId
Assigning a live now badge
Note: this will become available soon.
Broacast live events have a true/false field called extensions.isLive
which can be used to assign a ‘live lock badge’. This field is automatically assigned by Applicaster Zapp and will not appear in JW Player media item fields.
Combine live streams with other videos in a shelf
You might want to promote a live event together with other videos in single shelf. E.g. in a ‘featured’ shelf in the top of the homepage.
You can achieve this by usingexclude custom paramters
setting instead of the include custom parameters
setting. Ensure you handle the live-now
, live-future
and live-vod
video types as described above.
Handling delays and live stream issues
You want to inform viewers when the streams starts later or when you have an issue in the live stream. You can do this using a ‘slate’: an image stating something like “going live soon”, “we are experiencing issues, stay tuned’ . This can be configured in Broadcast Live using the API and the UI.
It will take about 30 seconds before the slates will be visible to the viewers. Please note that the images need to be uploaded before the stream starts.
The slate can also be updated using the API
PUT /event/stream/replacesource/{id}
{
"sourceReplacementImage": "channel_unavailable.png"
}
Broadcast Live slates can be used in the Media Live and Media Excel Encoders.