세션 매니저 API 가이드

워터마크 전처리를 마친 ‘0’과 ‘1’ 두 버전의 콘텐츠(DASH 또는 HLS)는 사용자의 재생 요청 시에 실시간으로 조합되어 클라이언트에 전달됩니다. PallyCon 포렌식 워터마킹 서비스에서 제공하는 세션 매니저는 해당 재생 세션의 정보와 조합할 콘텐츠 URL을 입력받아, 최종 사용자에게 전달될 세션 URL을 생성합니다.

서비스 사이트는 아마존 CloudFront 또는 아카마이 CDN의 워터마크 연동을 통해 세션 URL에 따라 조합된 콘텐츠를 클라이언트에 스트리밍할 수 있습니다.

sequenceDiagram
    participant A as 서비스 사이트
    participant B as PallyCon 클라우드
    A ->> B: 콘텐츠URL, 세션 정보 전달
    Note right of B: 세션 매니저
    B -->> B: 세션 키(Payload) 생성 및 세션 정보 저장
    B ->> A: 세션 URL 전달

연동 방식

세션 매니져 API 는 2가지 요청 방법을 지원합니다.
Authorization 헤더가 Http Header에 포함되어 있으면 JWT 인증 방식으로 작동합니다.

  • pallycon-apidata 연동 (aes 암호화 방식)
  • JWT 인증

동영상 튜토리얼

세션 매니저 API 샘플 코드를 이용해 세션 URL을 생성하는 방법에 대한 영상입니다. (영상 후반부 참조)

PallyCon HTTP API 규격

PallyCon 서비스에서 사용하는 각종 HTTP API 요청시 아래 규격을 따릅니다.

API 요청 규격에 대한 샘플 코드는 샘플 다운로드 페이지에서 확인하시기 바랍니다.

요청 규격

Param key Value
pallycon-apidata base64 Encoding ( JSON string )

요청 데이터 JSON 포맷

{
    "data":"{각 API 별 `API 데이터` JSON 값을 aes256 cbc 암호화한 base64 문자열}",
    "timestamp":"{yyyy-mm-ddThh:mm:ssZ}",
    "hash":"{아래 'SHA256 입력 포맷'의 문자열 값을 sha256 해시 처리한 base64 문자열}"
}

요청 데이터 명세

Key Type Required Description
data String Y 각 API마다 정의된 규격으로 생성한 JSON 문자열을 AES 암호화하고, 결과값을 base64 문자열로 입력
timestamp String Y GMT 시간대 기준으로 요청 시점의 시간을 “yyyy-mm-ddThh:mm:ssZ” 포맷으로 입력
hash String Y 아래 규격에 따라 생성한 해시값을 입력

AES256 Encryption

aes256 Encryption/Decryption 처리는 PallyCon Cloud 서비스 사이트 생성 시 발급 되는 Site 키 값을 이용하여 아래와 같이 처리 합니다. ( PallyCon 콘솔 사이트에서 확인 )

  • mode : CBC
  • AES key : 32 byte (PallyCon 콘솔 사이트에서 발급 되는 site key)
  • AES IV : fixed 16 byte (0123456789abcdef)
  • padding : pkcs7

SHA256 message Format

SHA256 해시의 입력값은 다음과 같은 문자열을 조합해 입력합니다.

[site access key] + [site_id] + [json.data] + [json.timestamp]
  • site access key: PallyCon Cloud 서비스 사이트 생성 시 발급 되는 access key 값이며 PallyCon 콘솔 사이트에서 확인 가능합니다.
  • sha256 해시 함수의 결과 값은 문자열로 변환하지 않고 바이너리 데이터 형태 그대로 base64 함수에 입력되어야 합니다.

JWT 인증 규격

Authorization 헤더에 토큰 api를 통해 발급된 데이터를 설정하여 Session API를 호출할 수 있습니다.

JWT Token 발급 API

  • JWT 인증 규격을 통한 Session API 호출 시 아래 과정을 통해 생성한 인증 토큰을 설정해야 합니다.

1단계: Base64 인코딩된 인증 매개변수 생성

  1. 웹 브라우저로 PallyCon 데브콘솔의 Base64 Enc/Dec 페이지에 접속합니다.
  2. Encrypt 옵션이 선택된 상태에서 AccountID:AccessKey 형태의 값을 왼쪽 필드에 입력합니다.
  3. 아래 스크린샷 이미지와 같이 Base64 인코딩 된 값이 화면 오른쪽에 출력됩니다.
  4. 다음 단계에서 사용을 위해 출력된 값을 복사해둡니다.

AccountIDAccessKey 값은 각각 PallyCon 서비스 가입 시 입력한 계정 ID와 가입 후 콘솔에 표시되는 엑세스 키를 입력해야 합니다.

2단계: 인코딩 된 매개변수를 이용해 인증 토큰 생성

1단계에서 생성한 Base64 인코딩 결과 값을 아래 토큰 API 요청의 Authorization 헤더에 설정해 API를 호출합니다.

경로 매개변수

매개변수 유형 설명
siteId 네자리 영숫자 콘솔에 표시되는 PallyCon 사이트 ID

요청 헤더

헤더 명 설명
Authorization 기본 인증 : Basic base64encode(userId:accessKey)

요청 예제

GET /api/v2/token/DEMO HTTP/1.1
Authorization: basic authInfo
Host: watermark.pallycon.com

응답 데이터 필드

필드 유형
error_code String 에러 코드
error_message String 에러 메시지
data.token String API 인증 토큰

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 112
{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "token" : "Bearer valid-token"
  }
} 

API 요청 헤더

Authorization 헤더에 토큰 API를 통해 발급된 데이터를 설정하여 세션 매니저 API를 호출할 수 있습니다.

공통 응답 규격

응답 상태

HTTP 상태 코드 설명
200 성공
401 JWT 토큰 규격이 잘못 되었거나 사용자 정보를 찾을 수 없습니다.
403 API 이용 권한이 없습니다.

응답 데이터 필드

유형
error_code String 0000: 성공 / 실패 시 해당 에러코드
error_message String 에러 메시지
data Json API 수행 결과

세션 URL API

클라이언트에서 재생할 세션 URL(DASH mpd 또는 HLS m3u8 주소)을 받아오는 API입니다. 패키징 단계에서 A/B로 전처리된 결과물의 URL과 워터마크로 임베딩될 세션 정보(forensic mark)를 입력값으로 전달합니다.

요청 규격

  • PallyCon HTTP API 규격으로 호출
  • URL : https://watermark.pallycon.com/api/v2/session/watermarkUrl/{site_id}
  • Method: GET

URL의 ‘site_id’ 부분은 PallyCon 콘솔 사이트에서 발급된 실제 사이트 ID를 입력해야 합니다.

API 데이터 JSON 포맷

{
    "domain": {domain},
    "output_path": {output_path},
    "cid": {cid},
    "streaming_format": {dash/hls},
    "cmaf": {true/false},
    "forensic_mark": {forensic_mark},
    "wmt_type": {aes/jwt},
    "prefix_folder": "wm-contents"
} 

API 데이터 명세

Key Type Required Description
domain String Y 재생할 콘텐츠 URL의 도메인 부분. 일반적으로 CDN이 적용된 콘텐츠 URL 도메인을 입력. (예: xxxx.cloudfront.net)
output_path String Y 워터마크 패키징 요청 시 입력한 출력 경로
cid String Y 콘텐츠의 고유 ID
streaming_format String Y 콘텐츠의 스트리밍 유형 (dash 또는 hls)
cmaf Boolean N CMAF 여부 (기본값: false)
forensic_mark String Y 워터마크로 적용될 세션 데이터 (사용자 ID, 클라이언트 정보 등), 최대 254 byte
wmt_type String N 세션 URL에 사용되는 워터마크 데이터 형식 (기본값: aes)
- aes: CloudFront CDN 연동에 사용되는 PallyCon 고유 규격
- jwt: Akamai, Fastly 등의 CDN 연동에 사용되는 JWT 토큰 규격
prefix_folder String N (T&P 서비스의 경우는 Y) T&P 서비스에 의해 패키징된 FWM 콘텐츠의 경우 wm-contents 값을 여기에 입력합니다.

응답 규격

응답 데이터 JSON 포맷

{
    "error_code": {error_code},
    "error_message": {message},
    "data": {watermark_session_url}
} 

응답 데이터 명세

Key Type Description
error_code String “0000” : 성공, 에러인 경우 영문/숫자로 정의된 에러코드
error_message String 에러 메세지 내용
data String 성공한 경우, 변환된 세션 URL (워터마크 URL) 리턴

세션 URL 형식: 아래 설명 참조

워터마크 세션 URL 형식

  • CloudFront용 URL (aes type): <content CDN domain>/dldzkdpsxmdnjrtm/<encrypted payload>/<output_path>/<cid>/<stream_format>/<manifest file>

  • Akamai, Fastly용 URL (jwt type): <content CDN domain>/<WMT>/<output_path>/<cid>/<stream_format>/<manifest file>

  • 세션 URL 구성

    항목 설명
    content CDN domain 콘텐츠를 서비스하는 CDN의 도메인명. 요청 데이터의 도메인 값을 기준으로 설정됨
    dldzkdpsxmdnjrtm 미리 정의된 고정 키워드 (CloudFront 연동 용)
    encrypted payload 세션 매니저에서 생성된 세션 키(Payload)를 암호화한 데이터 (CloudFront 연동 용)
    WMT 세션 매니저에서 생성된 세션 키(Payload)가 포함된 JWT 토큰 (Akamai, Fastly 연동 용)
    output_path 콘텐츠가 저장된 경로. 요청 데이터의 콘텐츠 URL을 기준으로 설정됨
    cid 콘텐츠의 고유 ID (ContentID)
    stream_format 콘텐츠의 스트리밍 유형에 따라 dash 또는 hls 입력됨
    manifest file 스트리밍 유형에 따라 stream.mpd 또는 master.m3u8 입력됨

워터마크 토큰 API

세션 URL에서 사용되는 워터마크 토큰 데이터(Encrypted payload 또는 WMT)를 직접 요청하는 API입니다. 콘텐츠 경로와 CID, 스트리밍 유형 등의 형식이 고정된 세션 URL API를 사용하는 대신, 직접 임의의 규격으로 세션 URL을 구성하려는 경우에 사용할 수 있습니다.

워터마크 토큰 API를 통해 임의로 구성한 세션 URL을 재생하려면 CDN 엣지의 워터마크 임베딩 (A/B Switching) 로직을 직접 구현해야 합니다. 따라서 토큰 API는 고객사에서 직접 CDN의 워터마크 임베딩을 구현하거나 커스터마이징하는 경우에만 사용 가능합니다.

PallyCon에서 기본 제공하는 CloudFront 샘플이나 Akamai CDN 연동을 이용하는 경우에는 토큰 API 대신 세션 URL API의 사용을 권장합니다.

요청 규격

  • PallyCon HTTP API 규격으로 호출
  • URL : https://watermark.pallycon.com/api/v2/session/watermarkToken/{site_id}
  • Method: GET

URL의 ‘site_id’ 부분은 PallyCon 콘솔 사이트에서 발급된 실제 사이트 ID를 입력해야 합니다.

API 데이터 JSON 포맷

{
    "forensic_mark": {forensic_mark},
    "wmt_type": {aes/jwt},
    "streaming_format": {dash/hls},
    "cmaf": {true/false}
} 

API 데이터 명세

Key Type Required Description
forensic_mark String Y 워터마크로 적용될 세션 데이터 (사용자 ID, 클라이언트 정보 등), 최대 254 byte
wmt_type String N 세션 URL에 사용되는 워터마크 데이터 형식 (기본값: aes)
- aes: CloudFront CDN 연동에 사용되는 PallyCon 고유 규격
- jwt: Akamai, Fastly 등의 CDN 연동에 사용되는 JWT 토큰 규격
streaming_format String Y 콘텐츠의 스트리밍 유형 (dash 또는 hls)
cmaf Boolean N CMAF 여부 (기본값: false)

응답 규격

응답 데이터 JSON 포맷

{
    "error_code": {error_code},
    "error_message": {message},
    "data": {watermark_token_data}
} 

응답 데이터 명세

Key Type Description
error_code String “0000” : 성공, 에러인 경우 영문/숫자로 정의된 에러코드
error_message String 에러 메세지 내용
data String 성공한 경우, 요청 데이터의 wmt_type 값에 따라 CloudFront 연동용 Encrypted Payload 또는 Akamai/Fastly 연동용 WMT 토큰 값을 리턴

세션 목록 API

세션 URL API를 통해 생성된 세션 정보를 조회할 수 있는 API입니다. PallyCon Console 사이트에서도 동일한 정보를 조회할 수 있습니다.

요청 규격

  • PallyCon HTTP API 규격으로 호출
  • URL : https://watermark.pallycon.com/api/v2/session/list/{site_id}
  • Method: GET

URL의 ‘site_id’ 부분은 PallyCon 콘솔 사이트에서 발급된 실제 사이트 ID를 입력해야 합니다.

API 데이터 JSON 포맷

{
    "keyword": {search keyword},
    "search_keyword_type": {watermark, sessionKey},
    "from": {yyyymmddhhmmss},
    "to": {yyyymmddhhmmss},
    "page_unit": {long value},
    "last_key": {string},
    "last_created_time": {yyyymmddhhmmss}
}

API 데이터 명세

Key Type Required Description
keyword String N 결과값에 대한 키워드 검색 시, 아래 검색 유형에 해당하는 키워드를 입력
search_keyword_type String N 키워드 검색 유형 (watermark 또는 sessionKey 입력)
from String N 세션 API 요청 시간을 기준으로 한 검색 시작 날짜 (yyyyMMddHHmmss 형식 GMT 시간)
to String N 검색 종료 날짜 (yyyyMMddHHmmss 형식 GMT 시간)
page_unit Long N 조회할 항목 갯수 (default: 25)
last_key String N 마지막으로 조회한 세션키
last_created_time String N 마지막으로 조회한 세션키의 생성 시간 (yyyyMMddHHmmss 형식 GMT 시간)

응답 규격

응답 데이터 JSON 포맷

{
    "error_code": {error_code},
    "error_message": {message},
    "count": {watermark_url},
    "lastKey": {
        "key": {sessionKey},
        "createdTime": {YYMMDDhhmmss}
    },
    "data": [{
        "key": {sessionKey},
        "forensicMark": {watermark},
        "createdTime": {YYMMDDhhmmss}
    }]
} 

응답 데이터 명세

Key Type Description
error_code String “0000” : 성공, 에러인 경우 영문/숫자로 정의된 에러코드
error_message String 에러 메세지 내용
count String 조회된 항목 갯수
lastKey Json 마지막으로 조회된 세션키 정보
data Json Array 조회된 세션 정보 목록

lastKey 항목 명세

Key Type Description
key String 마지막으로 조회된 세션키
createdTime String 마지막 조회된 세션키의 생성 날짜 (yyyyMMddHHmmss 형식 GMT 시간)

data 항목 명세

Key Type Description
key String 마지막 조회된 세션키
forensicMark String 세션 API 요청 데이터를 통해 입력된 워터마크 정보 (예: 최종 사용자 ID, IP주소 등)
createdTime String 마지막 조회된 세션키의 생성 날짜 (yyyyMMddHHmmss 형식 GMT 시간)

세션 매니저 API 에러 코드

아래 에러 코드 중 해결 방안이 명시되어 있지 않은 항목들은 고객사에서 직접 해결할 수 없는 에러입니다. 해당 에러 발생 시에는 헬프데스크를 통해 문의해 주시기 바랍니다.
에러 코드 상태 원인 해결 방안
0000 API 응답 성공
A1000 API 파라미터 오류 API URL의 파라미터가 null이거나 잘못된 값이 입력되었습니다. API 가이드에 따라 정확한 파라미터를 입력해 다시 호출합니다.
A1002 Timestamp 형식 오류 pallycon-apidata 내부의 timestamp 형식이 잘못되었습니다. timestamp 값을 yyyy-mm-ddThh:mm:ssZ 형식의 GMT 시간으로 입력합니다.
A1003 사이트 ID 값을 찾을 수 없음 API 파라미터에 사이트 ID가 누락되었거나 잘못된 값이 입력되었습니다. PallyCon 콘솔 사이트에서 정확한 사이트 ID (네자리 영숫자) 값을 확인해 적용합니다.
A1006 사이트 키 복호화 실패 pallycon-apidatadata 부분이 잘못된 사이트 키로 암호화 되었습니다. PallyCon 콘솔 사이트에서 정확한 사이트 키 값을 확인해 적용합니다.
A1007 해시 검증 실패 API 요청 데이터의 해시 값이 잘못 생성되었습니다. API 가이드 문서를 참고해 정확한 해시 값을 적용합니다.
A1008 데이터베이스 접속 실패 API 서버 내부적으로 데이터베이스 접속이 실패하였습니다.
A1915 사이트 ID 값 오류 API 파라미터에 사이트 ID가 누락되었거나 잘못된 값이 입력되었습니다. PallyCon 콘솔 사이트에서 정확한 사이트 ID 값을 확인해 적용합니다.
A1916 워터마크 데이터 길이 오류 forensic_mark 항목에 입력된 워터마크 데이터 길이가 254 바이트를 초과했습니다. 해당 값을 254 바이트보다 짧게 줄여 입력합니다.
A1917 트라이얼 계정 제한 초과 트라이얼 계정에 적용된 세션 API 호출 제한(최대 1,000회)이 초과되었습니다. 상용 계정으로 전환하거나 필요 시 헬프데스크를 통해 트라이얼 제한 초기화를 요청합니다.
A1918 포렌식 워터마크 서비스 중지됨 트라이얼이 만료되었거나 상용 서비스가 중단되었습니다. 트라이얼 고객인 경우, 상용 플랜으로 전환하거나 필요 시 콘솔에서 트라이얼 연장을 신청합니다. 상용 플랜 이용 중에 해당 에러가 발생한 경우에는 헬프데스크로 문의해 주시기 바랍니다.
A2001 워터마크 URL 생성에 필요한 파라미터 누락 API 입력 데이터에 필요한 파라미터가 누락되었습니다. API 가이드 문서를 참고해 정확한 입력값을 적용합니다.
A2002 트라이얼 제한 관련 오류 발생 데이터베이스 연결 오류로 트라이얼 카운트 업데이트를 하지 못했습니다.
A2003 스트리밍 포맷 입력값 오류 streaming_format 입력값이 누락되거나 잘못되었습니다. 대상 스트림 포맷에 따라 dash 또는 hls 를 정확히 입력합니다.
A2004 API 입력 데이터 파싱 실패 규격에 맞지 않는 데이터가 입력되었습니다. API 가이드 문서를 참고해 정확한 규격의 pallycon-apidata를 적용합니다.
A2005 워터마크 토큰 생성에 필요한 파라미터 누락 API 입력 데이터에 필요한 파라미터가 누락되었습니다. API 가이드 문서를 참고해 정확한 입력값을 적용합니다.
A4002 워터마크 데이터 저장 실패 API 서버 내부적인 데이터베이스 접속 오류로 인해 워터마크 데이터를 저장하지 못했습니다.
A4003 워터마크 데이터 생생 실패 시스템 내부 오류로 인해 워터마크 데이터를 생성하지 못했습니다.
A5001 아카마이 인증 키가 등록되지 않음 아카마이 CDN 연동에 필요한 인증 키를 찾을 수 없습니다. 헬프데스크를 통해 아카마이 인증 키 등록을 요청합니다.
A5002 아카마이 연동 토큰 오류 아카마이 워터마크 토큰과 관련해 내부 오류가 발생했습니다.
A7008 API 데이터 파싱 실패 pallycon-apidata 값이 누락되었거나 잘못 생성되었습니다. API 가이드 문서를 참고해 정확한 규격의 pallycon-apidata를 적용합니다.
A7009 API 버전 오류 지원되지 않는 API 버전이 사용되었습니다. API URL의 버전 정보를 확인해 정확한 버전을 사용합니다.
A7010 날짜 형식 오류 파라미터 중 fromto 항목의 날짜 형식이 잘못되었습니다. YYYY-MM-DD 형식의 날짜 데이터를 사용합니다.
A7011 매니페스트에 워터마크 적용 실패 내부 오류로 인해 스트림 매니페스트에 워터마크를 적용하지 못했습니다.
A7012 매니페스트 확인 실패 내부 오류로 인해 스트림 매니페스트를 확인하지 못했습니다.
A7013 지원되지 않는 스트림 형식 stream_format 항목에 dash 또는 hls 이외의 값이 입력되었습니다. 대상 스트림 포맷에 따라 dash 또는 hls 를 정확히 입력합니다.
A9001 유효하지 않는 토큰 형식 jwt token 이 유효 하지 않습니다. basic token 포맷에 맞게 입력합니다.
A9002 유요하지 않는 토큰 페이로드 jwt token payload 가 유효 하지 않습니다.
A9008 계정 오류 사용자 게정이 정확하지 않습니다. 사용자 정보를 확인합니다.

pallycon-apidata를 이용하는 단계 별 예제 (세션 URL API)

아래 가이드는 세션 URL API에 대해 요청 데이터를 생성하고 응답을 얻는 방법을 단계 별로 보여줍니다. 세션 목록 요청 API 등의 다른 API의 경우에도 유사한 방법으로 적용할 수 있습니다.

아래 단계 별 예제와 함께 Github에 공유된 다음의 샘플 코드도 참고하시기 바랍니다.

샘플 타입 GitHub 링크
Python https://github.com/inka-pallycon/pallycon-wm-api-request-sample-python
Java https://github.com/inka-pallycon/pallycon-wm-api-request-sample-java
예제에서 사용된 입력값들은 참고 용이며, 실제 동작을 위해서는 고객사의 PallyCon 계정에 해당되는 값들을 입력해야 합니다.

1단계 - 요청 데이터 JSON 생성

JSON 예제

{
    "domain": "cdn.service-site.com",
    "output_path": "output",
    "cid": "content1",
    "streaming_format": "dash",
    "forensic_mark": "testmark.1234567",
    "wmt_type": "aes",
    "prefix_folder": "wm-contents"
}

2단계 - JSON 문자열의 AES256 암호화

2단계 결과물

ra2Q7t5DTIImHYsOcARkiG5/cuXfa/nB4jR3IVBRUVDZBxvqK+zQXcTv2bljMGAyt03WDXbMex5KzrSTIrDbWuDkX0juIMdngoHaS8WKX6fhDlKJ/AkBaUEcF5SkAOmfYgCs7cURH3gwgZ1rrJ6WyBD09vLoqHqAs61a5Mrqv342TYqooCjibcsSYQujXkzfAgLTD390Eiakf/MkWMVVSjw0GP3LZkbnl67SiVwo58aW6ZTz/jnlKCuoz/zicUEa58KLmPzDBJjP8i+VhdRw8Q==

3단계 - 해시 생성

  • 액세스 키: A3DfypNw0bLgR3FAa5Q2TbS1iiUK4iIf (PallyCon 콘솔 사이트에서 확인한 엑세스 키 값을 입력)
  • 사이트 ID: EXPL (PallyCon 콘솔 사이트에서 확인한 사이트 ID 값을 입력)
  • api data: 2단계 결과물
  • 타임스탬프: 2021-09-07T02:15:00Z

해시 생성을 위해 조합된 문자열

A3DfypNw0bLgR3FAa5Q2TbS1iiUK4iIfEXPLN5CNHHCgEPVDFBpgtHzraqNUzBZoy4pzx3fSDnzHDMek5AMlmWSlII67tNQ2MJP1NL+dSjQZlEnXp7+ATXOopJEdH1KIZ0jNjY19bRLl9aG0gJSsbS6krhNxuuDzLayT/CgPwQUge1hQj1U2xtXSbDFUfiXSFZtJLSlA/QdTwTC5NpxfLjBmtRspPh1AOuKNwgiS9HuJxV9f6NDK22unYrzZyq6HG+qNEY6O3kp8GdRkdTU62U4t9J/byiAtEkLT2021-09-07T02:15:00Z

3단계 결과물

Z4f4gAJPeJUytea8f4DXg7jz+vAkmzNVQEiaU7QO3tA=

4단계 - 요청 데이터 JSON 생성 및 Base64 인코딩

  • ‘data’: 2단계 결과물
  • ‘timestamp’: 3단계의 타임스탬프와 동일한 값
  • ‘hash’: 3단계 결과물

JSON 문자열

{
    "data": "N5CNHHCgEPVDFBpgtHzraqNUzBZoy4pzx3fSDnzHDMek5AMlmWSlII67tNQ2MJP1NL+dSjQZlEnXp7+ATXOopJEdH1KIZ0jNjY19bRLl9aG0gJSsbS6krhNxuuDzLayT/CgPwQUge1hQj1U2xtXSbDFUfiXSFZtJLSlA/QdTwTC5NpxfLjBmtRspPh1AOuKNwgiS9HuJxV9f6NDK22unYrzZyq6HG+qNEY6O3kp8GdRkdTU62U4t9J/byiAtEkLT",
    "timestamp":"2021-09-07T02:15:00Z",
    "hash":"Z4f4gAJPeJUytea8f4DXg7jz+vAkmzNVQEiaU7QO3tA="
}

4단계 결과물 (base64 인코딩된 JSON)

ewogICAgImRhdGEiOiAiTjVDTkhIQ2dFUFZERkJwZ3RIenJhcU5VekJab3k0cHp4M2ZTRG56SERNZWs1QU1sbVdTbElJNjd0TlEyTUpQMU5MK2RTalFabEVuWHA3K0FUWE9vcEpFZEgxS0laMGpOalkxOWJSTGw5YUcwZ0pTc2JTNmtyaE54dXVEekxheVQvQ2dQd1FVZ2UxaFFqMVUyeHRYU2JERlVmaVhTRlp0SkxTbEEvUWRUd1RDNU5weGZMakJtdFJzcFBoMUFPdUtOd2dpUzlIdUp4VjlmNk5ESzIydW5ZcnpaeXE2SEcrcU5FWTZPM2twOEdkUmtkVFU2MlU0dDlKL2J5aUF0RWtMVCIsCiAgICAidGltZXN0YW1wIjoiMjAyMS0wOS0wN1QwMjoxNTowMFoiLAogICAgImhhc2giOiJaNGY0Z0FKUGVKVXl0ZWE4ZjREWGc3anordkFrbXpOVlFFaWFVN1FPM3RBPSIKfQ==

5단계 - 세션 매니저 API 호출

파라미터 추가된 API URL

https://watermark.pallycon.com/api/v2/session/watermarkUrl/EXPL?pallycon-apidata=ewogICAgImRhdGEiOiAiTjVDTkhIQ2dFUFZERkJwZ3RIenJhcU5VekJab3k0cHp4M2ZTRG56SERNZWs1QU1sbVdTbElJNjd0TlEyTUpQMU5MK2RTalFabEVuWHA3K0FUWE9vcEpFZEgxS0laMGpOalkxOWJSTGw5YUcwZ0pTc2JTNmtyaE54dXVEekxheVQvQ2dQd1FVZ2UxaFFqMVUyeHRYU2JERlVmaVhTRlp0SkxTbEEvUWRUd1RDNU5weGZMakJtdFJzcFBoMUFPdUtOd2dpUzlIdUp4VjlmNk5ESzIydW5ZcnpaeXE2SEcrcU5FWTZPM2twOEdkUmtkVFU2MlU0dDlKL2J5aUF0RWtMVCIsCiAgICAidGltZXN0YW1wIjoiMjAyMS0wOS0wN1QwMjoxNTowMFoiLAogICAgImhhc2giOiJaNGY0Z0FKUGVKVXl0ZWE4ZjREWGc3anordkFrbXpOVlFFaWFVN1FPM3RBPSIKfQ==

API 응답 (최종 결과)

{
    "error_message":"Success",
    "error_code":"0000",
    "url":"https://cdn.service-site.com/dldzkdpsxmdnjrtm/OHVPUw4N4tUoc-wlcA72aX6Hj5a_v-HuXcLAbFwYSpwDDsiVdSLNbWnbjkVvTX20yiKw7U6nOmJzZaDep1_3YJYxfvHzof01IAVgAguBhGk=/output/ddb2b84b-c3ce-4f37-9182-c36f83fc3fce/dash/stream.mpd"
}

JWT 연동을 통해 이용하는 예제

JWT를 이용하여 API를 호출 해 볼 수 있게 해주는 Postman Collection 입니다. Postman Collection 사용 가이드

Collection Json 파일 Environemnt Json 파일
다음