DRM Message

This article describes valid format for the msg parameter of sendDrmMessage method.

Widevine

<?xml version="1.0" encoding="utf-8"?>
<WidevineCredentialsInfo xmlns="http://www.smarttv-alliance.org/DRM/widevine/2012/protocols/" >
  <ContentURL>$(ContentURL)</ContentURL>
  <DeviceID>$(DeviceID)</DeviceID>
  <StreamID>$(StreamID)</StreamID>
  <ClientIP>$(Client)</ClientIP>
  <DRMServerURL>$(DRMServerURL)</DRMServerURL>
  <DRMAckServerURL>$(DRMSAckerverURL)</DRMAckServerURL>
  <DRMHeartBeatURL>$( HeartbeatServerURL)</DRMHeartBeatURL>
  <DRMHeartBeatPeriod>$(DRMHeartBeatPeriod)</DRMHeartBeatPeriod>
  <UserData>$(UserData) </UserData>
  <Portal>$(Portal)</Portal>
  <StoreFront>$(Portal)</StoreFront>
  <BandwidthCheckURL>$(BandwidthCheckURL) </BandwidthCheckURL>
  <BandwidthCheckInterval>$(BandwidthCheckInterval)</BandwidthCheckInterval>
</WidevineCredentialsInfo >

 

Element

Support by CSP*

Description

ContentURL Mandatory Content URL
DRMServerURL Mandatory URL for the Widevine DRM key server
DeviceID Optional Unique ID of device
ClientIP Optional Client IP address
StreamID Optional Unique ID of stream being requested in the entitlement request
DRMAckServerURL Optional URL for entitlement delivery acknowledgements
DRMHeartBeatURL Optional URL of a server that handles a heartbeat request
DRMHeartBeatPeriod Optional

Duration between consecutive heartbeats (in seconds)

UserData Optional

User data (Custom Data)

Do not use tag type data for custom data. It will be recognized as sub elements and that makes parsing error.
Portal Optional Portal URL
StoreFront Optional StoreFront URL
BandwidthCheckURL Optional The URL for bandwidth check server
BandwidthCheckInterval Optional Interval of bandwidth check

CSP: Content Service Provider

You should do:

  • Even if you do not use the optional elements, you must specify the elements with empty value.
  • You should keep the order of XML elements in Widevine message as above table and example.

PlayReady

Pre Acquisition

<?xml version="1.0" encoding="utf-8"?>
<PlayReadyInitiator xmlns= "http://schemas.microsoft.com/DRM/2007/03/protocols/">
  <LicenseAcquisition>
    <Header>
      <WRMHEADER xmlns= "http://schemas.microsoft.com/DRM/2007/03/PlayReadyHeader" version="4.0.0.0">
        <DATA>
          <PROTECTINFO>
            <KEYLEN>16</KEYLEN>
            <ALGID>AESCTR</ALGID>
          </PROTECTINFO>
          <LA_URL>http://rm.contoso.com/rightsmanager.asmx</LA_URL>
          <KID>lFmb2gxg0Cr5bfEnJXgJeA==</KID>
          <CHECKSUM>P7ORpD2IpA==</CHECKSUM>
        </DATA>
      </WRMHEADER>
    </Header>
    <CustomData>AuthZToken XYZ</CustomData>
  </LicenseAcquisition>
</PlayReadyInitiator>

 

Element

Support by Device

Include by Service

Header Mandatory Mandatory
CustomData Mandatory Optional

 

Authentication with Custom Data for Post-Acquisition  

< License Server URL Overriding for License Post-acquisition >

<?xml version="1.0" encoding="utf-8"?>
<PlayReadyInitiator xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/">
  <LicenseServerUriOverride>
    <LA_URL>http://rm.contoso.com/rightsmanager.asmx</LA_URL>
  </LicenseServerUriOverride>
</PlayReadyInitiator>

 

After this message, all further license post-acquisitions send the license challenge to the specified LA_URL, not to the default LA_URL contained in the WRMHEADER of the content (application persistence). 

License pre-acquisitions are not affected by this command.
<?xml version="1.0" encoding="utf-8"?>
<PlayReadyInitiator xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/">
  <LicenseServerUriOverride>
    <LA_URL></LA_URL>
  </LicenseServerUriOverride>
</PlayReadyInitiator>

 

After this message, all further license post-acquisitions send the license challenge to the default LA_URL contained in the WRMHEADER of the content (URL overriding cancelled).

 

< Set Challenge CustomData for License Post-acquisition > 

<?xml version="1.0" encoding="utf-8"?>
<PlayReadyInitiator xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/">
  <SetCustomData>
    <CustomData>AuthZToken XYZ</CustomData>
  </SetCustomData>
</PlayReadyInitiator>

 

After this message, all further license post-acquisitions use the specified value, as the CustomData value of the generated license challenges (application persistence). 

License pre-acquisitions are not affected by this command.
<?xml version="1.0" encoding="utf-8"?>
<PlayReadyInitiator xmlns="http://schemas.microsoft.com/DRM/2007/03/protocols/">
  <SetCustomData>
    <CustomData></CustomData>
  </SetCustomData>
</PlayReadyInitiator>

After this message, all further license post-acquisitions will use no CustomData value in the generated license challenges.

Verimatrix

{
  "company_name":"Verimatrix",
  "vcas_boot_address":"public-ott.verimatrix.com:80"
}

 

Element Support by CSP* Description
company_name Mandatory Content Service Provider name or Application name
vcas_boot_address  Mandatory VCAS for Internet TV server boot address

CSP: Content Service Provider

 

Navigation