Available in Classic and VPC
Issue a Widevine or PlayReady type DRM license. The DRM site must be enabled to issue licenses. Responses to API calls support two formats: binary (ORIGINAL) and JSON, allowing you to choose the appropriate implementation.
- All licenses issued through One Click Multi DRM are issued on the assumption that DRM packaging is ready.
- 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.
The One Click Multi DRM service supports token proxy issuance for DoveRunner (formerly PallyCon). For more information on token proxy issuance, see Token Proxy Type License Issuance Flow.
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.
- Enter the JSON data for
siteId,contentId,drmType,responseFormat, anduserId.Field Type Required Description siteIdString Required contentIdString Required drmTypeString Required responseFormatString Required userIdString Required - Input example
{"siteId":"{Site ID}","contentId":"{Content ID}","drmType":"{DRM type}","responseFormat":"{Response format}","userId":"{Unique user ID}"}
- Input example
- Convert the JSON data into a Base64 string.
- Conversion example
eyJzaXRlSWQiOiJkcm0tMjAyMzExMTUxNDIzMjYtbkh5TnciLCJjb250ZW50SW...dXNlcklkIjoiZDQxZDhjZDk4ZjAwYjIwNGU5ODAwOTk4ZWNmODQyN2UifQ==
- Conversion example
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.
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)
|
tokenCreatedTime |
Integer | - | Header token creation date and time (millisecond)
|
tokenExpireTime |
Integer | - | Header token expiration date and time (millisecond)
|
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": "080512BF050AB9020803121044E0A85CB19D0441AC6C66B3D6ABBCC218E39FC48D06228E023082010A0282010100B2FB0D937113004C0F805C6C57DE7B266E2B5E2FE12241FF1421ED55DE2C3F73F62891D7587A8ED153F4009D9522C3609A5DC3C4E43891F8F2D7B448B36E8B77AD96DC795795706D4289F8E61FBDF564AB57E5A5EDDB64FC4EA689...A0F9B8E352FA91B52EC19593F215BCEB2E8401CCC9757C48793C9AB4904B93C7D326BFFBB5E24CDBF297599FB22724C95C9D40D44455586B188A6D10658BEBE5F6CE812FABB8CA58282B5D28176D5DFF3B358692CC4FC6895A06C0B90A192D65F69AE07415DCEF6E54A677D5C769BA6E9CC24E2B968BC3E6E4D4E099E446D9F7E38740DBB708023E6D35D99F1B10",
"licenseCreatedTime": 1700476438204,
"tokenCreatedTime": 1700476438107,
"tokenExpireTime": 1700477038107
}