Concept of Services

Understanding Services is a key requirement for working with broadpeak.io

A Service defines how the Sources are used and combined to generate a personalized stream for delivery to end-users.

There is no global definition of services as they are defined differently for each application. You can find below a short description of each service and the links to the detailed section of each service.

TypeSources usedAims at...
Ad insertionA live source or an Asset catalog & an ad serverInserting or replacing ads in live or VOD sources
Virtual channelA live source & optionally an Ad serverBuilding a live channel with different live, asset and ad contents
Content replacementA live source and a default replacement contentReplacing for some periods the live source with alternative VOD or live contents

Service URL

Every configured service defines the URL that your end-user OTT clients must use to access your contextualized streaming services. This URL is only used for delivery of the manifests and playlists for the service.

You therefore must configure a CDN to route requests from your players so that they can access the media segments as well. This is explained in detail in Using broadpeak.io with a CDN

❗️

Not for production

Using the Service URL as-is in your players will cause all media segments of the source content (on the Origin) to be delivered by broadpeak.io.

This is allowed - within reason - for the purpose of testing, previewing or demonstration.

This is however not an allowed configuration for staging and production traffic and a distribution via your own CDN must be configured.

💡

If you do not have a CDN, broadpeak.io may be able to provide one with the ASCDN product. Contact your sales representative for more information

Service Hash

The streaming URL contains, at the start of the path, a token that uniquely identifies the service across the broadpeak.ioplatform.

For example, a service may define a URL such as https://stream.broadpeak.io/53bc6412b1163ee1881ccbc1901e8fae/myStream/myOutput/index.mpd, and within it the first part of the path constitutes the service hash. In this example, it is53bc6412b1163ee1881ccbc1901e8fae

You'll also often see it as a query parameter bpkio_serviceid in URLs, in particular after a playback session has been started: https://stream.broadpeak.io/myStream/myOutput/index.mpd?bpkio_serviceid=53bc6412b1163ee1881ccbc1901e8fae&...

📘

Identifiers

Although referenced by a bpkio_serviceid parameters, the service hash is not to be confused with the service ID, which identifies the service when using the APIs. Both are unique for each service, but are not interchangeable.

Sessions

Sessions are pivotal for delivering personalized content to user's devices. Every new request for the Service URL generated bybroadpeak.io generates a unique session. Sessions ensure continuity in the personalisation decisions and manifest manipulation strategy. broadpeak.io keeps contextual information for that session for as long as it is needed, as long as subsequent requests correctly make reference to the session.

The session id will appear in the URLs requested by the player as a query parameter bpkio_sessionid, alongside the service hash.

You will find more information on sessions in Session management

How many services do I need?

For Services operating from Live sources, you can define only one streaming format per service (e.g. DASH or HLS).
This level of granularity is intended to provide the maximum level of flexibility and to allow you to apply different policies, rules or contextualization based upon individual combinations. Therefore, you need to define multiple Service variants if you have multiple combinations (e.g. packaging formats, packaging formats versions, DRM versions, etc.).

For the Content Replacement application, a suffix-based naming convention allows linking of multiple service variants with a common "Media ID" defined through the SCTE 224 API to simplify batch processing.
More details can be found in the Mapping of ESNI Media Id with service variants section.

Service Tags

If you have multiple services for different stages of your configuration (eg. testing, staging, production), or want to be able to group services in logical groups, you can use tags.

For more information, please head to Concept of Tag