최신 업데이트:2024-01-02 11:10:15
이 문서는 Media Acceleration Live Broadcast API를 사용하여 지정된 스트림을 DRM 암호화하는 방법을 설명합니다.
다음 작업을 완료하십시오:
다음 curl 스크립트를 실행하여 https://drmtest-pull.cdnetworks.com/live/drmtest.mpd 스트림을 암호화합니다.
curl -i --url 'http://ca.haplat.net/wslive/drm/register.action?n=accountId&r=random&k=token' \
-X 'POST' \
-H 'Content-Type: application/json' \
-d '{
"url": "https://drmtest-pull.cdnetworks.com/live/drmtest.mpd",
"encryptType": "drm",
"action": "add",
"expire": "1682819355"
}'
위의 요청은 이름이 ‘drmtest’, 애플리케이션 이름이 'live’인 스트림을 암호화했습니다. 암호화된 후 이 DASH 스트림은 Widevine과 PlayReady로 보호됩니다.
스트림이 암호화되었는지 확인하기 위해 HLS 또는 DASH 매니페스트 파일을 확인할 수 있습니다. 이 예에서는 DASH .mpd 파일을 살펴볼 것입니다. 매니페스트 파일에는 라이선스 챌린지를 생성하는 데 필요한 개체가 포함된 ContentProtection 헤더가 포함됩니다. 다음은 샘플(잘림)입니다:
</ContentProtection>
<ContentProtection schemeIdUri="urn:uuid:edef8ba9-79d6-4ace-a3c8-27dcd51d21ed">
<cenc:pssh>AAAAOHBzc2gAAAAA7e+LqXnWSs6jyCfc1R0h7QAAABgSEAnnEHpafEPZng9h+r1lDBZI49yVmwY=</cenc:pssh>
</ContentProtection>
요청에는 다음 헤더 및 파라미터가 필요합니다:
아이템 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
content-Type | Header | 예 | application/json |
n | Param | 예 | 계정 이름입니다. |
k | Param | 예 | 최대 길이가 13인 고유한 임의 문자열, 타임스탬프 사용을 권장합니다. |
r | Param | 예 | MD5 인증 값입니다. k = md5 (r + apikey) 즉, ‘k’ 값을 가져오려면 문자열 ‘r’ 끝에 문자열 apikey를 추가한 후 결과 문자열에 대해 MD5 계산을 수행합니다. 참고: apikey는 고객 서비스에서 검색할 수 있습니다. 예를 들어, 1. 요청(Request) 및 apikey=012f37a3f2952 2. 문자열 r=1409284800 3을 무작위로 생성합니다. apikey를 ‘r’ 끝에 추가하여 문자열 '1409284800012f37a3f2952’ 4를 생성합니다. 새 문자열의 MD5 해시를 계산하여 ‘k’ 값을 가져옵니다, 즉 ‘b9fed80be752551834eec3e52fa94115’ |
요청 본문에 다음 항목을 포함합니다:
아이템 | 유형 | 필수 여부 | 설명 |
---|---|---|---|
url | String | 예 | 이 필드는 암호화할 스트림의 URL을 나타냅니다. 예를 들어: https://poctest-push.8686c.com/live/dashdrm.mpd 다음에 참고하십시오: >1. DRM을 사용하기 전에 HTTPS를 활성화해야 합니다. HTTP 기반 URL을 암호화에 사용할 수 있지만 DRM 시스템은 HTTPS가 필요하기 때문에 재생이 실패할 수 있습니다.2. 오리진 스트림이 암호화되면 각 해상도가 자동으로 암호화되기 때문에 스트림의 모든 해상도를 암호화할 필요가 없습니다. |
encryptType | String | 예 | ‘encryptType’ 필드는 항상 'drm’으로 설정해야 합니다. |
action | String | 아니오 | ‘action’ 필드는 ‘add’, ‘del’ 또는 ‘update’ 값 중 하나를 가질 수 있습니다.- add: 새 스트림에 대한 DRM을 설정합니다.- del: 비활성화합니다. 기존 스트림에 대한 DRM.- 업데이트: 기존 스트림에 대한 암호화 정보를 업데이트합니다. |
expire | String | 아니오 | DRM 만료 날짜는 Linux 타임스탬프 형식으로 제공해야 합니다. 이 필드를 지정하지 않으면 이 스트림의 DRM이 만료되지 않습니다. |
{
"msg": true,
"code": 200,
"callTime": "2022-12-07 21:50:16"
}
오류 코드 | 메시지 | Detail |
---|---|---|
400 | 인증 파라미터가 없습니다. | 인증 파라미터 ‘n’, ‘k’ 또는 'r’이 없습니다. |
400 | 암호화 유형이 잘못되었습니다. | ‘encryptType’ 파라미터가 'drm’으로 지정되지 않았습니다. |
400 | 작업 방법 오류입니다. | 지원되지 않는 작업 유형입니다. ‘add’, ‘del’ 또는 'update’만 지원됩니다. |
400 | 콘텐츠가 시스템에 이미 추가되었습니다. | 콘텐츠가 이미 암호화되어 다시 암호화할 수 없습니다. |
400 | 스트림이 레코드에 없어 삭제하지 못했습니다. | 삭제하려는 스트림에 대한 DRM 정보를 찾을 수 없습니다. |
403 | 인증에 실패했습니다. | 인증 파라미터 오류 또는 API 요청 권한이 없습니다. |
404 | 404를 찾을 수 없습니다. | API 요청 URL이 정확하지 않습니다. |
405 | 요청 방법 오류입니다. | POST 요청이 아닙니다. |
500 | 내부 서버 오류입니다. | 서비스 예외입니다. |