DRM 패키징 운영 가이드
DRM 패키징부터 검수까지
콘텐츠 담당자의 반복 작업 정리
새 강의 영상이 들어오면 패키징하고, 미디어 서버에 올리고, 서비스에 등록한 뒤 재생을 확인합니다. 이 가이드는 DRM 패키징 도구 사용법, 플랫폼별 재생 설정, 매번 확인할 항목을 작업 순서대로 묶었습니다.
최종 수정
패키징하면 파일과 재생 과정이 이렇게 바뀝니다
패키징한 파일은 재생할 때마다 라이선스 발급과 권한 확인을 거칩니다. 어떤 파일을 패키징할지는 고객사가 정합니다.
-
파일
라이선스 키가 있어야 재생됩니다
DRM 패키징한 미디어 파일은 PlaynPlay 인증 서버가 발급하는 라이선스 키로 재생됩니다. 인증 서버는 재생 세션도 함께 관리합니다.
-
권한
발급 여부는 고객사 서버가 답합니다
라이선스를 발급할 때 콘솔에 등록한 Callback URL로
CheckAccessRights요청이 갑니다. 수강 기간이 끝난 학습자라면 만료로 답하면 됩니다. 콘텐츠 담당자가 파일을 다시 만질 일은 없습니다. -
선택
일반 파일로 두는 영상도 정하세요
DRM 없이 일반 파일로도 서비스할 수 있습니다. 무료 공개 강의나 홍보 영상은 일반 파일로, 유료·사내 영상은 패키징하는 식으로 기준을 먼저 정해 두면 작업 범위가 분명해집니다.
DRM 패키징 도구는 명령 한 줄로 돌립니다
콘솔에서 내려받는 명령줄 도구 ndrm-pkg입니다. 함께 받은 ndrmconfig 파일과 같은 폴더에 두고, 출력 폴더와 대상 파일을 지정해 실행합니다.
| 작업 | 대상 지정 예 | 이럴 때 씁니다 |
|---|---|---|
| 파일 하나 | ndrm-pkg -o . data/2024/video.mp4 | 수정본 한 편만 다시 패키징할 때 |
| 여러 파일 | 파일 경로를 띄어쓰기로 나열 | 서로 다른 폴더의 파일 몇 개를 한 번에 처리할 때 |
| 폴더 전체 | video/*.mp4 | 강좌 폴더 하나를 통째로 처리할 때. *는 전체 파일을 뜻합니다 |
| 한 글자 대체 | **/video0?.mp4 | 회차 번호만 다른 파일을 고를 때. ?는 문자 하나를 뜻합니다 |
| 하위 폴더 전체 | data/**/* | 연도·과정별로 나뉜 폴더를 한 번에 처리할 때. ** 뒤에는 반드시 /파일을 붙입니다 |
| 도움말 | -h, --help | 현재 도구의 사용법을 확인할 때 |
빌드는 macOS(arm64, x86_64), Windows(x86_64, x86), Linux(aarch64, x86_64, x86) 7종입니다. 명령줄 도구라서 담당자 PC에서 직접 돌려도 되고, 서버의 예약 작업에 넣어 업로드 폴더를 정기적으로 처리하게 구성할 수도 있습니다. 출력 폴더(-o)는 원본 폴더와 분리해 두는 것을 권합니다. 원문은 DRM 패키징 문서에 있습니다.
패키징한 파일은 미디어 서버에 두고 URL로 재생합니다
패키징한 파일은 발급받은 계정으로 미디어 서버에 올리고, 플레이어에는 그 파일의 URL을 넘깁니다. 업로드 경로가 곧 운영 데이터의 기준이 됩니다.
-
URL 규칙
경로 규칙은 오픈 전에 고정하세요
모든 Callback 보고에는 미디어 URL(mediaUrl)이 실려 옵니다. Android·iOS SDK의 마지막 재생 위치 조회도 미디어 주소를 기준으로 합니다. 오픈 뒤 경로를 바꾸면 진도와 이어보기 기록을 다시 맞춰야 하니, 강좌·차시 번호가 드러나는 규칙을 먼저 정하세요.
-
CDNetworks
CDNetworks 고객사는 전용 도메인을 씁니다
Agent 스크립트와 커스텀 페이지용 서비스 스크립트를 pnp-appdn.cdnetworks.com 도메인에서 불러옵니다. CDNetworks 고객사용 샘플 프로젝트가 따로 있고, 서버 사이드 샘플도 받을 수 있습니다.
-
자막
자막 파일은 영상과 따로 올립니다
자막은 영상과 별도의 URL로 지정합니다. 영상과 같은 폴더 규칙, 같은 파일 이름으로 올려 두면 등록 단계에서 짝을 잘못 맞추는 실수가 줄어듭니다.
-
원본
원본은 별도 저장소에 보관하세요
강의를 수정하거나 다시 패키징할 때는 원본이 필요합니다. 패키징 작업 폴더나 미디어 서버와 분리된 곳에 원본을 두고, 어떤 원본이 어떤 URL로 나갔는지 목록을 남겨 두기를 권합니다.
플랫폼마다 DRM 설정을 넣는 자리가 다릅니다
같은 패키징 파일을 PC와 모바일에서 재생합니다. 어느 환경이든 App ID와 사용자 ID로 DRM 설정을 만든다는 점은 같습니다.
| 환경 | 재생 방식 | DRM 설정 |
|---|---|---|
| 웹 페이지 | agent.js를 불러와 playnplay.launch()로 PlaynPlay App 실행 | MediaItem의 drm 항목에 appId, userId, userData, offlineAccessPeriod |
| PC 커스텀 페이지 | PlaynPlay App 안에 연 고객사 웹 페이지에서 video 요소의 open()으로 재생 | 웹과 같은 MediaItem 형식 |
| Android 앱 | SDK 미디어 아이템에 withDrmConfiguration을 붙여 재생 | appId·userId 필수, userData와 오프라인 재생 기한은 선택 |
| iOS 앱 | DrmConfiguration.Builder로 만든 설정을 MediaItem.Builder에 전달 | userData, 오프라인 재생 기한 추가 가능 |
웹의 오프라인 재생 기한(offlineAccessPeriod)은 초 단위입니다. 비워 두면 기한 없이, 0이면 오프라인 재생을 허용하지 않습니다. 다운로드를 열어 주는 강좌라면 등록할 때 기한을 정해 두세요. PC 재생 흐름은 PC 플랫폼, 연동 구성은 개발자 안내에 정리돼 있습니다.
미리보기 구간과 자막은 재생 설정으로 붙입니다
맛보기 영상이나 자막 때문에 패키징을 다시 할 필요는 없습니다. 둘 다 미디어 아이템에 지정합니다.
-
Clipping
시작·끝 위치로 미리보기
시작 위치와 끝 위치를 초 단위로 지정하면 그 구간만 재생합니다. 끝 위치를 비우면 미디어 끝까지입니다. 웹은 MediaItem의 clipping, iOS SDK는 ClippingConfiguration으로 설정합니다. Android SDK 문서에는 클리핑 항목이 따로 없으니, 앱 미리보기가 필요하면 적용 방법을 먼저 확인하세요.
-
권한 구분
미리보기 요청은 표시해서 보내세요
클리핑은 재생 구간 설정입니다. 미리보기인지 정식 수강인지는 userData에 표시해 보내고, 고객사 서버가 접근 권한 검사에서 함께 판단하도록 설계하는 것을 권합니다.
-
Subtitles
자막 여러 개를 함께 지정
자막마다 URL, 언어, 표시 이름, 선택 모드(autoSelect, show, hidden)를 넣습니다. Android SDK 문서는 SMI, SRT, WebVTT 형식을 명시합니다. 2026년 7월부터 Android·iOS SDK는 다운로드할 때 자막도 함께 저장합니다.
Android SDK 변경 이력에는 2024년 8월 "파일 이름 기반 자막 자동 추가"가 있습니다. 세부 규칙은 문서에 없으므로 자막 파일 이름 규칙을 정하기 전에 확인하세요.
수급에서 검수까지 다섯 단계로 돌립니다
강의 한 편이 서비스에 올라가기까지의 순서입니다. 단계마다 다음 담당자에게 넘길 결과물을 정해 두면 누락이 줄어듭니다.
-
수급
원본 영상과 자막 파일을 받습니다. 파일 이름에 강좌·차시 번호를 넣고, 패키징 대상인지 일반 파일 대상인지 이 단계에서 표시합니다.
-
패키징
강좌 폴더 단위로 ndrm-pkg를 실행합니다. 원본 파일 수와 출력 폴더의 파일 수가 같은지 비교해 빠진 파일을 찾습니다.
-
업로드
패키징한 파일과 자막을 미디어 서버의 정해진 경로에 올립니다. 이 경로가 콜백에 찍히는 미디어 URL이 됩니다.
-
등록
LMS나 앱의 강의 정보에 미디어 URL, 제목, 썸네일, 자막, 미리보기 구간을 넣습니다. 의무 교육 영상은 탐색 허용(seekable)과 배속 금지(disablePlaybackRate)도 여기서 정합니다.
-
검수
테스트 계정으로 PC와 모바일에서 재생합니다. 고객사 서버에 접근 권한 검사와 재생 상태 보고(Started, Stopped)가 들어왔는지, 자막과 미리보기 구간이 맞는지 확인합니다.
콘텐츠 운영 체크리스트
새 콘텐츠를 올릴 때마다 아래 항목을 확인하세요. 담당자가 바뀌어도 같은 기준으로 검수할 수 있습니다.
-
패키징 전
- ndrm-pkg와 ndrmconfig가 같은 폴더에 있는가
- 작업 PC·서버의 OS와 CPU에 맞는 빌드인가
- 패키징 대상과 일반 파일 대상을 나눴는가
- 출력 폴더가 원본과 분리돼 있는가
-
업로드·등록
- URL이 정해 둔 경로 규칙을 따르는가
- 자막 URL, 언어, 표시 이름을 넣었는가
- 미리보기 시작·끝 위치(초)가 맞는가
- 오프라인 재생 기한을 정했는가
-
검수
- 테스트 계정으로 PC·모바일 재생이 되는가
- 권한 없는 계정은 거절되는가
- 다운로드 상태 보고(Started, Completed)가 오는가
- 다운로드한 영상에 자막이 함께 저장됐는가
보안 구조는 콘텐츠 보안, 낯선 용어는 용어집에서 확인하세요. 레거시 플레이어의 영상을 옮기는 경우라면 레거시 전환 가이드를 함께 보세요.
PlaynPlay 도입을 위한
기술적 지원과 서비스를 제공합니다.
제품 문의부터 데모 시연까지, 모든 지원을 위해 세일즈 및 기술 지원 팀이 준비되어 있습니다.
-
제품 및 도입 문의
도입 범위, 일정, 견적을 상담합니다. 서비스 형태와 사용자 규모를 알려주시면 맞는 연동 방식과 보안 설정을 제안합니다.
-
Trial 신청
PlaynPlay의 기능을 먼저 테스트해 보세요. 트라이얼 기간 동안 귀사의 제품과 PlaynPlay를 연동하고 성능과 기능을 직접 검증할 수 있습니다.
-
PlaynPlay 기술 문의
SDK 연동, Callback URL 설계, DRM 패키징 중에 생기는 질문에 기술팀이 답합니다. 공개된 개발 문서와 샘플 프로젝트도 함께 확인하세요.
기능
기능
역할별 안내