Skip to main content

Adobe® Primetime

Adobe Primetime is a cloud-based solution provided as part of Adobe Experience Cloud services to support the TV Everywhere monetization model. TV Everywhere is a subscription model where access to streaming video content from a television channel requires users to "authenticate" themselves as current subscribers to the channel, via an account provided by their participating pay television provider, in order to access the content.

Clarification

Level

The system will be able to support 2 protection levels: login & full

When login is selected the application should only execute the part of the flow that checks for authentication. When authenticated we can start playback immediately.

When full is selected the application should also verify that the user is indeed allowed to play out that particular piece of content before starting playback.

Endpoints

For the clientless devices we have 4 endpoints available:

Get primetime Connect Code
This API should be used to retrieve a connect code that can be used by the end-user to authenticate through a second screen application.

Authenticate Primetime User
This API can be used to verify whether the user has authenticated for the given device (using the connect code). It can also be used at startup to check whether the user was already previously authenticated.

It will give you the token expiry time in miliseconds as well.

Authorize Primetime User
This API can be used in case an asset dictates that authorization is required. In that case you will need to send an MRSS resource string or a simple identifier (this depends on the integration).

Logout Primetime User
This API can be used to log out a user based on the device ID/info

Usage

We recommend that these endpoints are only used on devices that do not have a Primetime SDK available to them.

info

In all requests above, you must provide an X-Device-ID header in your request. This will identify the uniqueness of your device. Additionally, you can provide an X-Device-Info header in your request. All the information must be added to the same JSON object. Afterwards, the resulting object must be Base64 encoded. You can check more information here

Right now, this header is not mandatory, but it will in the future.

Configuration

Before start to use Adobe® Primetime flow on our side, you must configure it through the CMS. There is a specific section for it and will require some information that you must provide in order to use the clientless endpoints.

Environment (required):
You must select between two options: Production or Staging

Software Statement:
You can retrieve software statement from TVE Dashboard. You can check how to retrieve one, in Adobe® Primetme documentation here

Requestor ID (required):
You must provide a valid requestor ID.

Public and Private Keys:
You must provide a valid public and private keys.

Protection Level (required):
You must select between two options: Login or Full

info

If you provide a software statement, you don't need to provide a public and private keys; and in the same way if you provide a public and private keys you don't need to provide a software statement. But you need to provide at least one of them

We highly recommend you to use software statement option.

Assets

Inside of asset metadata you can find details about the primetime requirements:

{
"id": "ID",
"type": "episode",
"label": "Example asset",

...

"externalAuthDetails": {

// In case primetime is used by a service the assets should include this property, if not contact the Backstage team
// be aware that this property is optional and not guaranteed to be available in metadata. If not given assume that
// the asset is not primetime protected
"primetime": {

// Wether the asset is protected by the primetime flow
"isProtected": true,

// Optional override for the protection level
"level": "login"
}
}
}

Flow

An overview of how the Adobe Primetime flow works can be found here. In the applications this is either implemented using the Primetime SDK or using the Backstage API for devices that do not have native SDK's available.