Multi-DRM Native Client Integration Guide
Overview
PallyCon Multi-DRM Cloud Server provides DRM license issuance for Google Widevine Modular, Apple FairPlay Streaming and Microsoft PlayReady.
There are two types of methods for issuing multi-DRM (FPS, Widevine, PlayReady, NCG) licenses from PallyCon cloud server.
- Token type (refer to License Token Guide)
- When a multi-DRM client tries to play DRM content, the service site can create license token with pre-defined specification and send the token to the client.
- The service site can set usage rights (expiration date or unlimited) and various security options through the token data.
- When a client requests a license with a token, the PallyCon cloud server validates the token and issues a license.
- Token proxy method
- A method of relaying the license request/response between the client and the PallyCon license server in the proxy server of the service site backend.
- Communication and authentication between the client and the proxy server is implemented using arbitrary DRM custom data, etc. The proxy and the license server send and receive requests through tokens.
This document guides how to acquire DRM license from PallyCon Multi-DRM Cloud Server to playback content on various multi-drm client platforms without using PallyCon client SDKs.
Multi-DRM License Issuance
-
Prepare Playback
- A client player receives DRM custom data (auth data or license token) from the service site’s backend to play DRM contents.
-
License Request
- The client sets the custom data into license challenge data (created by native DRM agent) and sends it to PallyCon Multi-DRM Cloud Server.
-
User Authentication for proxy integration
- In case of proxy type integration, the proxy server in the service backend authenticates the license request from the client. Then the proxy requests DRM license to PallyCon Multi-DRM Cloud Server using license token.
- In the token-based integration, user authentication is handled between the service site’s backend and client player before generating a token. So this process is not applicable for token integration.
-
License Issuance
- PallyCon Multi-DRM Cloud Server creates and returns license data by DRM type, using usage right info received from the license token.
Widevine Modular / PlayReady DRM License Integration
Request
-
Request URI : https://license-global.pallycon.com/ri/licenseManager.do
-
Request Method : POST
-
DRM custom data can be sent to license server via various ways such as custom HTTP header or URL Parameter. In the case of PlayReady, the customdata field of the PlayReady Challenge is also available.
Name | Value |
---|---|
pallycon-customdata-v2 | Used for token-based license integration. Enter the license token value received from the backend server. |
In the POST body, enter the license challenge data generated by the native DRM client module.
Response
- Success
Name | Value |
---|---|
status code | 200 OK |
response body | native DRM license data - Widevine Modular: binary data - PlayReady DRM : base64 encoding string |
- Failure
Name | Value |
---|---|
status code | 200 OK |
response body | JSON Data {“errorCode”: “error code”,“message”: “error message”} |
FairPlay Streaming DRM License Integration
To apply FPS DRM, content service site should follow the below steps before starting integration.
- Enroll in Apple developer program ( https://developer.apple.com/support/enrollment/ )
- Request
FPS Deployment Package
to Apple ( https://developer.apple.com/streaming/fps/ ) - Using the
deployment package
, create the below four items and register them onIntegration Settings
page of PallyCon Console site.
- FPS certificate file (.der or .cer)
- Private key file (.pem)
- Password for the private key (string)
- Application secret key (ASK) string
Please refer to the FairPlay Cert Registration Tutorial for details on the above registration process.
1. FPS Certification download specification
To integrate FPS DRM, client app should download FPS Certificate data from PallyCon Server using the below API.
Request
- Request URI : https://license-global.pallycon.com/ri/fpsKeyManager.do?siteId=YOUR_SITE_ID
- Request Method : GET
Parameter | Value |
---|---|
siteId | Service Site ID(4 bytes) - from PallyCon Console site |
Response
- Success
Name | Value |
---|---|
status code | 200 OK |
response body | base64 encoding (fps certificate data) |
- Failure
Name | Value |
---|---|
status code | 200 OK |
response body | JSON Data {“errorCode”: “error code”, “message”: “error message”} |
The FPS Cert URL is provided for your convenience. If needed, a cert file (.cer or .der) may be hosted on your own server and its URL may be used instead of the above specification.
2. FPS License Integration Spec
Request
- Request URI : https://license-global.pallycon.com/ri/licenseManager.do
- Request Method : POST
- Custom HTTP Header, URL Parameter are available.
Name | Value |
---|---|
pallycon-customdata-v2 | Used for token-based license integration. Enter the license token value received from the backend server. |
- POST body : spc=‘base64 encoding(spc data)’
Parameter | Value |
---|---|
spc | base64 encoding ( SPC data created by native drm client ) |
Response
- Success
Name | Value |
---|---|
status code | 200 OK |
response body | base64 encoding (CKC data from FPS KSM) |
- Failure
Name | Value |
---|---|
response body | JSON Data {“errorCode”: “error code”, “message”: “error message”} |