Widevine DRM

Android 는 키 시스템 중 com.widevine.alpha (Widevine)을 사용합니다. FairPlay 가 아닙니다. NCP Multi-DRM 과 PallyCon 을 모두 지원하며, 인증 헤더는 백엔드 서명 패스스루 방식이라 클라이언트에 시크릿을 둘 필요가 없습니다.

실기기 권장 — 에뮬레이터는 Widevine L3 로 제한됩니다(콘텐츠에 따라 L3 재생 가능). 실기기(L1)에서 검증하세요. 토큰/서명은 시간 제한이 있으므로 재생 직전 백엔드에서 최신 옵션 JSON 을 수신해 적용하는 것을 권장합니다(원클릭 멀티 DRM).

drm 설정

"drm": {
  "com.widevine.alpha": {
    "src": "https://.../manifest.mpd",                  // file 없으면 이 src 가 미디어
    "licenseUri": "https://.../licenseManager",          // 라이선스 발급 URL
    "licenseRequestHeader": {                            // 백엔드 서명 헤더 패스스루
      "x-ncp-iam-access-key": "...",
      "x-drm-token": "..."
      // PallyCon: "pallycon-customdata-v2": "..."
    }
  }
}

Kotlin Map 예제

options = mapOf(
    "playlist" to listOf(mapOf(
        "drm" to mapOf(
            "com.widevine.alpha" to mapOf(
                "src" to "https://.../manifest.mpd",
                "licenseUri" to "https://.../licenseManager",
                "licenseRequestHeader" to mapOf(
                    "x-ncp-iam-access-key" to "...",
                    "x-drm-token" to "..."
                )
            )
        )
    ))
)

토큰/서명은 시간 제한이 있으므로 재생 직전 백엔드에서 최신 옵션 JSON 을 수신한 뒤 VpePlayer(optionsJson = ...) 로 전달하는 방식을 권장합니다.

DRM 에러

코드의미
E0011DRM 토큰 오류
E0012DRM 라이선스 통신 실패
테스트 URL: https://vpe-api.sgrsoft.com/api/drmTest. 백엔드 헬퍼는 vpe-drm-helper npm 패키지를 참고하세요.
Android SDKBeta