도브러너 서비스 고객은 도브러너 웹 콘솔 에서 콘텐츠 패키징, 라이선스 발급 등 다양한 데이터를 확인할 수 있습니다. API 기반의 데이터 접근이 필요한 경우, 고객은 도브러너 서비스 API
를 이용해 도브러너 서버 측 데이터를 자사 시스템과 통합할 수 있습니다.
이 문서는 2021년 12월에 출시된 PallCon 서비스 API V2
를 기준으로 작성되었습니다.
도브러너 서비스 API
는 정보의 안전한 전송을 위해 JSON Web Token(JWT) 을 사용합니다.
온라인 JWT 도구 또는 서버 측 프로그래밍 언어를 사용하여 JWT 토큰을 생성하고 테스트할 수 있습니다.
토큰은 HMAC SHA256(HS256) 알고리듬과 함께 계정별 비밀 키를 사용하여 서명해야 합니다. 토큰 페이로드에 사용되는 서비스 API 키와 계정 seq 값은 헬프데스크 티켓을 통해 요청할 수 있습니다.
위 캡쳐 이미지에서 확인할 수 있듯이, 인코딩된 JWT 토큰의 형식은 다음과 같습니다.
base64UrlEncode(header ) + " . " + base64UrlEncode( payload ) + " . " + HS256 signature value
토큰은 아래 예시와 같은 JSON 페이로드 데이터를 사용합니다.
"account_id" : " Your DoveRunner account ID " ,
"account_seq" : " Your DoveRunner account SEQ " ,
키 필수 여부 값 sub Y PallyConAPI
(고정 값)aud Y INKA
(고정 값)iss Y PallyCon
(고정 값)account_id Y 도브러너 서비스 계정 ID account_seq Y 도브러너 서비스 계정의 SEQ
(헬프데스크 티켓을 통해 요청 가능) exp N 토큰 만료 일자 (형식: date number)
SEQ
는 도브러너 서비스 API에서 주요 데이터를 인덱싱하는데 사용되는 키값입니다.
도브러너 서비스 API를 호출하면 아래와 같은 HTTP 상태 코드 중 하나를 받게 됩니다.
HTTP 상태 코드 설명 401 JWT 토큰 사양이 잘못되었거나 사용자 정보를 찾을 수 없음 403 호출된 API에 대한 권한이 없음 200 HTTP 통신 성공
HTTP 상태 코드가 200
(HTTP 통신 성공)인 경우 JSON 형식으로 아래 응답 데이터를 받게 됩니다.
키 유형 값 error_code String 0000: 성공 / 기타 숫자: 실패 error_message String 실패한 요청에 대한 오류 메시지 표시 data JSON API 요청 결과 (성공 시)
도브러너 서비스 계정 및 사이트 관리를 위한 API입니다.
이 API는 도브러너 계정의 사이트 목록을 검색합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 UC011004100
키 유형 설명 site_id String 사이트 ID (네자리 영숫자, 도브러너 콘솔에서 조회 가능) service_name String 서비스 사이트 이름 product_list Array 제품 리스트 product_list.[].service_code String 제품 코드 ( PD001 : DRM, PD002 : FWM ) product_list.[].status_code String 서비스 상태 (SE000 : 서비스중, SE001 : 서비스 중지 )
이 API는 도브러너 계정에 대한 추가 서비스 사이트를 요청합니다. (한 계정에서 여러 개의 서비스 사이트를 운영하는 경우)
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 UA010310200
service_name String Y 추가될 서비스 사이트 명
키 유형 설명 seq Int 해당 요청에 대한 SEQ (시퀀스 번호)
이 API는 서비스 사이트 추가 요청에 대한 상태를 반환합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 UA010310100
from String N 검색 기간 시작일 (YYYY-MM-DD) to String N 검색 기간 종료일 (YYYY-MM-DD) req_status String N 사이트 추가 진행 상태 search_type String N 검색 유형 (account_id, site_id) search_keyword String N 검색 키워드 (검색 유형이 설정된 경우) page_unit Int N 검색 결과 수 지정 (기본 값:25, 최대: 1000) page_index Int N 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우)
키 유형 설명 seq Int 사이트 추가 요청에 대한 SEQ 번호 account_id String 도브러너 서비스 계정 ID site_id String 사이트 ID (네자리 영숫자) service_name String 서비스 사이트 명 status String 사이트 추가 진행 상태 update_time String 상태 업데이트 시간 reg_time String 요청 등록 시간
이 API는 계정의 하위 구성원 목록을 조회합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 UA010700200
page_unit Int N 검색 결과 수 지정 (기본 값:25, 최대: 1000) page_index Int N 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우)
키 유형 설명 group_name String 하위 사용자가 소속된 권한 그룹 명 group_seq Int 권한 그룹의 SEQ 번호 (아래 테이블 참조) member_seq Int 해당 하위 사용자의 SEQ 번호 member_email String 하위 사용자의 이메일 주소 status_code String 하위 사용자 상태 코드 (MT001: 활성, MT002: 비활성) reg_date String 하위 사용자 등록 날짜 (YYYY-MM-DD)
그룹 SEQ 목록
| SEQ 번호 | 설명 |
| :----- | :------- |
| 1000 | BIZ 그룹. 서비스 사용 이력 및 연동 정보와 결제 관련 정보에 접근 가능 |
| 1001 | TS 그룹. 서비스 사용 이력 및 연동 정보와 SDK 다운로드 페이지 접근 가능 |
| 1014 | Clients 그룹. 서비스 사용 이력 페이지만 접근 가능 |
이 API는 계정에 하위 구성원을 만듭니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 UA010700200
member_email String Y 하위 사용자 이메일 주소 group_seq Int N 해당 하위 사용자가 소속될 권한 그룹의 SEQ
키 유형 설명 member_seq Int 생성된 하위 사용자의 SEQ 번호
이 API는 하위 사용자의 비밀번호를 재설정합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 UA010700200
member_seq Int Y 하위 사용자의 SEQ 번호
이 API는 기본 응답 데이터를 응답합니다.
이 API는 그룹 및 상태와 같은 하위 사용자의 정보를 업데이트합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 UA010700200
member_seq Int Y 하위 사용자의 SEQ 번호 member_status String N 적용할 사용자 상태 코드 (MT001: 활성, MT002: 비활성) group_seq Int N 적용할 권한 그룹의 SEQ
이 API는 기본 응답 데이터를 응답합니다.
도브러너의 여러 제품에서 공통으로 사용되는 서비스 API를 설명합니다.
이 API는 도브러너 제품 별로 서비스 상태 변경 요청에 대한 현황을 조회합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 회원 정보가 있는 암호화된 jwt api_code String Y api 코드 (UC011004100) site_id PathVariable Y SITE ID service_code String Y 제품코드 (PD001:DRM, PD002:FWM)
키 유형 설명 site_id String 사이트 ID req_group_id String 요청 ID (PK) reg_type String 요청타입 코드 reg_message String 요청 내용 reg_status String 요청 상태 (ST001: 신청, ST002: 반려 또는 취소, ST003:승인) reg_id String 요청 ID reg_dt String 저장일 (UTC +00:00 기준) update_dt String 요청 내역 수정일 (UTC +00:00 기준)
이 API는 도브러너 제품 별로 서비스 상태를 변경하기 위한 요청을 등록합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 회원 정보가 있는 암호화된 jwt api_code String Y api 코드 (UC011004100) site_id PathVariable Y SITE ID service_code String Y 제품코드 (PD001:DRM, PD002:FWM) request_type String Y 요청타입 코드 (SM001:서비스 재개 요청, SM002:서비스 중지 요청, SM003:트라이얼 기간 연장 요청) request_message String N 요청 내용
키 유형 설명 site_id String 사이트 ID req_group_id String 요청 ID (PK) reg_type String 요청타입 코드 reg_message String 요청 내용 reg_id String 요청 ID reg_dt String 저장일 (UTC +00:00 기준)
이 API는 도브러너 제품 별 서비스 상태 변경 요청을 취소합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 회원 정보가 있는 암호화된 jwt api_code String Y api 코드 (UC011004100) site_id PathVariable Y SITE ID service_code String Y 제품코드 (PD001:DRM, PD002:FWM) request_type String Y 요청타입 코드 (SM004:서비스 변경 요청 취소) request_group_id String Y 요청 ID (PK)
키 유형 설명 site_id String 사이트 ID req_group_id String 요청 ID (PK) reg_type String 기존 요청타입 코드 reg_status String 요청 상태 (ST001: 신청, ST002: 반려 또는 취소, ST003:승인) reg_message String 요청 내용 reg_id String 요청 ID reg_dt String 저장일 (UTC +00:00 기준) update_dt String 요청 내역 수정일 (UTC +00:00 기준)
도브러너 멀티 DRM 서비스와 관련된 API를 설명합니다.
이 API는 특정 기간에 발급된 DRM 라이선스의 목록을 검색합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 (UA003001100) site_id String Y 사이트 ID (네자리 영숫자) from String N 검색 기간 시작일 (YYYY-MM-DD) to String N 검색 기간 종료일 (YYYY-MM-DD) search_status String N 라이선스 발급 상태로 검색 (success or fail) search_condition String N 키워드 검색 카테고리 (cid, drm_type, user_id, device_id, device_model) search_keyword String N 카테고리 검색에 사용될 키워드 (search_condition 설정 시) page_unit Int N 검색 결과 수 지정 (기본 값:25, 최대: 1000) page_index Int N 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우)
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/license?api_code=UA003001100&site_id=DEMO&from=2020-03-01&to=2020-03-02&search_status=success&search_condition=cid&search_keyword=test'
키 유형 설명 cid String 콘텐츠의 고유 ID status String 라이선스 발급 상태 (success, fail) error_code String 에러 코드 (성공: 0000, 실패 시 해당 에러 코드) drm_type String DRM 유형 (PlayReady, Widevine, FairPlay, NCG) user_id String 최종 사용자의 고유 ID device_id String 클라이언트 기기의 고유 ID device_model String 클라이언트 기기 모델명 license_type String DRM 라이선스 연동 방식 (token, gateway) platform_name String 클라이언트 플랫폼 정보 reg_time String 라이선스 요청 등록 시간
"href" : " http://service.pallycon.com/api/v2/drm/license "
"device_id" : " 13406080a61bef63aaa1d99a32f51e31c804e659 " ,
"device_model" : " iOS-device " ,
"license_type" : " gateway " ,
"reg_time" : " 20200302235959 "
"device_id" : " 13406080a61bef63aaa1d99a32f51e31c804e659 " ,
"device_model" : " iOS-device " ,
"license_type" : " gateway " ,
"reg_time" : " 20200302235956 "
이 API는 특정 기간에 라이선스를 획득한 최종 사용자 ID의 목록을 검색합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 값 (UA003001100) site_id String Y 사이트 ID (네자리 영숫자) from String N 검색 기간 시작일 (YYYY-MM-DD) to String N 검색 기간 종료일 (YYYY-MM-DD) search_keyword String N 검색할 사용자 ID page_unit Int N 검색 결과 수 지정 (기본 값:25, 최대: 1000) page_index Int N 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우)
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/user?api_code=UA003001100&site_id=DEMO&from=2020-03-01&to=2020-03-02
키 유형 설명 user_id String 최종 사용자의 고유 ID license_cnt Int 해당 사용자가 요청한 DRM 라이선스 수 device_cnt Int 해당 사용자가 이용한 클라이언트 기기 수 success Int 성공한 라이선스 요청 수 fail Int 실패한 라이선스 요청 수
"href" : " http://service.pallycon.com/api/v2/drm/user "
이 API는 특정 기간에 DRM 라이선스를 획득한 클라이언트 기기 목록을 검색합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 값 (UA003001100) site_id String Y 사이트 ID (네자리 영숫자) from String N 검색 기간 시작일 (YYYY-MM-DD) to String N 검색 기간 종료일 (YYYY-MM-DD) search_keyword String N 검색할 클라이언트 기기 ID page_unit Int N 검색 결과 수 지정 (기본 값:25, 최대: 1000) page_index Int N 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우)
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/device?api_code=UA003001100&site_id=DEMO&from=2020-03-01&to=2020-03-02
키 유형 설명 device_id String 클라이언트 기기의 고유 ID device_model String 클라이언트 기기 모델명 license_cnt Int 해당 기기에서 요청된 DRM 라이선스 수 success Int 성공한 라이선스 요청 수 fail Int 실패한 라이선스 요청 수
"href" : " http://service.pallycon.com/api/v2/drm/device "
"device_id" : " ea2e698d95b28441422f4997d6ffd5450a " ,
"device_model" : " ChromeCDM-Windows-2 " ,
"device_id" : " 13406080a61bef63aaa1d99a32f51e31c804e659 " ,
"device_model" : " iOS-device " ,
"device_id" : " ab3dd736cd46607abbd81ec942e07a620a " ,
"device_model" : " ChromeCDM-Mac-2 " ,
"device_id" : " d838f619-69e0-4e3a-9b48-5a1b52ce287a " ,
"device_model" : " playready-device " ,
이 API는 특정 기간 동안 각 CID(콘텐츠 ID)에 대해 발급된 라이선스 수를 검색합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 값 (UA003001100) site_id String Y 사이트 ID (네자리 영숫자) from String N 검색 기간 시작일 (YYYY-MM-DD) to String N 검색 기간 종료일 (YYYY-MM-DD) search_status String N 라이선스 발급 상태로 조회 (success or fail) page_unit Int N 검색 결과 수 지정 (기본 값:25, 최대: 1000) page_index Int N 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우)
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/cid-drmLicense?api_code=UA003001100&site_id=DEMO&from=2020-03-01&to=2020-03-02
키 유형 설명 cid String 콘텐츠의 고유 ID license_cnt Int 해당 콘텐츠에 발급된 DRM 라이선스 수
"href" : " http://service.pallycon.com/api/v2/drm/cid-drmLicense "
이 API는 특정 기간에 CID(콘텐츠 ID) 별로 최종 사용자마다 라이선스를 획득한 수를 검색합니다. (해당 콘텐츠를 해당 사용자가 반복 재생한 횟수)
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 값 (UA003001100) site_id String Y 사이트 ID (네자리 영숫자) cid String Y 콘텐츠의 고유 ID from String N 검색 기간 시작일 (YYYY-MM-DD) to String N 검색 기간 종료일 (YYYY-MM-DD) search_status String N 라이선스 발급 상태로 조회 (success or fail) page_unit Int N 검색 결과 수 지정 (기본 값:25, 최대: 1000) page_index Int N 검색 결과 페이지 번호 (결과 수가 page_unit 보다 클 경우)
curl -H 'authorization:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiJQYWxseUNvbkFQSSIsImF1ZCI6IklOS0EiLCJpc3MiOiJQYWxseUNvbiIsImFkbWluIjp0cnVlLCJ1c2VySWQiOiJ0ZXN0dXNlciJ9.p7VJmRryoaSVU2qn9PDuoDRIFxphw0N2786bR6zhELQ' 'https://service.pallycon.com/api/v2/drm/cid-user?api_code=UA003001100&site_id=DEMO&cid=bigbuckbunny&from=2020-03-01&to=2020-03-02
키 유형 설명 cid String 콘텐츠의 고유 ID user_id String 최종 사용자의 고유 ID license_cnt Int 해당 사용자가 해당 콘텐츠에 대해 발급받은 라이선스 수 (재생 횟수)
"href" : " http://service.pallycon.com/api/v2/drm/cid-user "
이 API는 특정 기간의 DRM 패키징 이력을 검색합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 api_code String Y API 코드 값 (UA003001100) site_id String Y 사이트 ID (네자리 영숫자) from String N 검색 기간 시작일 (YYYY-MM-DD) to String N 검색 기간 종료일 (YYYY-MM-DD) search_condition String N 검색 카테고리 (cid, drm_type, user_id, device_id, device_model) search_keyword String N 카테고리 별 검색 키워드 (valid when search_condition is set) last_created_time_cid String N 조회 리스트 중 마지막 CID 값 (페이지 처리 용) last_update_time String N 조회 리스트 중 마지막 update_time (페이지 처리 용)
last_created_time_cid
및 last_update_time
이 설정되면 응답에는 설정된 값 이후의 데이터만 포함됩니다.
키 유형 설명 site_id String 사이트 ID (네자리 영숫자) cid String 콘텐츠의 고유 ID track String 콘텐츠 트랙 정보 (기본값: HD) created_time String 최초 패키징 시간 (YYYYMMDDhhmmss) update_time String 마지막 재패키징 시간 (YYYYMMDDhhmmss)
이 API는 DRM 연동과 관련된 정보를 조회합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 site_id Path Variable Y 사이트 ID (네자리 영숫자) api_code String Y API 코드 값 (UA003004100)
키 유형 설명 site_id String 사이트 ID (네자리 영숫자) site_key String 서비스 사이트 연동에 필요한 암호화 키 (Base64 인코딩된 32바이트 문자열) access_key String 추가적인 연동에 사용되는 암호화 키 license_callback_url String 콜백 방식 라이선스 연동에 사용되는 웹 페이지 URL (지원 중단) package_callback_url String 콜백 방식 패키져 연동에 사용되는 웹 페이지 URL (지원 중단) kms_token String CPIX, SPEKE API 등 KMS 연동에 사용되는 토큰 token_duration Int 라이선스 토큰 유효 기간 (초 단위) iv String 사이트 별로 지정되는 고유 IV(Initial Vector) 값. DRM 패키징에 사용
이 API는 DRM과 관련한 정보를 업데이트합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 site_id Path Variable Y 사이트 ID (네자리 영숫자) api_code String Y API 코드 값 (UA003004100) license_callback_url String N 콜백 방식 라이선스 연동에 사용되는 웹 페이지 URL (지원 중단됨) package_callback_url String N 콜백 방식 패키져 연동에 사용되는 웹 페이지 URL (지원 중단됨) token_duration Int N 라이선스 토큰 유효 기간 (초 단위)
이 API는 기본 응답 데이터를 응답합니다.
이 API는 애플로부터 발급받은 FPS 인증서를 도브러너 서비스에 등록합니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 인코딩된 JWT 데이터 site_id Path Variable Y 사이트 ID (네자리 영숫자) api_code String Y API 코드 값 (UA003004200) ask String Y Application secret key (ASK) 문자열 key_pw String Y 개인 키 암호 (최대 32 바이트) fps_cert blob Y FPS 인증서 파일 (.der 또는 .cer) private_key blob Y 개인 키 파일 (.pem)
이 API는 기본 응답 데이터를 응답합니다.
이 API는 특정 날짜에 발생한 MAL(월간 라이선스 발급 수), MAU(월간 활성 사용자 수) 및 MAD(월간 활성 기기 대수) 수치를 조회합니다.
Note
MAD의 경우, 데스크탑 크롬 브라우저의 PC 별 고유 ID를 생성하려면 플레이어에서 persistentStateRequired
를 설정해야 합니다. (HTML Player 샘플 소스 참조)
해당 설정을 하지 않으면 모든 PC의 크롬 브라우저에 동일한 ID가 적용되어 1개의 기기로 MAD에 반영됩니다.
파라미터 유형 필수 여부 설명 Authorization Header Y 회원 정보가 있는 암호화된 jwt api_code String Y api 코드 : UA003003100 site_id String Y 사이트 아이디 target_date String Y 조회 대상 날짜 (YYYY-MM-DD)
키 유형 설명 license_cnt Integer MAL (Monthly Active Licenses) user_acc_cnt Integer MAU (Monthly Active Users) device_acc_cnt Integer MAD (Monthly Active Devices) target_date Integer 조회 대상 날짜