Skip to main content
Unlisted page
This page is unlisted. Search engines will not index it, and only users having a direct link can access it.

Client Info Message

Client Info Message is a JSON data structure designed to hold information about a DRM License Request. Client Info Message is returned by Axinom DRM License Service as a payload of a Axinom DRM License Service Message inside a custom HTTP header X-AxDRM-Message if the return_client_info field in the Entitlement Message was set to true. Read Device Specific Restriction to understand how a Client Info Message can be used.

warning

This document describes the deprecated data structure. For the latest version read License Request Info Message.

Structure​

The following shows the structure of the Client Info Message, with examples for each DRM.

An example of the PlayReady Client Info Message.
{
"type": "playready_client_info_message",

"device_id": "7AB93931-F37D-4881-8D50-FD6E91579BCC"
}
{
"type": "widevine_client_info_message",

"device_id": "2B32BEEA-A1FD-4A47-AFFD-636221932A9B",

"client_token": "12F063B4-7C6C-4C1B-A589-B563A7B46CA8"
}
{
"type": "fairplay_client_info_message",

"device_id": "86D4732D-1927-4BFE-9494-18F2624B2B92",

"session_id": "C4927EB6-5AFE-4103-B065-0D4793C4C952",

"playback_state": "new_session",

"streaming_indicator": "requesting_device",

"supported_license_protocol_versions": [
"1",
"2"
],

"license_protocol_version": "1"
}

Common Client Info​

The following client info is supported in case of all DRMs.

type​

Indicates the type of a Client Info Message.

RequiredYes.
Data typeString.
Supported values* "playready_client_info_message" * "widevine_client_info_message" * "fairplay_client_info_message"

The exact type of a Client Info Message returned along with the License Response by the Axinom DRM License Service depends on which licensing endpoint was connected to. In case of the PlayReady endpoint, it is a PlayReady Client Info Message. In case of the Widevine endpoint, it is a Widevine Client Info Message. In case of the FairPlay endpoint, it is a FairPlay Client Info Message.

device_id​

Indicates the ID of the device that made the License Request.

RequiredYes (optional for Widevine).
Data typeString.
Supported valuesAny string representation of a valid GUID in the 00000000-0000-0000-0000-000000000000 format.

In case of PlayReady and FairPlay, the device ID is always obtainable. However, in case of Widevine, this is not always possible. On some devices and platforms, for example Google Chrome on desktop devices, Widevine is not able to uniquely identify the device. In such a case, the device_id field is missing from the Client Info Message. See Additional Information for recommendations on executing device ID based restrictions.

DRM-Specific Client Info​

The following client info is unique to a specific DRM.

Widevine​

client_token​

Contains the client token, which the client is currently using. In the absence of an existing token, it contains a new token, generated by the license service and sent to the client in the license. This token persists between playback sessions and can be used to uniquely identify the client (e.g. desktop browser). If the client doesn’t support client tokens, this field is missing.

RequiredNo.
Data typeString.
Supported valuesAny string representation of a valid GUID in the 00000000-0000-0000-0000-000000000000 format.

FairPlay​

session_id​

Contains the ID of the current playback session. This remains constant over all license requests made by the player (e.g. license renewal requests) in a specific playback session. This is only supported by iOS 9 and later.

RequiredNo.
Data typeString.
Supported valuesAny string representation of a valid GUID in the 00000000-0000-0000-0000-000000000000 format.

playback_state​

Indicates the state of the playback when the license request was created. This can be used to determine, e.g., if the license request is for a new playback session or for the renewal of an existing session. This is only supported by iOS 9 and later.

RequiredNo.
Data typeString.
Supported values* "new_session" - a new playback session has been opened and the device requires a license to start playback * "license_renewal_with_valid_content_key_required" - device is playing media, but requires a renewed license that contains a valid content key * "license_renewal_required" - device is playing media, but requires a renewed license (valid content key is not required) * "session_stopped" - playback session is halted due to an error state or a lack of session ID

streaming_indicator​

Indicates whether the playback occurs on the requesting device or content is streamed to an external device (e.g. AirPlay or AV adapter).

RequiredYes.
Data typeString.
Supported values* "airplay" - device streams content over AirPlay to Apple TV for playback * "av_adapter" - device streams content to an Apple digital AV adapter for playback * "requesting_device" - playback occurs on the device that sends the license request

supported_license_protocol_versions​

Indicates which FairPlay Streaming protocol versions the playback device supports.

RequiredYes.
Data typeArray of strings (for example ["1", "2"]).
Supported valuesAny array of strings.

license_protocol_version​

Indicates the version of the FairPlayStreaming protocol that is used for current transaction. This is chosen by the playback device as the most recent version that both the playback device and the license service support, where the version supported by the license service is determined by the "KEYFORMATVERSIONS" parameter in the HLS playlist.

RequiredYes.
Data typeString (for example "1").
Supported valuesAny string.

Additional Information​

Recommendations for Executing Device ID Based Restrictions​

The recommended way of executing device ID based restrictions is to use Axinom DRM License Service in the Proxy Mode. Proxy Mode is anyway strongly advised to obtain client info. In the Proxy Mode, the device ID based restriction decisions can be made upon receiving the Client Info Message along with the license response. If the device ID in the received Client Info Message does not match the expected one, the License Proxy may decide not to return the license to the client.

Another way of executing device ID based restrictions is to use the device_id field in the DRM-specific sections of the Entitlement Message. In this case, the Axinom DRM License Service makes the decision whether to grant a license or not. Keep in mind that when using the Entitlement Message functionality for device ID based restrictions, the device_id field has to be specified in the DRM-specific sections for all DRM systems for which this restriction is desired. This is due to the fact that device IDs differ across DRM systems for the same device. This way of executing device ID based restrictions is useful when the Proxy Mode is not used. This assumes that device IDs were obtained previously using the Proxy Mode.