Updated on 2024-04-30 GMT+08:00

Queries keys

Function

When a device plays an encrypted HLS video, the device requests a key from the tenant management system, which checks whether there are keys cached locally. If not, this API is called to query the key from VOD. For details about the application scenarios of this API, see the sample code for preventing video leakage through HLS encryption in VOD Best Practices.

URI

GET /v1.0/{project_id}/asset/ciphers

Table 1 Path Parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID. For details about how to obtain the project ID, see Obtaining a Project ID.

Table 2 Query Parameters

Parameter

Mandatory

Type

Description

asset_id

Yes

String

Media asset ID assigned by VOD. This parameter can only be queried but cannot be modified.

Request Parameters

Table 3 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

No

String

User token. This parameter is mandatory when token authentication is used.

It can be obtained by calling the IAM API used to obtain a user token. The value of X-Subject-Token in the response header is a token.

Authorization

No

String

Authentication information. This parameter is mandatory for AK/SK authentication.

X-Sdk-Date

No

String

Time when the request is sent. This parameter is mandatory for AK/SK authentication.

Response Parameters

Status code: 200

Table 4 Response body parameters

Parameter

Type

Description

asset_id

String

Media asset ID assigned by VOD. This parameter can only be queried but cannot be modified.

edk

String

Key ciphertext

dk

String

Key plaintext

Status code: 400

Table 5 Response body parameters

Parameter

Type

Description

error_code

String

Error code

error_msg

String

Error description

Example Requests

Queries keys.

GET https://{endpoint}/v1.0/{project_id}/asset/ciphers?asset_id={asset_id}

Example Responses

Status code: 200

The information is returned when the request succeeds.

{
  "asset_id" : "06da0367af8f297ea3efc791e8b27157",
  "edk" : "02009800f00446c3aa6ad610bb121a602fa3091daca7a544ded4f514cae2c233cf51f3d88de64712242a8468042db19b4282e0d7196a8d4df6150169debb5d077527fad983e14174f1ab5430958ca4903187321f0a3406284bf938b64de95ddd3db438df9ddae98d347058969fd39be5049a0a5830396432303366352d313235362d346265322d626539642d38313164333363336630353200000000f9776c60d33706c68195bc64934f94ee28fbfdf03e5fbb65c5450599d6aa4807",
  "dk" : "4Q9KYgKbUChxocNYbteP3A=="
}

Status code: 400

The information is returned when the request fails.

{
  "error_code" : "VOD.10101",
  "error_msg" : "Unable to get the key because there is no encryption."
}

Status Codes

Status Code

Description

200

The information is returned when the request succeeds.

400

The information is returned when the request fails.

Error Codes

See Error Codes.