NAV
+-

PallyCon 플레이어 가이드

이 페이지에서는 PallyCon 플레이어 제품과 클라우드 DRM 서비스를 이용하는데 필요한 각종 정보와 가이드를 제공합니다.

PallyCon SDK 제품에 대한 가이드를 원하시면 여기를 클릭해 이동하시기 바랍니다.

PallyCon 서비스는 클라우드 기반의 DRM 라이선스 서버와 DRM 콘텐츠의 재생을 지원하는 PallyCon 플레이어, 그리고 콘텐츠 파일을 암호화하는 패키져로 구성되어 있습니다. PallyCon 서비스를 사용하려면 각 구성요소들을 고객사의 콘텐츠 서비스와 연동시켜야 합니다 별도의 개발이나 서버 구축 작업이 없이도 간단한 연동 과정을 통해 기존 콘텐츠 서비스에 PallyCon을 적용할 수 있습니다.

overview

가이드 문서

아래와 같은 가이드 문서들을 참조하여 고객님의 콘텐츠 서비스와 PallyCon 서비스를 연동하실 수 있습니다.

퀵 스타트 가이드는 PallyCon 서비스를 빠르게 체험할 수 있도록 테스트용 코드와 샘플, 셋업 가이드를 제공합니다.

연동 가이드는 PallyCon 서비스를 고객님의 콘텐츠 서비스에 연동하는 절차와 방법에 대해 설명합니다.

또한 PallyCon 서비스에서 제공하는 관리사이트와 별도로, 자체적인 어드민 사이트를 구축하기 원하는 고객을 위해 REST API를 통해 서비스 관련 정보를 제공 가능합니다.(별도 문의)

Revision History

이 테이블은 PallyCon 가이드의 수정사항에 대한 기록입니다.

Date Detail
2016.12.20 사이트 키 관련 용어 수정
2016.09.24 SDK용 퀵 스타트 추가 및 전체 내용 수정
2016.07.14 PC(HTML5) Player 가이드 내용 추가 및 전체 내용 수정
2015.05.21 PHP, ASP, JSP 샘플 추가 및 전체 내용 수정
2014.08.28 온라인 가이 제작

다운로드

PallyCon 서비스를 이용하는데 필요한 연동 샘플 소스패키져를 다운로드 받을 수 있습니다.

연동 샘플 소스

명칭 타입 다운로드 링크
PallyCon 플레이어용 샘플 ASP, JSP, PHP 다운로드

패키져

명칭 타입 용도 다운로드 링크
PallyCon NCG 패키져 PC 어플리케이션 모바일용
PallyCon 멀티 패키져 PC 어플리케이션 PC/HTML5용 다운로드
PallyCon CLI 패키져 Commnad Line Interface 공통

퀵 스타트

소개

퀵 스타트는 PallyCon 서비스와 연동되는 모든 페이지(게이트웨이)의 샘플 소스를 제공하며, 이를 통해 PallyCon 서비스를 적용하기 위한 모든 과정을 별도의 개발 없이 30분 이내로 빠르게 데모 서비스를 구축 할 수 있습니다.

퀵 스타트를 통해 구축된 데모 서비스로…

퀵 스타트의 구성 및 범위

PallyCon 서비스는 다음과 같은 구조로 되어 있습니다.

PallyCon 서비스를 이용하기 위해 서비스 사이트와 PallyCon 플레이어를 연동하는 페이지를 게이트웨이(Gateway)라고 합니다.
퀵 스타트에서는 게이트웨이를 포함한 각 샘플 소스가 웹 스크립트 언어(PHP, JSP, ASP)별로 제공됩니다.

게이트웨이가 적용되면 PallyCon 서비스가 동작할 수 있게 됩니다.

퀵 스타트 구축 가이드

1단계: PallyCon 서비스 등록

퀵 스타트를 진행하기에 앞서 서비스 사용을 위해 다음 순서에 따라 PallyCon 서비스 가입과 서비스 사이트 등록을 진행합니다.

PallyCon 서비스 가입

서비스 사이트 등록

(화면이 영문으로 보일 경우 우측 상단의 빨간색 [English] 버튼을 클릭해 [Korean]으로 바꾸시기 바랍니다.)

2단계: 게이트웨이 구축

퀵 스타트 샘플에는 게이트웨이 페이지 소스와 플레이어를 호출하는 예제가 담긴 PC/모바일 서비스 페이지가 포함되어 있습니다.

또한 데모 환경 구성을 위해 Config 페이지에 BM을 적용하는 부분이 분리되어 주석 처리되어 있으며 PallyCon 서비스의 동작을 위해 모든 셋팅은 기본값으로 설정되어 있습니다.

기본값은 서비스 사이트의 BM이 설정되지 않은 임시로 입력된 값이거나, 샘플 소스 내에 별도의 처리 없이 성공으로 설정된 값입니다 .

퀵 스타트 샘플은 아래의 링크에서 다운로드 받습니다.

플레이어용 퀵스타트 샘플 다운로드

다운로드 받으신 파일의 압축을 해제하면 각 언어별 폴더 안에 다음과 같은 폴더와 파일이 있습니다.

위 Gateway 폴더를 구축 및 테스트 하시려는 웹 서버에 업로드 하여 웹 서비스를 활성화 합니다.
쉽게 말해 ASP라면 윈도우즈의 IIS를 이용하며, PHP or JSP의 경우 APM을 활용 하시거나 아파치 혹은 톰캣 등이 됩니다.
웹 서비스가 활성화 되면 gateway 경로 내 PC-ServicePage 페이지를 호출하여 해당 페이지가 보이면 정상적으로 활성화 된 것입니다.

ex) http://서비스 도메인/pages/PC-ServicePage.asp

(ASP의 경우 윈도우즈 서버의 OS 버전에 맞게 module 폴더 내 DLL 파일을 서버에 등록 하여주시기 바랍니다.)

게이트웨이의 주요 파일들은 다음과 같습니다. (확장자 미표시)

주요 파일들은 PallyCon 서비스와 연동됩니다.

사이트 ID 및 사이트 키 지정

언어(ASP, JSP, PHP)와 상관없이 Config 소스에서 Site_ID, Site_KEY 변수를 찾아 1단계: PallyCon 서비스 등록 에서 복사해둔 사이트 ID와 사이트 키를 아래와 같이 지정해줍니다.

Site_ID = “DEMO”
Site_KEY = “43gEy3yh3w4yerGHs43gegh54ryhASa”

3단계: DRM 콘텐츠 준비

PallyCon 서비스 가입이 완료되고 사이트 키와 패키져 키를 확보하셨다면 PallyCon 서비스 체험을 위한 샘플 동영상을 준비합니다.
동영상 콘텐츠의 DRM 보호를 위해서 패키져를 통해 원본 영상 파일을 패키징한 *.ncg 파일이 필요합니다.

패키져는 어플리케이션 타입과 CLI(Command Line Interface) 타입으로 제공되고 있으며,
플레이어에 따라 PC(HTML5)용 DASH-CENC 패키징과, 모바일용 NCG 패키징을 지원합니다.
(App 타입의 경우 PC/모바일용 패키저가 분리되어 있으며, CLI 타입의 경우 DASH-CENC와 NCG 패키징을 모두 지원합니다.)

PallyCon 체험을 위해 퀵 스타트에서 제공되는 패키져는 어플리케이션 타입입니다.
어플리케이션 패키져를 이용하여 DRM 콘텐츠를 생성하는 과정은 다음과 같습니다.

● 모바일용 NCG 패키져

Step1: 패키져 실행
1. 첨부된 PallyCon_Packager_Cloud.zip 파일 압축을 풉니다.
2. \PallyCon_Packager_Cloud\bin\Application\ 경로의 PallyCon_App_Packager.exe 파일을 실행시킵니다.

Step2: 패키져 세팅
PallyCon 어드민 사이트에서 확인한 사이트 ID와 패키저 키를 입력합니다.

Step3: 패키징
퀵 스타트 샘플 테스트에 사용할 MP4 영상 3개를 준비합니다.

기능설명
① [열기]: 패키징된 NCG 파일을 저장할 위치를 지정합니다.
②,③ [파일/폴더 추가] : 패키징할 원본 MP4 파일 혹은 폴더를 찾아 패키징 대상 목록에 추가합니다.
④,⑤ [파일/전체 삭제] : 패키징 대상 목록에서 선택한 파일 혹은 목록 전체를 삭제합니다.
⑥ [성공 파일 삭제]: 여러 파일을 패키징한 뒤 패키징이 성공한 파일 목록만 대상에서 삭제합니다.
⑦ [설정]: 패키징 설정을 변경합니다.
⑧ [패키징 시작]: 패키징 대상 목록에 있는 파일들을 설정된 내용에 따라 패키징 합니다.
⑨ [로그 삭제]: 패키징 진행 중에 쌓인 로그를 삭제합니다.

NOTE: MP4 / MP3 파일만 허용됩니다. 그 외의 파일들은 플레이어에서 재생이 되지 않습니다.

● 아래 순서대로 파일을 패키징 합니다.
1. ① [열기]버튼을 눌러 패키징된 NCG 파일이 저장될 위치를 지정합니다.
2. ②,③ [파일/폴더 추가]버튼 기능을 이용해 패키징할 원본 MP4 파일 혹은 폴더를 찾아 패키징 대상 목록에 추가합니다.
3. 패키징할 영상 3개 모두 추가 되었다면 ⑧ [패키징 시작] 패키징 대상 목록에 있는 파일들을 설정된 내용에 따라 패키징합니다.

Step4. 패키징 완료된 콘텐츠 파일
패키징이 완료되면 원본 콘텐츠(MP4)는 DRM 콘텐츠(NCG)로 변환됩니다.

● PC(HTML5)용 DASH-CENC 패키져

Step1: 패키징을 위한 오픈소스 모듈 설치
1. 첨부된 PallyCon_Packager_Cloud.zip 파일 압축을 풉니다.
2. Bento4 설치
- 아래 사이트에서 최신 버전 Binary for Windows를 다운 받습니다.
https://www.bento4.com/downloads/
- 다운받은 압축 파일을 DESH-CENC 패키져 실행 파일이 있는 경로에 압축 해제하고 그 폴더명을 “Bento4"로 수정합니다.

def setencoding():
    """Set the string encoding used by the Unicode implementation.  The
    default is 'ascii', but if you're willing to experiment, you can
    change this."""
    encoding = "ascii" # Default value set by _PyUnicode_Init()
    if 0:

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

def setencoding():
    """Set the string encoding used by the Unicode implementation.  The
    default is 'ascii', but if you're willing to experiment, you can
    change this."""
    encoding = "ascii" # Default value set by _PyUnicode_Init()
    if 1:

디렉토리 구조
\PallyCon_Packager_Cloud\bin\Application\DESH-CENC\
┗Bento4\ (Bento4 압축 해제 폴더)
┗PallyConWindowsPackager.exe (패키저 실행 파일)

  1. Python 2.7.x 설치
    • 아래 사이트에서 2.7.x 버전을 Windows 버전 환경에 맞게 다운로드 받습니다.
      https://www.python.org/downloads/
      (AMD64 CPU 지원 버전이 별도로 있으니 다운로드 하실 때 지원 버전을 유의하시기 바랍니다.)

    • 다운받은 2.7.x 버전을 설치 한 뒤 설치 경로 ex)C:\Python27\Lib 로 이동하여 site.py 파일을 에디터 툴로 열어 setencoding() 함수를 검색한 뒤 아래 오는 첫 번째 if문에 0: 값을 1: 로 변경합니다.
      (위 작업은 원본 콘텐츠 파일 이름 내 특수문자를 사용 할 수 있도록 설정하는 부분입니다.)
    • Windows 시스템 설정에서 환경 변수 [path]에 Python이 설치된 경로를 추가합니다. ex) C:\Python27;

Step2: 패키져 실행 및 세팅
1. PallyCon_Packager.exe 파일을 실행하고 [Setting] 버튼을 클릭합니다.
2. PallyCon 어드민 사이트에서 확인한 ②사이트 ID와 ③패키져 키를 입력합니다.

Step3: 패키징
테스트할 MP4/MP3파일 3개를 선택 후 [Start Packaging] 버튼을 클릭하여 파일을 패키징 합니다.

기능 설명
① [Browser]: 패키징된 NCG 파일을 저장할 위치를 지정합니다.
②,③ [Add File/Folder] : 패키징할 원본 MP4 파일 혹은 폴더를 찾아 패키징 대상 목록에 추가합니다.
④,⑤ [Remove File/All] : 패키징 대상 목록에서 선택한 파일 혹은 목록 전체를 삭제합니다.
⑥ [Remove Successful File]: 여러 파일을 패키징한 뒤 패키징이 성공한 파일 목록만 대상에서 삭제합니다.
⑦ [Setting]: 패키징 설정을 변경합니다.
⑧ [Start Packaging]: 패키징 대상 목록에 있는 파일들을 설정된 내용에 따라 패키징 합니다.
⑨ [Remove Logs]: 패키징 진행 중에 쌓인 로그를 삭제합니다.

NOTE: MP4/MP3 파일만 허용됩니다.
그 외의 파일들은 플레이어에서 재생이 되지 않습니다.
원본 파일 이름에 띄어쓰기 및 특수문자 ”&“는 사용할 수 없습니다.

● 아래 순서대로 파일을 패키징 합니다.
1. ① [Browser]버튼을 눌러 패키징된 NCG 파일이 저장될 위치를 지정합니다.
2. ②,③ [Add File/Folder]버튼 기능을 이용해 패키징할 원본 MP4 파일 혹은 폴더를 찾아 패키징 대상 목록에 추가합니다.
3. 패키징할 영상 3개 모두 추가 되었다면 ⑧ [Start Packaging] 버튼을 눌러 패키징 대상 목록에 있는 파일들을 설정된 내용에 따라 패키징 합니다.

Step4. 패키징 완료된 콘텐츠 파일
패키징이 완료되면 원본 파일명으로 폴더가 만들어지며 폴더 안에 원본 콘텐츠(MP4)가 패키징된 DRM 콘텐츠 3개 파일로 변환됩니다.
각 파일명은 [media-audio-en-mp4a.mp4], [media-video-1.mp4], [stream.mpd]입니다.

4단계: 게이트웨이 셋팅

이제 마무리 단계입니다. 패키징이 완료된 DRM 콘텐츠 파일과 PallyCon 어드민 사이트에 등록된 각종 키 정보를 게이트웨이에 셋팅합니다.

게이트웨이 셋팅은 구축된 게이트웨이 샘플 페이지 중에서 Config 페이지를 아래와 같이 수정하시면 됩니다.

아래 셋팅이 적용되면 모든 준비가 완료되며, 5단계: 재생 테스트에 맞춰 실제 플레이어에서 콘텐츠가 재생 되시는지 테스트를 진행해보시면 됩니다.

도메인 및 콘텐츠 경로 지정

● 모바일용 NCG 파일 지정
1. DRM 콘텐츠가 올라간 도메인(URL)을 Config 파일의 Domain 설정값으로 입력합니다.
Domain = "http://192.160.0.100”

2. 해당 콘텐츠 파일 3개의 파일명을 Config 파일의 File_name 설정값으로 입력합니다.
File_name_1 = Domain & “/test_cont1.mp4.ncg”
File_name_2 = Domain & “/test_cont2.mp4.ncg”
File_name_3 = Domain & “/testcont3.mp4.ncg”_

● PC(HTML5)용 mpd 파일 지정
1. DRM 콘텐츠가 올라간 도메인(URL)을 Config 파일의 Domain 설정값으로 입력합니다.
Domain = “http://192.160.0.100”

2. 해당 콘텐츠 파일 3개의 파일명을 Config 파일의 Dash_File_name 설정값으로 입력합니다.
Dash_File_name_1 = Domain & “:1935/vod/mp4:test_cont1.mp4/manifest.mpd”
Dash_File_name_2 = Domain & “:1935/vod/mp4:test_cont2.mp4/manifest.mpd”
Dash_File_name_3 = Domain & “:1935/vod/mp4:testcont3.mp4/manifest.mpd”_

5단계: 재생 테스트

DRM 콘텐츠의 사용 준비가 끝나면, PallyCon 플레이어를 이용해 재생할 수 있습니다. PallyCon 플레이어는 서비스 중인 최신 버전을 사용합니다.
이 챕터에서는 PallyCon 플레이어의 사용방법에 대해 설명합니다 그리고 PallyCon 서비스의 사용 내역을 확인하는 방법을 설명합니다.

PallyCon 모바일 플레이어 설치하기

PallyCon 모바일 플레이어는 앱 스토어나 구글 플레이를 통해 설치할 수 있습니다.


모바일 플레이어 재생 테스트

  1. 우선 PallyCon 모바일 플레이어 설치에 따라 테스트 하시려는 모바일 기기 OS에 맞게 각 마켓에서 ‘PallyCon 플레이어'앱을 설치 하시기 바랍니다.
  2. 다음 기기의 기본 브라우저(iOS : 사파리 / 안드로이드 : 크롬)를 통해 구축하신 샘플 페이지 URL로 접근 합니다. ex) http://서비스 도메인/pages/Mobile-ServicePage.asp
  3. 해당 페이지에서 3개의 테스트 영상 리스트별로 존재하는 [재생] 버튼을 눌러 바로 재생을 테스트 해보시거나, [다운로드] 버튼을 눌러 콘텐츠를 기기에 다운로드 받아 어플을 통해 재생해 볼 수 있습니다.

PC(HTML5) 플레이어 재생 테스트

PallyCon PC(HTML5) 플레이어는 별도의 설치 과정 없이 앱 호출 API를 활용해 PC에서 바로 재생을 시도하게 됩니다.

  1. PC에서 InternetExplorer 11 혹은 크롬(Chrome) 브라우저를 통해 http://서비스 도메인/pages/PC-ServicePage.asp 페이지에 접근 합니다.
  2. 해당 페이지에서 3개의 테스트 영상 리스트별로 존재하는 [Play] 버튼을 눌러 팝업 형태로 보여지는 플레이어를 테스트 하시면 됩니다.

퀵 스타트 샘플 페이지를 이용해 직접 재생해 보실 수 있으며, 아래 데모 페이지에서도 플레이어를 체험해 볼 수 있습니다.

> 이미지를 클릭 하시면 이동 합니다.

사용 내역 조회하기

PallyCon 서비스를 체험하면서 사용한 서비스에 대한 내역을 PallyCon 어드민 사이트에서 조회할 수 있습니다. 조회 가능한 내용은 DRM 콘텐츠 생성 내역(패키징 이력), 라이선스 발급 내역 등에 대한 내용입니다.


연동 가이드

AES256 암호화

Algorithm

: - Algorithm : AES

- Keysize : 256 bit

- Mode : CBC

Key, Initial vector

: - Key: 32 byte (사이트 키. PallyCon 어드민 사이트에서 확인 가능)
- Initial vector: 16 byte (고정값: 0123456789abcdef)

Padding

: - PKCS7

패키징 [Pre-Package]

Content ID Issue Page

▪︎ REQUEST DATA

http(s)://ContentIDIssuePageURL&data=Base64Encoding(AES256Encyption(XML DATA))String

Format

: - UTF-8 문자열 인코딩 사용
- POST Method
- URL: http(s)://Content ID Issue Page URL

- Body
파라미터 : data Value II: XML DATA

XML

<?xml version='1.0' encoding='UTF-8'?>
<RES>
    <FILEPATH>C:\DATA\package_content_ori.mp4</FILEPATH>
    <FILENAME>package_content_ori.mp4</FILENAME>
    <NONCE>fdfe321xb74azv</NONCE>
</RES>

XML Standards

: - FILEPATH: 패키져에서 전달한 파일의 전체 경로입니다.
- FILENAME: 패키져에서 올라온 FilePath의 파일명입니다.
- NONCE: PallyCon 클라우드 서비스에서 CID 발급 페이지와 통신하는 데이터를 인증하기 위한 값입니다.

▪︎ RESPONSE DATA

Format

: - Base64Encoding(AES256Encyption(XML DATA)) String

- UTF-8 문자열 인코딩 사용

XML

[CID 발급 성공]
<?xml version='1.0' encoding='UTF-8'?>
<RES>
    <ERROR>0000</ERROR>
    <CID>idd_32_geedesef123fde34512dfe</CID>
    <NONCE>fdfe321xb74azv</NONCE>
</RES>
[CID 발급 실패]
<?xml version='1.0' encoding='UTF-8'?>
<RES>
    <ERROR>0001</ERROR>
    <ERRMSG>No Registerd File</ERRMSG>
    <NONCE>fdfe321xb74azv</NONCE>
</RES>

XML Standards

: - ERROR: 정의된 에러 코드로, 필수로 사용해야 하는 파라미터입니다. 고정된 4byte의 길이를 가져야 하며, 빈 값은 허용하지 않습니다. 성공일 때는 0000으로 표시하고, 그 외에는 실패입니다.
- ERRORMSG: ERROR값이 실패일 때, 그와 관련된 메시지입니다. 이 파라미터는 필수가 아니며 빈 값이 허용됩니다. 최대 255byte까지 허용됩니다.
- CID: CID 발급 페이지에서 CID 정책에 의해 생성된 콘텐츠 아이디로, 성공 시 필수로 입력해야 하는 파라미터입니다. 빈값은 허용하지 않으며, 최대 28byte까지 허용합니다. CID는 영문, 숫자, 일부 특수 문자 (’ _ ’, ’ . ’)만 허용합니다.
- NONCE: PallyCon 클라우드 서비스에서 CID 발급 페이지와 통신하는 데이터를 인증하기 위한 값으로, 필수로 사용해야 하는 파라미터입니다. 빈 값은 허용하지 않으며, 반드시 Request Data에서의 ‘NONCE’ 값과 동일한 값을 보내주셔야 합니다.

CLI(Commnad Line Interface) 패키져

CLI 패키저는 모바일/PC(HTML5) 플레이어용 패키징을 모두 지원합니다.

▪︎ CentOS용 패키져 셋팅

CentOS 기반 CLI 패키저를 DASH 패키징 목적으로 사용하기 위해서는 아래 셋팅 과정이 필요합니다.

1) Bento4 설치

2) Python 2.7x 버전 설치

3) glibc 2.14+ 버전 설치

▪︎ Input

Format
: PallyConPackager –site-id value –packager-key value –contents-id value –ncg –dash –i value –o value

CLI Standards

// HTML5 DASH-CENC Pack
PallyConPackager --site-id DEMO --packager-key FVJDpr0f4Di18v3DKvNOP0 --contents-id testcid --dash --i test.mp4 --o /root/out_dash

// Mobile NCG Pack
PallyConPackager --site-id DEMO --packager-key FVJDpr0f4Di18v3DKvNOP0 --contents-id testcid --ncg --i test.mp4 --o /root/out_dash

// NCG/DASH-CENC Total Pack
#./PallyConPackager --site-id DEMO --packager-key FVJDpr0f4Di18v3DKvNOP0 --contents-id testcid --dash --ncg --i test.mp4 --o /root/out_dash

CLI Format

Name Value Description
–site-id string PallyCon 서비스 사이트 ID (4 byte)
–packager-key base64 encoding 서비스 사이트에 발급 되는 패키징 인증 키. PallyCon 어드민 사이트에서 확인
–contents-id string [Optional] CID 수동 지정, 최대 28byte. 해당 옵션이 없으면 CID 발급 페이지 통해 CID 설정
content_name string 콘텐츠 파일 이름
–ncg None NCG 패키징 수행 원본 파일 이름. mp4.ncg 파일 생성
–dash None DASH-CENC 패키징 수행 원본 파일 이름의 폴더가 생성되고 그 아래 3개 파일 생성 됨 [media-audio-en.mp4, media-video-1.mp4, stream.mpd]
–i string 원본 파일 명
–o string Output 폴더 명. 절대 경로 Full path 입력

PallyCon App 패키져, CLI 패키져 Output

Important

  • 출력은 패키징에 실패하였을 때 나타납니다.
  • App 패키져의 경우, 메인화면 하단 실행창에 표시됩니다.

XML

<?xml version="1.0"encoding="UTF‐8"?>
<NCGPACKAGER>
<RESULT>1103</RESULT>
<ERRORMSG>실행 명령어 다음의 인자 값의 개수가 맞지 않습니다.</ERRORMSG>
<INFO>원본 파일이 설정되지 않았습니다.</INFO>
<WHERE>[FileName=d:\ncg_sdk_svn\application\pallyconpackagerlib\cpallyconpackconfig.cpp,Line=74]</WHERE>
</NCGPACKAGER>
<STACKTRACE>fromCPallyConPackConfig::LoadConfig</STACKTRACE>

XML Standards

: - RESULT: 패키징 결과 코드 값, 성공 – 0 / 실패 – 에러 코드
- ERRORMSG: RESULT에 해당하는 메시지
- INFO: 오류에 따라 추가적인 정보가 들어갑니다.
- WHERE: 오류가 발생한 위치을 알려줍니다.
- STACKTRACE: 오류가 발생한 함수의 스택을 알려줍니다.

▪︎ 에러 코드

에러 코드 내용
0 성공
1101 실행 명령어 뒤에 인자 값들이 하나도 전달되지 않았습니다.
1102 잘못된 인자 값이 입력되었습니다. (INFO 참조 바랍니다.)
1103 실행 명령어 다음의 인자 값의 개수가 맞지 않습니다.
1201 파일이 지정된 경로에 위치하지 않습니다.
1202 파일에 접근 할 수 없습니다. (권한 / 파일이름 문제)
1203 파일/폴더 생성에 실패하였습니다. (깊이가 너무 깊습니다.)
1204 파일/폴더 생성에 실패하였습니다. (이름이 너무 깁니다.)
1205 파일/폴더 생성에 실패하였습니다. (용량이 부족합니다.)
1206 파일의 해당 위치로 이동을 실패하였습니다.
1207 파일의 크기를 얻어오는데 실패하였습니다.
1208 파일/폴더를 찾을 수 없습니다.
1301 CID가 빈 값임
1302 CEK가 빈 값임
1303 NCG 헤더 길이가 잘못되었습니다.
1304 잘못된 암호화 수준입니다.
2001 서버로 요청을 보내는 중 오류가 발생하였습니다.
2002 서버로부터 오류가 반환되었습니다. (INFO 참조 바랍니다.)
2003 잘못된 블록 사이즈입니다.
2004 개인 키가 없습니다.
3001 Config 객체가 설정되지 않았습니다.
3002 Server Comm 객체가 설정되지 않았습니다.
4001 런타임 에러입니다.
4002 잘못된 xml 스키마 입니다.
4003 잘못된 시그니처 입니다.
-1 예상 외 오류가 발생하였습니다.

라이선스 발급

Content Usage Right Info Page

▪︎ REQUEST DATA

http(s)://ContentUsageRightsInfoURL&data=Base64Encoding(AES256Encyption(XML DATA))String

Format

: - UTF-8 문자열 인코딩 사용
- POST Method
- URL: http(s)://Content Usage Rights Info URL
- Body
파라미터 : data Value II: XML DATA

XML

<?xml version='1.0' encoding='UTF-8'?>
<RES>
    <CID>C000004731001HDKLSE23KFL34KJQNC2</CID>
    <USERID>1113654772</USERID>
    <DEVICEID>YqiqMLuuKbIVtPp+Vl36RdLbE+cMmtADw5M=</DEVICEID>
    <DEVICEMODEL>iPhone</DEVICEMODEL>
    <OID>MOVIE-J-R15-2011</OID>
    <NONCE>fdfe321xb74azv</NONCE>
</RES>

XML Standards

: - CID: 사용하려는 콘텐츠에서 추출한 사이트 ID가 포함된 32 byte의 콘텐츠 ID로, 패키징시 사용된 값입니다.
- USERID: 콘텐츠를 사용하려는 사용자 정보입니다.
- DEVICEID: 콘텐츠를 사용하려는 기기의 ID입니다.
- DEVICEMODEL: 기기의 모델명입니다.
- OID: 콘텐츠의 주문정보 (Order ID)입니다. (옵션)
- NONCE: PallyCon 서비스 사이트에서 Content Usage Info 페이지와 통신하는 데이터를 인증하기 위한 값입니다.

▪︎ RESPONSE DATA

Format

: - Base64Encoding(AES256Encyption(XML DATA)) String

- UTF-8 문자열 인코딩 사용

XML

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RES>
    <ERROR>0000</ERROR>
    <ERRMSG>OK</ERRMSG> 
    <LIMIT>Y</LIMIT>
    <PD_START>2013-12-17T13:27:01</PD_START>
    <PD_END>2013-12-18T10:44:56</PD_END>
    <NONCE>fdfe321xb74azv</NONCE>
</RES>

XML Standards

: - ERROR: 정의된 에러 코드로, 필수로 사용해야 하는 파라미터입니다. 고정된 4byte의 길이를 가져야 하며, 빈 값은 허용하지 않습니다. 성공일 때는 0000으로 표시하고, 실패일 때는 업체에서 정의한 4byte의 에러코드로 정의하십시오.
- ERRORMSG: ERROR값이 실패일 때, 그와 관련된 메시지입니다. 이 파라미터는 필수로 사용해야하며, 빈 값은 Error가 아닐 경우만 허용됩니다. 최대 255byte까지 허용됩니다.
- LIMIT: 콘텐츠가 무제한으로 재생될지 결정하는 파라미터입니다. 'Y’, 'N'만 허용됩니다. 그 외의 문자는 에러로 처리됩니다.
- PD_START: 기간제 타입에서 사용해야 하는 기간 중 시작 날짜와 시간입니다. 기간제 타입을 선택하시면 반드시 이 파라미터에 해당하는 값을 넣어 주셔야 합니다. 날짜와 시간은 GMT 시간으로 설정합니다.
- PD_END: CID 발급 페이지에서 CID 정책에 의해 생성된 콘텐츠 ID로, 성공시 필수로 사용해야 하는 파라미터입니다. 빈 값은 허용하지 않으며, 최대 32byte까지 허용합니다. CID는 영문, 숫자, 일부 특수 문자 (’ _ ’, ’ . ’)만 허용합니다.
- NONCE: PallyCon 서비스에서 CID 발급 페이지와 통신하는 데이터를 인증하기 위한 값으로, 필수로 사용해야 하는 파라미터입니다. 빈값은 허용하지 않으며, 반드시 Request Data에서의 'NONCE’ 값과 동일한 값을 보내주셔야 합니다.

License Rule Info

  • 기간제: 기간에 따라 재생을 관리합니다.
  • 무제한: 무제한으로 재생할 수 있도록 합니다.

아래의 표는 콘텐츠 사용 권한 정보 설정에 따라 라이선스 규칙이 어떻게 설정되는지에 대한 표입니다.

License Rules LIMIT PD_START PD_END
기간제 Y PD_END보다 이전 날짜 PD_START보다 이후 날짜
무제한 N Empty Empty

모바일 플레이어

서비스 페이지

▪︎ URL Scheme

Single-Download URL Scheme
: pallyconplayerdownload://info=Base64Encoding(AES256Encyption(JSON DATA))&site_id=SITE ID

Multi-Download URL Scheme
: pallyconplayerdownloads://info=Base64Encoding(AES256Encyption(JSON DATA))&site_id=SITE ID

Streaming URL Scheme
: pallyconplayerplay://info=Base64Encoding(AES256Encyption(JSON DATA))&site_id=SITE ID

Format

: - UTF-8 문자열 인코딩 사용
- SITE ID: 서비스 사이트 식별 ID (PallyCon 어드민 사이트에서 확인 가능)

JSON

[Single-Download JSON String, Streaming JSON String]

{
"user_id":"ID",
"current_url":"http://demo.netsync.co.kr/download_new2.asp",
"enterprise_icon_url":"http://demo.netsync.co.kr/KR2/image/a_logo.png",
"play_type":"0",
"service_manager":"http://demo.netsync.co.kr/LIC/service_manager.asp",
"log_type":"0",
"category_name":"Category",
"category_person":"Person",
"category_image":"http://demo.netsync.co.krKR2/image/korean_icon.png",
"category_assortment":"Assortment",
"contents":[
{
"content_file":"http://112.136.244.30/1_low_language_basic.mp4.ncg",
"content_name":"Content",
"content_qna":"QnA",
"info_orderID":"OrderID",
"info_one":"One",
"info_two":"Two",
"info_three":"Three",
"info_four":"Four"
}
]}

[Multi-Download JSON String (2 Contents)]

{
"user_id":"ID",
"current_url":"http://demo.netsync.co.kr/download_new2.asp",
"enterprise_icon_url":"http://demo.netsync.co.kr/KR2/image/a_logo.png",
"play_type":"0",
"service_manager":"http://demo.netsync.co.kr/LIC/service_manager.asp",
"log_type":"0",
"category_name":"Category",
"category_person":"Person",
"category_image":"http://demo.netsync.co.krKR2/image/korean_icon.png",
"category_assortment":"Assortment",
"contents": [
{
"content_file":"http://112.136.244.30/1_low_language_basic.mp4.ncg",
"content_name":"Content",
"content_qna":"QnA",
"info_orderID":"OrderID",
"info_one":"One",
"info_two":"Two",
"info_three":"Three",
"info_four":"Four"
},
{
"content_file":"http://112.136.244.30/1_low_language_basic.mp4.ncg",
"content_name":"Content",
"content_qna":"QnA",
"info_orderID":"OrderID",
"info_one":"One",
"info_two":"Two",
"info_three":"Three",
"info_four":"Four"
}
]}

JSON Standards

: - userid_: 서비스 사이트 사용자 ID로, 반드시 사용해야 하는 파라미터입니다. PallyCon 플레이어에서는 웹 페이지 만료시 null로 전달받는 것에 대한 처리가 되어있습니다.
- currenturl_: 다운로드를 취소하거나 스트리밍을 완료하였을 때 웹페이지로 이동하기 위한 URL으로, 파라미터는 반드시 사용할 필요는 없습니다. 다만, 사용하지만 값이 없을 경우 빈값(”“)으로 넣어 주셔야 합니다.
- enterpriseicon_url_: PallyCon 플레이어의 업체 리스트에서 보여질 아이콘의 파일 주소로, 파라미터는 반드시 사용할 필요는 없습니다. 사용할 경우, 파라미터의 값이 없을 경우 리스트에는 빈 공백/기본 이미지로 보이게 됩니다.

play_type 값 : 0 | 1 | 2

0: 온라인 상태에서는 콘텐츠 재생에 대한 유효성 체크(Validity check)를 하고 그 응답값에 따라 재생 여부를 결정하고, 오프라인 상태에서는 무조건 재생
1: 온라인 상태에서만 콘텐츠 재생에 대한 유효성 체크(Validity check)를 하여 그 응답값에 따라 재생 여부를 결정
2: 온라인, 오프라인에서 무조건 재생

: - play_type: PallyCon 플레이어에서 다운로드 받은 콘텐츠를 어떤 조건에서 재생하는지 설정하는 값으로, 파라미터는 반드시 사용할 필요는 없습니다. 하지만, 사용할 경우 반드시 값을 넣어 주셔야 합니다. 사용하지 않을 경우, 기본값은 '2'로 설정됩니다.
- service_manager: PallyCon 플레이어에서 웹 서버와 통신할 때 사용하는 Service Manager URL으로, 파라미터는 반드시 사용해야 합니다. 또한 빈 값은 허용하지 않습니다.

log_type 값: 0 | 1 | 2
0: Local DB에 로그를 3000 byte만큼 가지고 있다가 통신이나 라이선스 등 업체에서 수정해야 할 내용이 있는 경우, 웹 서버로 전송하도록 설정 (아직 제공하지 않음)

1: 서비스 전 PallyCon 플레이어와 연동 테스트를 하기 위해 설정되는 값, Local DB에 길이 제한 없이 로그를 저장. '환경 설정’ 페이지에서 로그 버튼이 나타나며 로그를 바로 확인 가능
2: 로그를 사용하지 않음

: - log_type: PallyCon 플레이어에서 로그 설정을 할 수 있는 파라미터로, 반드시 사용할 필요는 없습니다. 하지만 사용할 경우 반드시 값을 넣어 주셔야합니다. 사용하지 않을 경우, 기본값은 '2'로 설정됩니다.

연동 테스트나 고객 서포트 시 통신, 재생, 라이선스 정보를 얻기 위해 로그를 활용할 수 있습니다.
- categoryname_: PallyCon 플레이어의 카테고리 리스트에 보여지는 카테고리 이름으로, 파라미터는 반드시 사용해야 합니다. 모든 문자를 허용하고, 빈값은 허용하지 않습니다.
- categoryperson_: 카테고리 리스트에 카테고리 이름과 함께 보여지는 카테고리 기타 정보를 넣을 수 있는 값으로, 파라미터는 반드시 사용해야 합니다. 모든 문자를 허용하고, 빈값은 허용하지 않습니다.
- categoryimage_: 카테고리 리스트에 보여질 카테고리 아이콘의 파일 주소로, 파라미터는 반드시 사용할 필요는 없습니다. 파라미터의 값이 없을 경우, 리스트에는 빈 공백/기본 이미지로 보이게 됩니다.
- category_assortment: 카테고리를 구분하기 위한 파라미터로, 추후에 리스트 정렬 방식에 사용될 계획입니다. 이 값은 반드시 사용할 필요는 없습니다. 빈값을 허용합니다.
- contents: 다운로드되거나 재생되는 콘텐츠에 대한 정보가 들어있는 파라미터입니다. 멀티 다운로드를 진행할 경우, contents에 해당하는 콘텐츠 정보를 배열 형태로 넣어 주셔야 합니다.

Single-download (Streaming)
• "contents”:[{“content_file”:“”,…}]

Multi-download
• “contents”:[{“content_file”:“”,…},{“content_file”:“”,…},…]

: - contentfile_: 다운로드 / 재생 될 파일이 있는 서버 주소(URL)로, 파라미터는 반드시 사용해야 합니다. 빈값은 허용하지 않습니다.
- contentname_: PallyCon 플레이어의 콘텐츠 리스트에 보여질 콘텐츠 이름으로, 파라미터는 반드시 사용해야 합니다. 모든 문자를 허용하고, 빈값은 허용하지 않습니다.
- contentqna_: 재생 중 질문을 남기기 위해 브라우저의 웹페이지로 이동하기 위한 URL 주소로, 파라미터는 반드시 사용할 필요는 없습니다. 빈값은 허용합니다.
- orderid_: 콘텐츠의 주문 정보입니다. 이 정보는 라이선스를 발급받을 때 구매 확인을 위한 정보로 활용되며, 파라미터는 필수로 입력해야 합니다. 또한 빈값은 허용하지 않습니다.
- info_one, info_two, infothree, info_four_: 다운로드 완료, 유효성 체크 정보 전달시 콘텐츠의 구분을 위한 추가정보로, 파라미터는 필수로 입력할 필요는 없습니다. 또한 빈값을 허용합니다.

Service Manager Page

[REQUEST DATA FORMAT]

http(s)://Service_Manager_URL?data=Base64Encoding(AES256Encryption(JSON DATA))String

Format

: - UTF-8 문자열 인코딩 사용
- POST Method
- URL: http(s)://Service manager URL

- Body
파라미터: data

Value: Base64Encoding(AES256Encyption(JSON DATA))String

[RESPONSE DATA FORMAT]

Format

: - Base64Encoding(AES256Encyption(JSON DATA)) String

- UTF-8 문자열 인코딩 사용

▪︎ 기기 등록

REQUEST DATA

JSON

{
    "mode":"Device Register",
    "site_id":"Site ID",
    "user_id":"test2",
    "device_id":"DID01_WZnTQFOHmZiv1vsevtorDtFHRNc=",
    "device_model":"iPod5,1",
    "app_version":"1.0"
}

JSON Standards

: - mode: 모든 기능에서 웹 서버와 통신은 하나의 Service manager URL을 사용합니다. Service manager URL에서 기능별 분기를 태울 수 있도록 하는 값으로 기기 등록은 'Device Register'입니다.
- siteid_: PallyCon 어드민 사이트에서 확인이 가능한 업체에게 발급되는 값으로 고정값입니다.
- userid_: 기기 DB에 저장되어 있는 사용자 ID 값입니다.
- deviceid_: 기기에서 추출한 기기 ID입니다.
[참고: 기기 ID 생성]
- iOS: UUID를 이용하여 기기 ID를 생성합니다. PallyCon 플레이어와 웹 서버의 기기 등록 해제 없이 공장 초기화를 하고 다시 PallyCon 플레이어를 설치할 경우, 새로운 기기 ID를 만들기 때문에 기기 등록이 실패됩니다. 이 경우에는 업체에 연락하여 기기 등록 해제를 요청해야 합니다.

- Android: 기기 내의 여러 정보를 조합하여 생성합니다.

: - device_model: 기기 모델 명입니다.
[기기 모델 추출]
- iOS: 기기 플랫폼을 추출합니다. ex) iPhone6,1(iPhone5S)

- Android: 기기의 환경설정에 있는 기기 모델명을 추출합니다.

: - app_version: 마켓에 등록되어 표시되고 있는 PallyCon 플레이어 버전입니다.

RESPONSE DATA

JSON

{
    "response":"Y",
    "message":"SUCCESS",
    "message_two":""
}

JSON Standards

: - response: 기기 등록 성공 여부로, 파라미터는 필수로 입력하셔야 합니다. 또한 빈값은 허용하지 않습니다. 값은 'Y | N'으로 내려주셔야 합니다.
- message: 기기 등록 성공 여부에 맞는 메시지로 PallyCon 플레이어에서 알림으로 표시됩니다. 이 파라미터는 필수로 입력하셔야 합니다. 파라미터의 값은 빈 값을 허용하며, 빈 값일 경우 성공 여부에 따라 '기기 등록에 성공하였습니다.’ 혹은 '기기 등록에 실패하였습니다.’ 라는 메시지를 기본값으로 표시합니다.
- messagetwo_: 성공 여부와 메시지 외에 사용할 수 있는 인터페이스 입니다. 이 파라미터는 안드로이드에서 'device_id'가 동일하게 추출되는 경우에 'NOT_SUPPORT_DEVICE_MODEL'을 값으로 넣어주면, device_id를 다시 추출하여 등록을 다시 시도합니다.

▪︎ 다운로드 완료

REQUEST DATA

JSON

{
    "mode":"Download Complete",
    "site_id":"Site ID",
    "user_id":"test2",
    "device_id":"DID01_WZnTQFOHmZiv1vsevtorDtFHRNc=",
    "date":"201405191120",
    " download_status":"Y",
    " info_orderID":"0",
    " info_one":"",
    "info_two":"",
    "info_three":"A",
    "info_four":"1"
}

JSON Standards

: - mode: 모든 기능에서 웹 서버와 통신은 하나의 Service manager URL을 사용합니다. Service manager URL에서 기능별 분기를 처리할 수 있도록 하는 값으로 다운로드 완료는 'Download Complete'입니다.
- siteid_: PallyCon 어드민 사이트에서 확인이 가능한 업체에게 발급되는 값으로 고정값입니다.
- userid_: 기기에 저장되어 있는 사용자 ID 값입니다.
- deviceid_: 기기에서 추출한 기기 ID입니다.
- date: 기기에서 추출한 현재 날짜입니다. GMT가 아니니 주의하세요.
[날짜 규격]
yyyyMMddHHmm: 년도(yyyy) | 월(MM) | 일(dd) | 시(HH) | 분(mm)

ex)201412012359 -> 2014년 12월 1일 23시 59분

: - downloadstatus_: 다운로드 완료 기능에서 다운로드가 완료되었음을 알리는 파라미터입니다. 값은 Y | N으로 표시됩니다.
- info_orderID, info_one, infotwo, info_three, info_four_: Protocol I(URL Scheme)으로 전달받은 값을 기기에 저장하였다가 불러온 파라미터와 값들입니다. 웹 서버에서 콘텐츠 구분을 위한 추가 정보로 활용됩니다.

RESPONSE DATA

NO Response

▪︎ Validation Check

REQUEST DATA

JSON

{
    "mode":"Validity Check",
    "site_id":"Site ID",
    "user_id":"test2",
    "device_id":"DID01_WZnTQFOHmZiv1vsevtorDtFHRNc=",
    "category_name":"[A사_무료기획]2014국어특강",
    "content_name":"1강_저_국어의 기초",
    "info_orderID":"0",
    "info_one":"",
    "info_two":"",
    "info_three":"A",
    "info_four":"1"
}

JSON Standards

: - mode: 모든 기능에서 웹 서버와 통신은 하나의 Service manager URL을 사용합니다. Service manager URL에서 기능별 분기를 태울 수 있도록 하는 값으로 유효성 체크은 'Validity Check'입니다.
- siteid_: PallyCon 어드민 사이트에서 확인이 가능한 업체에게 발급되는 값으로 고정값입니다.
- userid_: 기기에 저장되어 있는 사용자 ID 값입니다
- deviceid_: 기기에서 추출한 기기 ID입니다.
- categoryname_: 기기 DB에 저장되어 있는 카테고리 이름입니다.
- contentname_: 기기 DB에 저장되어 있는 콘텐츠 이름입니다.
- info_orderID, info_one, info_two, info_three, info_four: Protocol I(URL Scheme)으로 전달받은 값을 기기에 저장하였다가 불러온 파라미터와 값들입니다. 웹 서버에서 콘텐츠 구분을 위한 추가 정보로 활용됩니다.

RESPONSE DATA

JSON

{
    "response":"0",
    "message":"SUCCESS"
}

JSON Standards

: - response: 재생하려는 콘텐츠의 유효성을 서버에서 체크하여 결과를 PallyCon 플레이어에 전달해 주는 파라미터입니다. 빈값은 허용하지 않습니다. 값은 '0 | 1 | 2 | 3’ 중 하나를 내려주셔야 합니다.
[response 값: 0 | 1 | 2 | 3 ]
0: 재생 허가

1: 휴강 (해당 콘텐츠의 라이선스를 삭제합니다.)

2: 환불 (해당 콘텐츠가 포함되어 있는 카테고리까지 삭제합니다.)

3: 재생 제한

: - message: PallyCon 플레이어에서 알림으로 표시하는데 사용할 서버의 메시지를 넣는 파라미터입니다. 필수로 사용해야만 합니다. 재생을 허가하는 경우 (response: 0)에는 빈값을 허용합니다. 그외에는 빈값을 허용하지 않습니다.

▪︎ LMS

REQUEST DATA

JSON

{
    "mode":"LMS",
    "site_id":"Site ID",
    "user_id":"test3",
    "device_id":"DID01_WZnTQFOHmZiv1vsevtorDtFHRNc=",
    "date":"201407170506",
    "category_name":"Test",
    "content_name":"1강_저_국어의 기초",
    "info_orderID":"0",
    "info_one":"",
    "info_two":"",
    "info_three":"A",
    "info_four":"1",
    "last_play_time":"0",
    "lms_percent":"0",
    "lms_sections":"0:10,11:30"
}

JSON Standards

: - mode: 모든 기능에서 웹 서버와 통신은 하나의 Service manager URL을 사용합니다. Service manager URL에서 기능별 분기를 태울 수 있도록 하는 값으로 유효성 체크은 'Validity Check'입니다.
- siteid_: PallyCon 어드민 사이트에서 확인이 가능한 업체에게 발급되는 값으로 고정값입니다.
- userid_: 기기에 저장되어 있는 사용자 ID 값입니다
- deviceid_: 기기에서 추출한 기기 ID입니다.
- date: 진도 정보를 전달할 때의 날짜 입니다. (YYYYMMDDHHmm)
- categoryname_: 기기 DB에 저장되어 있는 카테고리 이름입니다.
- contentname_: 기기 DB에 저장되어 있는 콘텐츠 이름입니다.
- info_orderID, info_one, infotwo, info_three, info_four_: Protocol I(URL Scheme)으로 전달받은 값을 기기에 저장하였다가 불러온 파라미터와 값들입니다. 웹 서버에서 콘텐츠 구분을 위한 추가 정보로 활용됩니다.
- last_playtime_: 사용자가 재생을 완료할 때의 시간입니다. 단위는 '초'입니다. 단위는 생략되어 있습니다.
- lms_percent: 진도율로 사용자가 재생했던 부분의 퍼센트입니다. 단위는 ’%'입니다. 단위는 생략되어 있습니다.
- lms_sections: 재생 구간으로 사용자가 재생했던 부분의 구간들입니다. 단위는 '초'입니다. 단위는 생략되어 있습니다.
[주의]: PallyCon 플레이어에서 생성하는 재생 구간은 가공된 것입니다. 이전 구간과 새로운 구간을 합쳐서 만들어집니다. 합치는 규칙은 다음과 같습니다.
- 재생한 구간이 겹쳐질 경우 하나의 구간으로 결정 (ex: 이전구간(10:20) + 새로운 구간(15:50) = 결과(10:50))
- 재생한 구간이 이어질 경우 하나의 구간으로 결정 (ex: 이전구간(10:20) + 새로운 구간(21:50) = 결과(10:50))

RESPONSE DATA

JSON

{
    "response":"Y",
    "message":"Success"
}

JSON Standards

: - response: 진도 정보 처리 성공 여부로, 파라미터는 필수로 입력하셔야 합니다. 또한 빈값은 허용하지 않습니다. 값은 'Y | N'으로 내려주셔야 합니다.
- message: 진도 정보 처리 성공 여부에 맞는 메시지입니다. PallyCon 플레이어 에서는 별도로 처리되지 않습니다.

▪︎ 기기 등록 해제

REQUEST DATA

JSON

{
    "mode":"Device Release",
    "site_id":"Site ID",
    "user_id":"test3",
    "device_id":"DID01_WZnTQFOHmZiv1vsevtorDtFHRNc="
}

JSON Standards

: - mode: 모든 기능에서 웹 서버와 통신은 하나의 Service manager URL을 사용합니다. Service manager URL에서 기능별 분기를 태울 수 있도록 하는 값으로 기기 등록 해제는 'Device Release'입니다.
- siteid_: PallyCon 어드민 사이트에서 확인이 가능한 업체에게 발급되는 값으로 고정값입니다.
- userid_: 기기에 저장되어 있는 사용자 ID 값입니다
- deviceid_: 기기에서 추출한 기기 ID입니다.

RESPONSE DATA

JSON

{
    "response":"Y",
    "message":"Success"
}

JSON Standards

: - response: 기기 등록 해제 성공 여부로, 파라미터는 필수로 입력하셔야 합니다. 또한 빈값은 허용하지 않습니다. 값은 'Y | N'으로 내려주셔야 합니다.
- message: 기기 등록 해제 성공 여부에 맞는 메시지로 PallyCon 플레이어에서 알림으로 표시됩니다. 이 파라미터는 필수로 입력하셔야 합니다. 파라미터의 값은 빈값을 허용하며, 빈값일 경우 성공 여부에 따라 '기기 등록 해제에 성공하였습니다.’ 혹은 '기기 등록 해제에 실패하였습니다.’ 라는 메시지를 기본값으로 설정됩니다.

PC HTML5 플레이어

Service Page

▪︎ 플레이어 호출 API

플레이어 URL 호출
:아래 규격에 맞춰 JSON 데이터와 함께 플레이어 URL을 새 창으로 호출하면 동영상 재생을 시작합니다.

Request
: - UTF-8 문자열 인코딩 사용
- POST Method
- URL: http://webplayer.pallycon.com
- Body : request parameters

Name Value
data 재생하려는 콘텐츠의 메타정보를 JSON 규격 문자열로 생성하여 URL Encoding 처리 후 data 파라미터로 전달 합니다.
skin 플레이어 UI 스킨을 선택하는 값입니다. 세 가지 디자인이 제공됩니다. (“1” , “2”, “3”)
{
    "site_id":"DEMO",
    "user_id":"test",
    "service_manager":"<Domain>.com/ServiceManager.asp",
    "language":"KR",
    "play_idx":"1",
    "continue_play_yn":"y",
    "view_yn":"y",
    "contents": [ "<contents JSON Data1>", "<contents JSON Data2>",... ]
}

JSON Format Data string
: 플레이어 호출 시 data 파라매터에 전달 할 JSON 데이터의 메타 규격입니다.

Name Value Description
site_id string PallyCon 서비스 가입 시 발급, 4바이트 문자
user_id string 서비스 사이트 사용자 ID
service_manager string 북마크, LMS 정보 연동을 위한 Service Manager 페이지 URL
language enum 플레이어 UI 언어 지정 (“KR”, “EN”)
play_idx string Play list 중 재생 하려고 하는 list index 값
continue_play_yn enum 이어보기 기능 사용 설정 값 (“y”, “n”)
view_yn enum 플레이어 화면 우측 LMS 화면 사용 설정 값 (“y”, “n”)
contents JSON 재생 하려는 콘텐츠 list 정보(아래 규격)
{
    "content_file":"<file url>",
    "content_name":"<content name>",
    "content_type":"<content type>",
    "content_end_date":"<expire date>",
    "course_status":"<course status>",
    "last_play_time":"<last playback time>",
    "lms_percent":"<lms percent>",
    "lms_section":"<lms section>",
    "info_one":"<content meta data>",
    "info_two":"<content meta data>",
    "info_three":"<content meta data>",
    "info_four":"<content meta data>",
    "bookmark_time":"<bookmark time>",
    "bookmark_memo":"<bookmark memo>",
    "list_idx":"<list index>",
    "customDRMData":"<customDRMdata>"
}

contents JSON Data Format
:플레이어를 통해 재생하려는 콘텐츠의 메타 정보 JSON 규격입니다.
하나의 JSON 세트당 하나의 콘텐츠 정보를 가지며, 여러 콘텐츠를 list에 추가 하려면 contents JSON Data를 반복 생성하면 됩니다.

Name Value Description
content_file string 스트리밍 재생할 파일 URL 주소
content_name string 콘텐츠 파일 이름
content_type string 파일 유형
content_end_date string 재생 만료 날짜
course_status enum 강좌 수강 상태 (미수강:“0”, 수강중:“1”, 수강완료:“2”)
last_play_time string 마지막 재생 시간(초), 이 시점부터 이어보기 재생
lms_percent string 재생 백분율, % 단위 없이 숫자로만 표기
lms_section string 재생 구간 정보, 형식) 재생시간(초):종료(초),…e.g.) “0:20,40:100” -> 0초~ 20초 구간 재생, 40초~100초 재생
info_one string 콘텐츠 추가 정보 1
info_two string 콘텐츠 추가 정보 2
info_three string 콘텐츠 추가 정보 3
info_four string 콘텐츠 추가 정보 4
bookmark_time string 북마크 시간(총), 형식) 시간;시간;…
bookmark_memo string 북마크 이름, 형식) 이름;이름;… / 이름 문자열에 구분자 “;” 사용 금지
list_idx string 리스트 표시 될 인덱스 값
customDRMData string DRM license 요청에 사용 되는 인증 정보(아래 규격)
{
    "user_id":"<user id>",
    "cid":"<content id>",
    "oid":"<order id>"
}

customDRMdata Format
: siteid(4) + base64 E( aes256 E ( json data ) )

Name Value Description
user_id string 고객사 서비스 사이트 사용자 ID
cid string 패키징에 사용된 content ID
oid string 사용자 주문 식별 정보 (Optional)

Service Manager Page

[REQUEST DATA FORMAT]

http(s)://Service_Manager_URL?data=Base64Encoding(AES256Encryption(JSON DATA))String

Format

: - UTF-8 문자열 인코딩 사용
- POST Method
- URL: http(s)://Service manager URL
- POST Body
파라미터: data
Value: Base64Encoding(AES256Encyption(JSON DATA))String



[RESPONSE DATA FORMAT]

Format

: - Base64Encoding(AES256Encyption(JSON DATA)) String

- UTF-8 문자열 인코딩 사용

▪︎ Bookmark

REQUEST DATA
{
    "mode":"BOOKMARK",
    "site_id":"<service site id>",
    "user_id":"<service site user id>",
    "content_name":"<content name>",
    "info_one":"<content meta data>",
    "info_two":"<content meta data>",
    "info_three":"<content meta data>",
    "info_four":"<content meta data>",
    "bookmark_time":"<bookmark time>",
    "bookmark_memo":"<bookmark memo>"
}

contents JSON Data Format

Name Value Description
mode string “BOOKMARK” 고정 값
site_id string PallyCon 서비스 가입 시 발급, 4바이트 문자
user_id string 고객사 서비스 사이트 사용자 ID
content_name string 콘텐츠 파일 이름
info_one string 콘텐츠 추가 정보 1
info_two string 콘텐츠 추가 정보 2
info_three string 콘텐츠 추가 정보 3
info_four string 콘텐츠 추가 정보 4
bookmark_time string 북마크 시간(총), 형식) 시간;시간;…
bookmark_memo string 북마크 이름, 형식) 이름;이름;… 이름 문자열에 구분자 “;” 사용 금지
RESPONSE DATA
{
    "result": "y"
}

contents JSON Data Format

Name Value Description
result string “y” or “n”

▪︎ LMS

REQUEST DATA
{
    "mode":"LMS",
    "site_id":"<service site id>",
    "user_id":"<service site user id>",
    "content_name":"<content name>",
    "data":"<playback date>",
    "info_one":"<content meta data>",
    "info_two":"<content meta data>",
    "info_three":"<content meta data>",
    "info_four":"<content meta data>",
    "lms_percent":"<lms percent>",
    "lms_section":"<lms section>",
    "last_play_time":"<last playback time>"
}

Warnning: PallyCon 플레이어에서 생성하는 재생 구간은 가공된 것입니다. 이전 구간과 새로운 구간을 합쳐서 만들어집니다. 합치는 규칙은 다음과 같습니다.
- 재생한 구간이 겹쳐질 경우 하나의 구간으로 결정 (ex: 이전구간(10:20) + 새로운 구간(15:50) = 결과(10:50))
- 재생한 구간이 이어질 경우 하나의 구간으로 결정 (ex: 이전구간(10:20) + 새로운 구간(21:50) = 결과(10:50))

contents JSON Data Format

Name Value Description
mode string “BOOKMARK” 고정 값
site_id string PallyCon 서비스 가입 시 발급, 4바이트 문자
user_id string 고객사 서비스 사이트 사용자 ID
content_name string 콘텐츠 파일 이름
date string 콘텐츠 재생 시간. (YYYYMMDDhhmm, 년/월/일/24시간/분)
info_one string 콘텐츠 추가 정보 1
info_two string 콘텐츠 추가 정보 2
info_three string 콘텐츠 추가 정보 3
info_four string 콘텐츠 추가 정보 4
lms_percent string 재생 백분율, % 단위 없이 숫자로만 표기
lms_section string 재생 구간 정보, 형식) 재생시간(초):종료(초),… e.g.) “0:20,40:100” -> 0초~ 20초 구간 재생, 40초~100초 재생 플레이어 호출 시 전달 된 lms_section 값과 합산한 값
last_play_time string 마지막 재생 시간(초), 이 시점부터 이어보기 재생
RESPONSE DATA
{
    "result": "y"
}

contents JSON Data Format

Name Value Description
result string “y” or “n”

footer

Copyright 2014 INKA ENTWORKS. All Rights Reserved.