트랜스코딩 & 패키징 API 가이드

본 문서는 HTTP API를 통해 PallyCon 트랜스코딩 & 패키징 서비스를 사용하는 방법을 안내합니다.

동영상 튜토리얼

API 공통 규격

본 문서에 명시된 모든 API에는 아래와 같은 공통 규격이 적용됩니다.

API 인증 토큰

T&P 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/token/DEMO HTTP/1.1
Authorization: basic authInfo
Host: tnp.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를 통해 발급된 데이터를 설정하여 T&P API를 호출할 수 있습니다.

공통 응답 규격

응답 상태

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

응답 데이터 필드

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

리전 코드

T&P API 중 일부는 다음과 같은 리전 코드를 요청 및 응답 데이터에 사용합니다.

리전 코드 리전 명 AWS 리전 코드
RG004 Oregon us-west-2
RG011 Seoul ap-northeast-2
RG013 Singapore ap-southeast-1

TNP 연동 정보 API

연동 정보 조회

TNP 연동과 관련된 정보를 조회하는 API 입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID

요청 예제

GET /api/setting/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.api.com

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 연동 관련 정보
data.site_id String 사이트 ID
data.region String TNP packaging 을 진행할 리전의 리전코드
data.service_status String TNP 사용 여부(SE000:사용중, SE001: 미사용)
data.trial_pack_cnt Number 트라이얼인 경우 패키징한 횟수
data.site_key String 서비스 사이트 연동 과정에 필요한 암호화 키 (콘솔 ‘사이트 설정’ 페이지에서 확인)
data.access_key String 패키져, 라이선스 토큰 등 추가적 연동 보안에 사용되는 키 (콘솔 ‘사이트 설정’ 페이지에서 확인)

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 230

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "site_id" : "DEMO",
    "region" : "RG011",
    "service_status" : "SE000",
    "trial_pack_cnt" : 0,
    "site_key" : null,
    "access_key" : null
  }
}

연동 정보 수정

TNP 연동과 관련된 정보를 수정하는 API 입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID
요청 데이터 필드
필드 유형 설명
site_id 콘솔에 표시되는 PallyCon 사이트 ID
region String TNP packaging 을 진행할 리전의 리전코드

요청 예제

PUT /api/setting/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 76
Host: tnp.api.com

{
  "site_id" : "DEMO",
  "region" : "RG004"
}

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 연동 관련 정보
data.site_id String 사이트 ID
data.region String TNP packaging 을 진행할 리전의 리전코드

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 156

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "site_id" : "DEMO",
    "region" : "RG004"
  }
}

작업 API

작업 생성

트랜스코딩 & 패키징 작업을 생성하는 API입니다.

경로 매개변수
매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID (네 자리 영숫자)
요청 데이터 필드
필드 유형 필수 여부 설명
job_name String Yes 작업명
content_id String Yes 콘텐트 ID
input Object Yes 입력 콘텐트 정보
input.storage_id String Yes 입력 스토리지 ID
input.files Array Yes 입력 파일 정보
input.files.[].file_type String Yes 파일 유형 : multi, video, audio
- multi : 입력 파일의 비디오와 오디오 트랙 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.
- video: 입력파일의 비디오 트랙을 이용. 오디오 트랙 정보는 사용되지 않음. multivideo 유형은 하나의 작업에 함께 사용될 수 없습니다.
- audio: 입력 파일의 오디오 트랙을 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.
input.files.[].file_path String Yes 입력 파일 경로
input.files.[].audios Array 오디오 정보(파일 타입이 multi 혹은 audio인 경우 작성 필요.)
input.files.[].audios.[].in Object Yes 입력 오디오 트랙
input.files.[].audios.[].in.track Number 입력 오디오 트랙 인덱스. 기본값: 0
input.files.[].audios.[].remap Object Yes 오디오 트랙 매핑(Remapping)
input.files.[].audios.[].remap.track Number 매핑된 오디오 트랙 인덱스. 기본값: 0
input.subtitles Array 자막 정보
input.subtitles.[].file_path String Yes 자막 파일 경로
input.subtitles.[].language String Yes 자막 언어
output Object Yes 출력 태스크 정보
output.storage_id String Yes 출력 스토리지 ID
output.path String Yes 출력 폴더 경로
output.default_language String 오디오 트랙 기본 언어 코드
output.transcodings Array Yes 트랜스코딩 정보
output.transcodings.[].track_id String Yes 트랙 ID
output.transcodings.[].track_type String Yes 트랙 유형 : video, audio
output.transcodings.[].track_name String 트랙 명 : audio
output.transcodings.[].codec String Yes 비디오/오디오 코덱 이름 (video: h264, h265. audio: aac, aac_lc,ac3,eac3 & heaac_v2)
오디오 코덱의 경우, source file(input file)의 오디오 코덱 정보와 동일해야 합니다.
output.transcodings.[].height Number Yes 영상 높이
output.transcodings.[].width Number Yes 영상 너비
output.transcodings.[].bitrate_mode String 비트레이트 모드 (cbr, vbr)
output.transcodings.[].bitrate Number Yes 비트레이트 (cbr).
output.transcodings.[].min_bitrate Number 최소 비트레이트 (bps). VBR용.
output.transcodings.[].max_bitrate Number 최대 비트레이트 (bps). VBR용.
output.transcodings.[].crf Number bitrate 관련 옵션 - vbr 인 경우, bitrate 혹은 crf 값(0~63)을 정해주어야 합니다.
output.transcodings.[].bandwidth Number 영상 대역폭
output.transcodings.[].sample_rate Number 오디오 샘플링 레이트
output.transcodings.[].language String 오디오 트랙 언어 코드(ISO 639-1, 두자리 영문 소문자)
output.transcodings.[].sources Array 매핑된 오디오 트랙 목록
output.transcodings.[].sources.[].track Number 매핑된 오디오 트랙 인덱스
output.packaging Object Yes 패키징 정보
output.packaging.dash Boolean DASH 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다.
output.packaging.hls Boolean HLS 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다.
output.packaging.cmaf Boolean CMAF 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 dash, hls 는 false 가 되어야 합니다.
output.packaging.option Object 패키징 옵션
output.packaging.option.min_buffer_time Number MPD Representation data rate의 정의에 사용되는 공통 기간을 초 단위로 지정합니다. 최소값: 2
output.packaging.option.enable_average_bandwidth_mpd Boolean MPD의 각 트랙에 대해 평균 대역폭을 사용합니다. (기본값: false)
output.packaging.option.mp4_subtitle Boolean Deprecated
이 매개변수를 사용하여 출력 자막 형식을 Embedded MP4로 설정할 수 있습니다. 파라미터를 생략하면 기본적으로 Text VTT 형식의 자막이 생성됩니다. (기본값: false)
output.packaging.option.subtitle_format.dash String 출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 DASH 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.packaging.option.subtitle_format.hls String 출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 HLS 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.packaging.option.subtitle_format.cmaf String 출력 자막 형식(text_vtt, mp4_ttml)을 설정할 수 있습니다. 작업 생성시 CMAF 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.drm Object DRM 정보
output.drm.enabled Boolean DRM 암호화 적용 여부. 기본값: false
output.drm.option Object DRM 옵션
output.drm.option.multi_key Boolean 멀티키 패키징 적용 여부. 기본값: false
output.drm.option.max_sd_height Number SD 트랙으로 패키징될 최대 해상도. 기본값: 480
output.drm.option.max_hd_height Number HD 트랙으로 패키징될 최대 해상도. 기본값: 1080
output.drm.option.max_uhd1_height Number UHD 트랙으로 패키징될 최대 해상도. 기본값: 2160
output.drm.option.skip_audio_encryption Boolean 오디오 트랙 암호화 제외 여부. 기본값: false(오디오 암호화)
output.drm.option.clear_lead Number 영상 초반에 암호화 비활성화 구간을 적용 (초 단위). 기본값: 0
output.drm.option.generate_tracktype_manifests Boolean 멀티키 패키징 시 트랙별 매니페스트(플레이리스트) 파일 생성. SD부터 UHD 트랙까지 포함된 어댑티브 스트림의 경우, SD_ONLY, SD_HD, SD_UHD 세 가지 매니페스트가 생성됨. 기본값: false
output.forensic_watermarking Object 포렌식 워터마킹 정보
output.forensic_watermarking.enabled Boolean 포렌식 워터마킹 적용 여부. 기본값: false
output.job_noti_id String TNP 작업 상태 업데이트를 위해 알림 ID를 사용
요청 예제
POST /api/job/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 1541
Host: tnp.pallycon.com

{
  "job_name" : "jobName",
  "content_id" : "test-cid",
  "input" : {
    "storage_id" : "input-storage-id",
    "files" : [ {
      "file_type" : "multi",
      "file_path" : "input/input-file1.mp4",
      "audios" : [ {
        "in" : {
          "track" : 0
        },
        "remap" : {
          "track" : 0
        }
      } ]
    } ],
    "subtitles" : [ {
      "file_path" : "input/subtitle/en.vtt",
      "language" : "eng"
    } ]
  },
  "output" : {
    "storage_id" : "output-storage-id",
    "path" : "output",
    "transcodings" : [ {
      "track_id" : "video1",
      "track_type" : "video",
      "codec" : "h264",
      "height" : 1080,
      "width" : 1920,
      "bitrate_mode" : "cbr",
      "bitrate" : 10000,
      "frame_rate" : 23.98
    }, {
      "track_id" : "audio1",
      "track_type" : "audio",
      "track_name" : "english",
      "codec" : "h264",
      "bitrate_mode" : "cbr",
      "bitrate" : 128000,
      "language" : "en",
      "sources" : [ {
        "track" : 0
      } ]
    } ],
    "packaging" : {
      "dash" : true,
      "hls" : false,
      "cmaf" : false,
      "option" : {
        "min_buffer_time" : 2,
        "enable_average_bandwidth_mpd" : false,
        "subtitle_format": {
          "dash": "text_vtt"
        }
      }
    },
    "drm" : {
      "enabled" : true,
      "option" : {
        "multi_key" : false,
        "max_sd_height" : 0,
        "max_hd_height" : 0,
        "max_uhd1_height" : 0,
        "skip_audio_encryption" : false,
        "clear_lead" : 0,
        "generate_tracktype_manifests" : false
      }
    },
    "forensic_watermarking" : {
      "enabled" : true
    }
    "job_noti_id":1
  }
} 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data.job_id Number 생성된 작업 ID

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 96

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "job_id" : 123
  }
} 

작업 목록 검색

생성된 작업의 목록을 검색할 수 있는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID

요청 매개변수

매개변수 유형 설명
from String 검색 기간 시작일 (YYYY-MM-DD)
to String 검색 기간 종료일 (YYYY-MM-DD)
job_name String 검색할 작업명
region String 검색할 리전 코드
page_unit Number 검색 결과 수 지정. 기본값: 25, 최대: 1000.
page_index Number 검색 결과 페이지 번호. 기본값: 1
job_id Number 검색할 작업 ID
job_id_operator String 검색할 작업 ID 조건 표현식 (eq, gt, goe, lt, loe)
content_id String 검색할 콘텐츠 ID
streaming_format Array 검색할 스트리밍 포맷 : dash / hls / cmaf / dash,hls
job_status Array 검색할 작업 상태
job_type Array 검색할 보안 유형: drm / forensic_watermark / drm,forensic_watermark
codec Array 검색할 트랜스코딩용 output video codec: h264 / h265 / h264,h265
time_zone String 검색에 사용될 시간대 설정. (+HH:mm) 기본값: +00:00

요청 예제

GET /api/job/DEMO?from=2022-05-01&to=2022-05-13&job_name=test-job&region=RG011&page_unit=20&page_index=1&job_id=123&content_id=test-content-id&security=forensic_watermark&streaming_format=dash&time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
time_zone String 시간대
total_count Number 전체 검색 결과 수
data Array 작업 목록
data.[].job_id Number 작업 ID
data.[].job_name String 작업 명
data.[].content_id String 콘텐츠 ID
data.[].job_status String 작업 상태 코드
data.[].drm Boolean DRM 적용 여부
data.[].forensic_watermark Boolean 포렌식 워터마킹 적용 여부
data.[].dash Boolean DASH 패키징 여부
data.[].hls Boolean HLS 패키징 여부
data.[].cmaf Boolean CMAF 패키징 여부
data.[].codec Boolean 트랜스코딩 비디오 코덱
data.[].region String 작업 생성 리전
data.[].reg_time String 작업 생성 시간
data.[].start_time String 작업 시작 시간
data.[].update_time String 작업 최종 업데이트 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 933

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "time_zone" : "+00:00",
  "total_count" : 3,
  "data" : [ {
    "job_id" : 1,
    "job_name" : "test job 1",
    "content_id" : "test cid 1",
    "job_status" : "TP100200",
    "drm" : true,
    "forensic_watermark" : true,
    "dash" : true,
    "hls" : true,
    "cmaf": false,
    "codec": "h264"
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  }, {
    "job_id" : 2,
    "job_name" : "test job 2",
    "content_id" : "test cid 2",
    "job_status" : "TP500",
    "drm" : true,
    "forensic_watermark" : false,
    "dash" : true,
    "hls" : false,
    "cmaf": false,
    "codec": "h265"
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  }, {
    "job_id" : 3,
    "job_name" : "test job 3",
    "content_id" : "test cid 3",
    "job_status" : "TP700200",
    "drm" : true,
    "forensic_watermark" : true,
    "dash" : true,
    "hls" : true,
    "cmaf": false,
    "codec": "h264"
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  } ]
} 

작업 상세 조회

패키징 작업의 상세 정보를 조회하는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID
jobId 작업 ID

요청 매개변수

매개변수 필수 여부 설명
time_zone Yes 검색할 시간대. (+HH:mm) 기본값: +00:00

요청 예제

GET /api/job/DEMO/1?time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
time_zone String 시간대
data Object 작업 정보
data.job_id Number 작업 ID
data.job_name String 작업 명
data.job_status String 작업 상태 코드
data.region String 리전 코드
data.content_id String 콘텐츠 ID
data.input Object 입력 콘텐츠 정보
data.input.storage_id String 입력 스토리지 ID
data.input.files Array 입력 파일 정보
data.input.files.[].file_type String 파일 유형 : multi, video, audio
- multi : 입력 파일의 비디오와 오디오 트랙 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.
- video: 입력파일의 비디오 트랙을 이용. 오디오 트랙 정보는 사용되지 않음. multivideo 유형은 하나의 작업에 함께 사용될 수 없습니다.
- audio: 입력 파일의 오디오 트랙을 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.
data.input.files.[].file_path String 입력 파일 경로
data.input.files.[].audios Array 오디오 정보
data.input.files.[].audios.[].in.track Number 입력 오디오 트랙 인덱스
data.input.files.[].audios.[].remap.track Number 매핑된 오디오 트랙 인덱스
data.input.subtitles Array 자막 정보
data.input.subtitles.[].file_path String 자막 파일 경로
data.input.subtitles.[].language String 자막 언어
data.output Object 출력 태스크 정보
data.output.storage_id String 출력 스토리지 ID
data.output.path String 출력 폴더 경로
data.output.default_language String 오디오 트랙 기본 언어 코드
data.output.transcodings Array 트랜스코딩 정보
data.output.transcodings.[].track_id String 트랙 ID
data.output.transcodings.[].track_type String 트랙 유형 : video, audio
data.output.transcodings.[].track_name String 트랙 명 : audio
data.output.transcodings.[].codec String 비디오/오디오 코덱 이름 (video: h264, h265. audio: aac, aac_lc,ac3,eac3 & heaac_v2)
data.output.transcodings.[].height Number 영상 높이
data.output.transcodings.[].width Number 영상 너비
data.output.transcodings.[].bitrate_mode String 비트레이트 모드 (cbr, vbr)
data.output.transcodings.[].bitrate Number 비트레이트 (bps).
data.output.transcodings.[].min_bitrate Number 최소 비트레이트 (bps). VBR용.
data.output.transcodings.[].max_bitrate Number 최대 비트레이트 (bps). VBR용.
data.output.transcodings.[].crf Number 품질 기준으로 비트레이트 설정합니다. vbr 인 경우만 사용 가능합니다. 범위 : 0~69
data.output.transcodings.[].frame_rate Number 영상 프레임레이트
data.output.transcodings.[].bandwidth Number 영상 대역폭
data.output.transcodings.[].sample_rate Number 오디오 샘플링레이트
data.output.transcodings.[].language String 오디오 트랙 언어 코드 (ISO 639-1, 두자리 영문 소문자)
data.output.transcodings.[].sources Array 오디오 트랙 리매핑 목록
data.output.transcodings.[].sources.[].track Number 매핑된 오디오 트랙 인덱스
data.output.packaging Object 패키징 정보
data.output.packaging.dash Boolean DASH 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다.
data.output.packaging.hls Boolean HLS 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다.
data.output.packaging.cmaf Boolean CMAF 패키징 출력 여부. 설정 시 dash, hls 는 false 가 되어야 합니다.
data.output.packaging.option Object 패키징 옵션
data.output.packaging.option.min_buffer_time Number MPD Representation data rate의 정의에 사용되는 공통 기간을 초 단위로 지정합니다.
data.output.packaging.option.enable_average_bandwidth_mpd Boolean MPD의 각 트랙에 대해 평균 대역폭을 사용합니다.
output.packaging.option.mp4_subtitle Boolean Deprecated
이 매개변수를 사용하여 출력 자막 형식을 Embedded MP4로 설정할 수 있습니다. 파라미터를 생략하면 기본적으로 Text VTT 형식의 자막이 생성됩니다. (기본값: false)
output.packaging.option.subtitle_format.dash String 출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 DASH 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.packaging.option.subtitle_format.hls String 출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 HLS 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.packaging.option.subtitle_format.cmaf String 출력 자막 형식(text_vtt, mp4_ttml)을 설정할 수 있습니다. 작업 생성시 CMAF 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
data.output.drm Object DRM 정보
data.output.drm.enabled Boolean DRM 암호화 적용 여부
data.output.drm.option Object DRM 옵션
data.output.drm.option.multi_key Boolean 멀티키 패키징 적용 여부
data.output.drm.option.max_sd_height Number SD 트랙으로 패키징될 최대 해상도
data.output.drm.option.max_hd_height Number HD 트랙으로 패키징될 최대 해상도
data.output.drm.option.max_uhd1_height Number UHD 트랙으로 패키징될 최대 해상도
data.output.drm.option.skip_audio_encryption Boolean 오디오 트랙 암호화 제외 여부
data.output.drm.option.clear_lead Number 영상 초반 암호화 비활성화 구간 (초 단위)
data.output.drm.option.generate_tracktype_manifests Boolean 멀티키 패키징 시 트랙별 매니페스트(플레이리스트) 파일 생성. SD부터 UHD 트랙까지 포함된 어댑티브 스트림의 경우, SD_ONLY, SD_HD, SD_UHD 세 가지 매니페스트가 생성됨.
data.output.forensic_watermarking Object 포렌식 워터마킹 정보
data.output.forensic_watermarking.enabled Boolean 포렌식 워터마킹 적용 여부
data.output.job_noti_id String 작업 알림 ID 설정
data.reg_time String 작업 등록 시간
data.start_time String 작업 시작 시간
data.update_time String 작업 최종 업데이트 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1542

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "time_zone" : "+00:00",
  "data" : {
    "job_name" : "jobName",
    "content_id" : "test-cid",
    "input" : {
      "storage_id" : "12312312312312312312312312312312",
      "files" : [ {
        "file_type" : "multi",
        "file_path" : "del-short-hevc.mp4",
        "audios" : [ {
          "in" : {
            "track" : 0
          },
          "remap" : {
            "track" : 0
          }
        } ]
      } ]
    },
    "output" : {
      "storage_id" : "32132132132132132132131231232132",
      "path" : "saas-pack",
      "transcodings" : [ {
        "track_id" : "video1",
        "track_type" : "video",
        "codec" : "H265",
        "height" : 1080,
        "width" : 1920,
        "bitrate" : 2500,
        "frame_rate" : 23.98
      }, {
        "track_id" : "video2",
        "track_type" : "video",
        "codec" : "H264",
        "height" : 720,
        "width" : 1080,
        "bitrate" : 1500,
        "frame_rate" : 23.98
      }, {
        "track_id" : "audio1",
        "track_type" : "audio",
        "codec" : "aac",
        "sources" : [ {
          "track" : 0
        } ]
      } ],
      "packaging" : {
        "dash" : true,
        "hls" : true,
        "cmaf" : false
      },
      "drm" : {
        "enabled" : true
      },
      "forensic_watermarking" : {
        "enabled" : true
      }
      "job_noti_id":1
    },
    "job_id" : 1,
    "region" : "RG011",
    "job_status" : "TP100100",
    "start_time" : "2022-05-20T17:03:41",
    "reg_time" : "2022-05-20T17:02:17"
  }
} 

작업 중지

패키징 작업을 중지할 때 사용하는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID
jobId 작업 ID

요청 예제

PUT /api/job/DEMO/1/stop HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 작업 정보
data.job_id Number 작업 ID

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 94

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "job_id" : 1
  }
} 

작업 재시작

중지된 작업을 재시작하는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID
jobId 작업 ID

요청 예제

PUT /api/job/DEMO/1/restart HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 작업 정보
data.job_id Number 작업 ID

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 94

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "job_id" : 1
  }
} 

스토리지 API

스토리지 ID 생성

패키징 작업에 사용할 스토리지를 등록하고 ID를 생성하는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID

요청 데이터 필드

필드 유형 필수 여부 설명
storage_name String Yes 스토리지 명
aws_bucket String Yes S3 버킷 명
io_type String Yes 입력/출력 유형 (input, output)
access_key_id String Yes S3 액세스 키 ID
secret_key String Yes S3 비밀 키
region String Yes 리전 코드
description String 스토리지 설명

요청 예제

POST /api/storage/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 295
Host: tnp.pallycon.com

{
  "storage_name" : "test-input-storage",
  "aws_bucket" : "watermark-input-seoul",
  "io_type" : "input",
  "access_key_id" : "valid-test-storage-access-key-id",
  "secret_key" : "valid-in-test-storage-secret-key",
  "region" : "RG011",
  "description" : "This storage is test input bucket."
} 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data.storage_id String 생성된 스토리지 ID

응답 예제

| HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 115

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "storage_id" : "input-storage-id"
  }
}

스토리지 목록 검색

등록된 스토리지 목록을 검색할 수 있는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID

요청 매개변수

매개변수 설명
from 검색 기간 시작일 (YYYY-MM-DD)
to 검색 기간 종료일 (YYYY-MM-DD)
storage_name 검색할 스토리지 명
region 검색할 스토리지 리전 코드
page_unit 검색 결과 수 지정. 기본값: 25, 최대: 1000.
page_index 검색 결과 페이지 번호. 기본값: 1
time_zone 검색할 시간대 (+HH:mm) 기본값: +00:00

요청 예제

GET /api/storage/DEMO?from=2022-05-01&to=2022-05-13&storage_name=test-storage&region=RG011&page_unit=20&page_index=1&time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
time_zone String 시간대
data Array 스토리지 목록
data.[].storage_id String 스토리지 ID
data.[].storage_name String 스토리지 명
data.[].aws_bucket String 버킷 명
data.[].io_type String 입출력 유형 (input / output)
data.[].region String 스토리지 리전
data.[].reg_time String 스토리지 등록 일시 YYYY-MM-DD’T’hh-mm-ss
data.[].update_time String 최종 업데이트 일시 YYYY-MM-DD’T’hh-mm-ss

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 775

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "time_zone" : "+00:00",
  "data" : [ {
    "storage_id" : "e42e5fc74bee455db0fc2d79038dbabb",
    "storage_name" : "test storage 1",
    "aws_bucket" : "test bucket 1",
    "io_type" : "input",
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  }, {
    "storage_id" : "50273cb8e91242f3ad6b9dd49faf8f03",
    "storage_name" : "test storage 2",
    "aws_bucket" : "test bucket 2",
    "io_type" : "input",
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  }, {
    "storage_id" : "69798b703f3c46b996a1335a54c3fa0e",
    "storage_name" : "test storage 3",
    "aws_bucket" : "test bucket 3",
    "io_type" : "input",
    "region" : "RG011",
    "reg_time" : "2022-05-20T00:00:00"
  } ]
}  

스토리지 상세 조회

등록된 스토리지에 대한 상세 정보를 조회하는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID
storageId 스토리지 ID

요청 매개변수

매개변수 설명
time_zone 검색 시간대 (+HH:mm) 기본값: +00:00

요청 예제

GET /api/storage/DEMO/12312312312312312312312312312312?time_zone=%2B00%3A00 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
time_zone String 시간대
data Object 스토리지 정보
data.storage_id String 스토리지 ID
data.storage_name String 스토리지 명
data.io_type String 스토리지 입출력 유형 (input, output)
data.aws_bucket String 버킷 명
data.region String 리전 코드
data.access_key_id String 스토리지 액세스 키 ID
data.secret_key String 스토리지 비밀 키
data.description String 스토리지 설명
data.reg_time String 스토리지 등록 일시 (YYYY-MM-DD’T’hh-mm-ss)
data.update_time String 최종 업데이트 일시

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 547

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "time_zone" : "+00:00",
  "data" : {
    "storage_id" : "12312312312312312312312312312312",
    "storage_name" : "test-input-storage",
    "io_type" : "input",
    "aws_bucket" : "watermark-input-seoul",
    "region" : "RG011",
    "access_key_id" : "valid-test-storage-access-key-id",
    "secret_key" : "valid-in-test-storage-secret-key",
    "description" : "This storage is test input bucket.",
    "update_time" : "2022-05-26T05:43:01",
    "reg_time" : "2022-05-25T05:43:01"
  }
} 

스토리지 수정

등록된 스토리지의 정보를 수정하는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID
storageId 스토리지 ID
요청 데이터 필드
필드 유형 설명
storage_name String 스토리지 명
access_key_id String 액세스 키 ID
secret_key String 비밀 키
aws_bucket String 버킷 명
io_type String 입출력 유형 (input / output)
description String 스토리지 설명

요청 예제

PUT /api/storage/DEMO/12312312312312312312312312312312 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 217
Host: tnp.pallycon.com

{
  "storage_name" : "test-input-storage",
  "aws_bucket" : "watermark-input-seoul",
  "io_type" : "input",
  "access_key_id" : "valid-test-storage-access-key-id",
  "secret_key" : "valid-in-test-storage-secret-key"
} 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 스토리지 정보
data.storage_id String 스토리지 ID

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 131

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "storage_id" : "12312312312312312312312312312312"
  }
} 

스토리지 삭제

등록된 스토리지 정보를 삭제하는 API입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID
storageId 스토리지 ID

요청 예제

DELETE /api/storage/DEMO/12312312312312312312312312312312 HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 스토리지 정보
data.storage_id String 스토리지 ID

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 131

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "storage_id" : "12312312312312312312312312312312"
  }
}  

여러 스토리지 삭제

여러 개의 등록된 스토리지 정보를 한 번에 삭제하는 API 입니다.

경로 매개변수

매개변수 설명
siteId 콘솔에 표시되는 PallyCon 사이트 ID
storage_ids Array

요청 예제

DELETE /api/storage/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Content-Length: 118
Host: tnp.pallycon.com

{
  "site_id" : "DEMO",
  "storage_ids" : [ "12312312312312312312312312312312", "12312312312312312312312312312313" ]
} 

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 스토리지 정보
data.site_id String 사이트 ID
data.storage_ids Array 스토리지 ID 목록

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 196

{
  "error_code" : "0000",
  "error_message" : "Success.",
  "data" : {
    "site_id" : "DEMO",
    "storage_ids" : [ "12312312312312312312312312312312", "12312312312312312312312312312313" ]
  }
}

작업 알림 API

작업 상태를 알림으로 설정하고 알림을 받을수 있는 API 입니다. 현재 알림으로 받을수 있는 타입은 AWS SNS(Simple Notification Service) 만 지원합니다. 작업 알림 API는 다음의 네가지 기능을 제공합니다.

  1. 알림 생성
  2. 알림 업데이트
  3. 알림 검색
  4. 알림 삭제

알림 생성

작업 알림을 생성하는 API 입니다

경로 매개변수

매개변수 설명
siteId PallyCon 사이트 ID
요청 데이터 필드
필드 유형 필수여부 설명
noti_name String Yes 알림 이름 (최대 50자 영문 대/소문자, 숫자, 특수 문자(-)(_)(.))
noti_type String Yes 연동하는 알림 유형 (현재 AWS SNS만 지원)
url_end_point String Yes 알림 받을 URL 주소 (현재 AWS ARN 타입의 주소만 가능)
aws_access.access_key String Yes AWS SNS에 접근하는 AWS access key
aws_access.secret_key String Yes AWS SNS에 접근하는 AWS secret key
alarm_status Object Yes 알림 받을 작업 상태값 관련 객체
alarm_status.queued Boolean queued 상태값 알림 여부 (기본값: false)
alarm_status.progressing Boolean processing 상태값 알림 여부 (기본값: false)
alarm_status.complete Boolean complted 상태값 알림 여부 (기본값: false)
alarm_status.error Boolean error 상태값 알림 여부 (기본값: false)
alarm_status.stopped Boolean stopped 상태값 알림 여부 (기본값: false)

요청 예제

POST https://tnp.pallycon.com/api/noti/job/{SiteID}
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8

Host: tnp.pallycon.com

{
   "noti_name" :"noti_test",
   "noti_type" : "SNS",
   "url_end_point" : "arn:aws:sns:us-west-2:73041xxxxx:PallyCon_TNP_SNS",
  "aws_access" :
   {
       "access_key" : "AK1252GDTP5xxxxx",
       "secret_key" : "WwMma1EVkcMBhlCmXxxxxxxx1"
   },
  "alarm_status" :
   {
       "queued" : false,
       "progressing" : false,
       "stopped" : true,
       "error" : true,
       "complete" : true
   }
}

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 작업 알림 정보
data.noti_id Number 작업 알림 ID

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
   "error_code": "0000",
   "error_message": "Success.",
   "data": {
       "noti_id": 1
   }
}

알림 업데이트

생성된 알림을 수정하거나 업데이트 하는 API 입니다.

경로 매개변수

매개변수 설명
siteId PallyCon 사이트 ID
notiid 업데이트 할 작업 알림 ID
요청 데이터 필드
필드 유형 필수여부 설명
noti_name String 알림 이름 (최대 50자 영문 대/소문자, 숫자, 특수 문자(-)(_)(.))
noti_type String 연동하는 알림 유형 (현재 AWS SNS만 지원)
url_end_point String 알림 받을 URL 주소 (현재 AWS ARN 타입의 주소만 가능)
aws_access.access_key String AWS SNS에 접근하는 AWS access key
aws_access.secret_key String AWS SNS에 접근하는 AWS secret key
alarm_status Object 알림 받을 작업 상태값 관련 객체
alarm_status.queued Boolean Yes queued 상태값 알림 여부 (기본값: false)
alarm_status.progressing Boolean Yes processing 상태값 알림 여부 (기본값: false)
alarm_status.complete Boolean Yes complted 상태값 알림 여부 (기본값: false)
alarm_status.error Boolean Yes error 상태값 알림 여부 (기본값: false)
alarm_status.stopped Boolean Yes stopped 상태값 알림 여부 (기본값: false)

요청 예제

PUT https://tnp.pallycon.com/api/noti/job/{{SitID}}/{{notiid}}
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8

Host: tnp.pallycon.com

{
   "noti_name" :"noti_test",
   "noti_type" : "SNS",
   "url_end_point" : "arn:aws:sns:us-west-2:73041xxx:PallyCon_TNP_SNS",
  "aws_access" :
   {
       "access_key" : "AK1252GDTP5xxxxx",
       "secret_key" : "WwMma1EVkcMBhlCmXxxxxxxx1"
   },
  "alarm_status" :
   {
       "queued" : false,
       "progressing" : false,
       "stopped" : true,
       "error" : true,
       "complete" : true
   }
}

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
data Object 작업 알림 정보
data.noti_id Number 작업 알림 ID

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
   "error_code": "0000",
   "error_message": "Success.",
   "data": {
       "noti_id": 1
   }
}

알림 목록 조회

등록된 작업 알림 목록을 조회하는 API 입니다.

경로 매개변수

매개변수 설명
siteId PallyCon 사이트 ID

요청 예제

GET https://tnp.pallycon.com/api/noti/job/{SiteID}
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.pallycon.com

응답 데이터 필드

필드 유형 설명
error_code String 에러 코드
error_message String 에러 메시지
time_zone String 타임존 (+/-hh:mm)
total_count Number 등록된 알림의 총 개수
data Array 작업 알림 목록

data Arry의 내부 배열은 다음과 같습니다

필드 유형 설명
noti_id Number 작업 알림 ID
site_id String PallyCon 사이트 ID
noti_name String 알림 이름
noti_type String AWS SNS만 지원
url_end_point String 알림을 받을 URL 주소
alarm_status Object 알림 받는 작업 상태값 관련 객체
alarm_status.queued Boolean queued 상태값 알림 여부
alarm_status.progressing Boolean progressing 상태값 알림 여부
alarm_status.complete Boolean complted 상태값 알림 여부
alarm_status.error Boolean error 상태값 알림 여부
alarm_status.stopped Boolean stopped 상태값 알림 여부
reg_time String 작업 알림이 생성된 날짜와 시간
update_time String 작업 알림이 업데이트된 날짜와 시간

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
    "error_code": "0000",
    "error_message": "Success.",
    "time_zone": "+00:00",
    "total_count": 1,
    "data": [
        {
            "noti_id": 1,
            "site_id": "YOUR_SITE_ID",
            "noti_name": "noti_test",
            "noti_type": "SNS",
            "url_end_point": "arn:aws:sns:us-west-2:73041xxx:PallyCon_TNP_SNS",
            "access_key": "AK1252GDTP5xxxxx",
            "alarm_status": {
                "queued": true,
                "progressing": true,
                "complete": true,
                "error": true,
                "stopped": true
            },
            "update_time": "2024-08-05T11:02:05",
            "reg_time": "2024-08-05T10:18:58"
        }
    ]
}

알림 삭제

작업 알림을 삭제하는 API 입니다

경로 매개변수

매개변수 설명
siteId PallyCon 사이트 ID
notiId 삭제할 작업 알림 ID

요청 예제

DELETE https://tnp.pallycon.com/api/noti/job/{SiteID}/{notiId}
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8

Host: tnp.pallycon.com

응답 데이터 필드

필드 유형 설명
error_code String 에러코드
error_message String 에러 메시지
data Object 작업 알림 정보
data.noti_id Number 작업 알림 ID

응답 예제

HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
{
   "error_code": "0000",
   "error_message": "Success.",
   "data": {
       "noti_id": 1
   }
}
현재 AWS SNS는 최대 5개 까지만 등록 가능합니다. 새로운 알림이 필요한 경우 기존 작업 알림 ID 중 하나를 수정하거나 사용하지 않는 작업 알림 ID를 삭제하고 다시 생성하세요.
이전
다음