Issue license (FairPlay)

Prev Next

Available in Classic and VPC

Issue a FairPlay Streaming type DRM license. To issue a license, the DRM site must be enabled and FairPlay Streaming credentials must be registered. Responses to API calls support two formats: binary (ORIGINAL) and JSON, allowing you to choose the appropriate implementation. To issue a license, follow these steps in order.

1. Request license issuance(POST /api/v1/license)
2. Request FPS license issuance(GET /api/v1/license/fairPlay)

Note
  • If you have not yet registered your authentication information, you can register it via Edit site.
  • All license requests must be made through the player implementation and the device information of the terminal on which the DRM content will be played.
  • For more information on integrating the Video Player Enhancement service, see Authenticate VPE content.
Caution
  • The One Click Multi DRM service does not support issuing new FairPlay Streaming certificates. FPS certificates must be obtained directly from Apple. For more information, see Register FairPlay Streaming certificate.
  • FairPlay Streaming certificates uploaded to the One Click Multi DRM service do not support validity validation.

1. Request license issuance

This section describes how to request the issuance of a license.

Request

This section describes the request format. The method and URI are as follows:

Method URI
POST /api/v1/license

Request headers

For information about the headers common to all One Click Multi DRM APIs, see One Click Multi DRM request headers.

Create X-DRM-TOKEN header

To issue a license via API in the One Click Multi DRM service, the X-DRM-TOKEN header is required. This header validates the requesting user's permissions and is used to issue a DRM license based on the security policy of the selected site. If the header value is invalid, the license will not be issued. The following describes how to create the X-DRM-TOKEN header.

  1. Enter the JSON data for siteId, contentId, drmType, responseFormat, and userId.
    Field Type Required Description
    siteId String Required
    contentId String Required
    drmType String Required
    responseFormat String Required
    userId String Required
    • Input example
      {"siteId":"{Site ID}","contentId":"{Content ID}","drmType":"{DRM type}","responseFormat":"{Response format}","userId":"{Unique user ID}"}
      
  2. Convert the JSON data into a Base64 string.
    • Conversion example
      eyJzaXRlSWQiOiJkcm0tMjAyMzExMTUxNDIzMjYtbkh5TnciLCJjb250ZW50SW...dXNlcklkIjoiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UifQ==
      
Note

Make sure to avoid including unnecessary spaces or line breaks when entering JSON data.

Request example

The request example is as follows:

curl --location --request POST 'https://multi-drm.apigw.ntruss.com/api/v1/license' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--header 'x-ncp-region_code: KR' \
--header 'x-drm-token: {X-DRM-TOKEN}'  

Response

This section describes the response format.

Note

The ORIGINAL type request returns a binary data response. This guide provides instructions based on the JSON type response.

Response body

The response body includes the following data:

Field Type Required Description
license String - License JSON data
licenseCreatedTime Integer - License issuance date and time (millisecond)
  • Unix timestamp format
tokenCreatedTime Integer - Header token creation date and time (millisecond)
  • Unix timestamp format
tokenExpireTime Integer - Header token expiration date and time (millisecond)
  • Unix timestamp format

Response status codes

For information about the response status codes common to all One Click Multi DRM APIs, see One Click Multi DRM response status codes.

Response example

The response example is as follows:

{
   "license": "080512BF050AB9020803121044E0A85CB19D0441AC6C66B3D6ABBCC218E39FC48D06228E023082010A0282010100B2FB0D937113004C0F805C6C57DE7B266E2B5E2FE12241FF1421ED55DE2C3F73F62891D7587A8ED153F4009D9522C3609A5DC3C4E43891F8F2D7B448B36E8B77AD96DC795795706D4289F8E61FBDF564AB57E5A5EDDB64FC4EA68...D2A0F9B8E352FA91B52EC19593F215BCEB2E8401CCC9757C48793C9AB4904B93C7D326BFFBB5E24CDBF297599FB22724C95C9D40D44455586B188A6D10658BEBE5F6CE812FABB8CA58282B5D28176D5DFF3B358692CC4FC6895A06C0B90A192D65F69AE07415DCEF6E54A677D5C769BA6E9CC24E2B968BC3E6E4D4E099E446D9F7E38740DBB708023E6D35D99F1B10",
   "licenseCreatedTime": 1700476438204,
   "tokenCreatedTime": 1700476438107,
   "tokenExpireTime": 1700477038107
}

2. Request FPS license issuance

This section describes how to request the issuance of a FPS license.

Request

This section describes the request format. The method and URI are as follows:

Method URI
GET /api/v1/license/fairPlay (JSON type certificate request)
GET /api/v1/license/fairPlayBinary (binary type certificate request)

Request headers

For information about the headers common to all One Click Multi DRM APIs, see One Click Multi DRM request headers.

Request example

The request example is as follows:

curl --location --request GET 'https://multi-drm.apigw.ntruss.com/api/v1/license/fairPlay' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'Content-Type: application/json' \
--header 'x-ncp-region_code: KR' \
--header 'x-drm-token: {X-DRM-TOKEN}'   

Response

This section describes the response format.

Note

The ORIGINAL type request returns a binary data response. This guide provides instructions based on the JSON type response.

Response body

The response body includes the following data:

Field Type Required Description
license String - License JSON data
licenseCreatedTime Integer - License issuance date and time (millisecond)
  • Unix timestamp format
tokenCreatedTime Integer - Header token creation date and time (millisecond)
  • Unix timestamp format
tokenExpireTime Integer - Header token expiration date and time (millisecond)
  • Unix timestamp format

Response status codes

For information about the response status codes common to all One Click Multi DRM APIs, see One Click Multi DRM response status codes.

Response example

The response example is as follows:

{
   "license": "080512BF050AB9020803121044E0A85CB19D0441AC6C66B3D6ABBCC218E39FC48D06228E023082010A0282010100B2FB0D937113004C0F805C6C57DE7B266E2B5E2FE12241FF1421ED55DE2C3F73F62891D7587A8ED153F4009D9522C3609A5DC3C4E43891F8F2D7B448B36E8B77AD96DC795795706D4289F8E61FBDF564AB57E5A5EDDB64FC4EA6891C793B...0F9B8E352FA91B52EC19593F215BCEB2E8401CCC9757C48793C9AB4904B93C7D326BFFBB5E24CDBF297599FB22724C95C9D40D44455586B188A6D10658BEBE5F6CE812FABB8CA58282B5D28176D5DFF3B358692CC4FC6895A06C0B90A192D65F69AE07415DCEF6E54A677D5C769BA6E9CC24E2B968BC3E6E4D4E099E446D9F7E38740DBB708023E6D35D99F1B10",
   "licenseCreatedTime": 1700476438204,
   "tokenCreatedTime": 1700476438107,
   "tokenExpireTime": 1700477038107
}