다운로드 딥링크 샘플
DRM 서버의 콘텐츠 목록을 불러와, 콘텐츠마다 starplayer://download 링크를 만들어
StarPlayerApp을 호출합니다. LMS가 하는 일을 그대로 재현한 데모입니다.
StarPlayerApp(Windows/macOS)이 설치되어 있어야 다운로드가 시작됩니다
콘텐츠 목록 — 게이트웨이 GET /api/contents → DRM 서버 /api/ovp/contents. 링크는 다운로드 클릭 시점에 발급됩니다
수강 이력·계정별 관리에 쓰임 — 다운로드와 재생에 같은 값
불러오는 중…
대기 중…
starplayer://download 파라미터 안내
LMS 연동 문서(LMS-DOWNLOAD-INTEGRATION.md §4) 기준입니다. 이 데모는 필수 4종 + expired_date·user_id·title·category, 그리고 트랜스코딩 상세에서 받은 content_value·duration·thumb·caption 을 실어 보냅니다.
필수 파라미터
| 이름 | 설명 |
|---|---|
token | 재생 토큰(playback_token). SPKv2 서버 간 발급 — 링크를 만들 때마다 새로 받는다 (캐시·재사용 금지) |
content_id | DRM 콘텐츠 ID |
dash | 토큰 응답의 manifest.dash — 절대 URL 그대로 (프록시 경로로 바꾸면 앱이 받지 못한다) |
license | 고객사 라이선스 코드. 다운로드에 필수 (재생만 할 때는 없어도 된다) |
선택 파라미터
| 이름 | 예시 | 설명 |
|---|---|---|
title | 01. 오리엔테이션 | 앱 목록에 보일 제목. 없으면 content_id 앞 8자 |
category | 1주차 강의/자료구조 | /로 구분, 뎁스 제한 없음. 없으면 "미분류" |
user_id | student001 | 사용자 식별자. 빠지면 수강 이력이 전송되지 않는다. 한 PC 여러 사용자 분리에도 사용 — 사실상 필수, 다운로드와 재생에 같은 값 |
expired_date | 2026-12-31 23:59:59 | 수강 종료일 (사용자 로컬 시각). 넣지 않으면 기본 보관 기간(30일)만 적용되어 수강 기간이 더 길면 중간에 재생이 막힌다 — 강력 권장 |
duration | 3600 | 재생 시간(초). manifest 값이 있으면 그쪽이 우선 |
content_value | LEC-2026-001 | 서비스 측 콘텐츠 식별자 (앱은 저장만 한다) |
thumb | https://…/thumb.jpg | 썸네일. 없으면 앱이 강의 번호 타일로 대체 |
caption | ko|한국어|https://…/ko.vtt|default | 자막 — 언어|라벨|URL[|default]. 기본 자막에만 |default. 여러 개면 파라미터를 반복 (JSON 금지)예시 &caption=ko|한국어|https://cdn.example.com/ko.vtt|default&caption=en|English|https://cdn.example.com/en.vtt |
drm | widevine | widevine(기본) 또는 clearkey |
공통 — 모든 값은 URL 인코딩(encodeURIComponent). API Key는 절대 페이지로 내려보내지 않는다
(이 데모는 게이트웨이가 서버 간 발급을 대신한다).