Streaming Locators

Streaming locators are used to bind assets to streaming policies.

Streaming Locators provide an entry point to access the files contained in an Asset and allow you to attach policies for DRM, access and manifest re-writes :it enables your videos and live streams to be accessed by external clients.

A Streaming Locators provides a unique link for an asset or live event, that will be processed by the assigned Streaming Endpoint.

The final URL pattern for your video, will be concatenation of the streaming endpoint domain name and the streaming locator that links to your asset. The names you assign to each resource will determine the path URL of your video.

📘

To make video Assets available to clients for playback, you have to create a Streaming Locator and then build streaming URLs once you have a Streaming Endpoint defined.

By default, the Streaming Locator is valid immediately after you make the API calls, and lasts until it is deleted : once created, streaming locators remain assigned to that asset, until either they or the asset is deleted. They can have their own expiry dates and their own configuration properties. This enables you to manage how and until when your content can be accessed via a specific URL.

When creating a Streaming Locator, you must specify an Asset name and a Streaming Policy name. The Streaming Policy can optionally point to a Content Key Policy for encryption. Take a look at Content Protection.

A Streaming Endpoint must exist to bind your streaming locator to and enable you to scale your output based on viewer concurrency.

Streaming Locators can have a many to one relationship with a Streaming Policy, such that different Locators can provide different start times and connection types to different clients while all using the same permission and duration settings.

Streaming Formats and Encryption Modes

The following combinations of streaming formats, DRMs and encryption modes are currently supported in MK.IO:

DRMHLS (CMAF)DASH (CMAF)
ClearKeycbccbc & cenc
Widevinecenccenc
PlayReadycenccenc
FairPlaycbcs-aapln/a

Streaming Policies

Streaming Policies enable you to define streaming protocols and encryption options for your Streaming Locators. With MK.IO, you get some predefined Streaming Policies out of the gate, so that you can use them directly for trial or production.

Streaming PolicyDescription
Predefined_ClearStreamingOnlyClear streaming only
Predefined_ClearKeyEnable HLS/DASH encrypted with envelopeEncryption with MK.IO issuing the content key.
Predefined_MultiDrmCencStreamingEnable streaming with DASH encrypted with commonEncryptionCenc with MK.IO issuing the PlayReady and Widevine license
Predefined_MultiDrmStreamingEnable streaming with DASH encrypted with commonEncryptionCenc with MK.IO issuing the PlayReady and Widevine licenses, or for allowing streaming with HLS encrypted with commonEncryptionCbcs with MK.IO issuing the FairPlay license.
Predefined_DownloadOnlyDownload only
Predefined_DownloadAndClearStreamingDownload and clear streaming

You will also be able to create your own streaming policies if these don’t meet your needs.

Streaming URLs

The URLs for streaming content may be obtained either on the UI or by calling listPaths endpoint on the streaming locator API resource.

The overall structure of the streaming URL is:

/<streamingLocatorID>/<serverManifestName>.ism/manifest(<options>)

The supported options are:

  • format=m3u8-cmaf for HLS with CMAF segments
  • format=mpd-time-cmaf for DASH with CMAF segments
  • filter=... with a semicolon-separated list of Asset Filters or Account Filters to be applied.
  • encryption=cbc for AES-128 encryption scheme (AES CBC full-segment encryption)
  • encryption=cbcs-aapl for CBCS encryption scheme (AES CBC sample-based encryption)
  • encryption=cenc for CENC encryption scheme (AES CTR sample-based encryption)

For example:

/fecebb23-46f6-490d-8b70-203e86b0df58/bigbuckbunny.ism/manifest(format=m3u8-cmaf,encryption=cbcs-aapl,filter=myAccountFilter;myAssetFilter)

Download URLs

The URLs for download content are also be obtained on the UI or by calling listPaths on the streaming locator API resource.

The download URL has a simpler structure with no option:

/<streamingLocatorID>/filename

For example:

/fecebb23-46f6-490d-8b70-203e86b0df58/Thmubnail1_000001.png