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 에러
| 코드 | 의미 |
|---|---|
| E0011 | DRM 토큰 오류 |
| E0012 | DRM 라이선스 통신 실패 |
테스트 URL:
https://vpe-api.sgrsoft.com/api/drmTest. 백엔드 헬퍼는 vpe-drm-helper npm 패키지를 참고하세요.