콘텐츠로 이동

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

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

다음의 동영상 튜토리얼과 API 샘플 코드를 참고해 T&P 서비스를 연동할 수 있습니다.


개발 언어GitHub 저장소
TypeScripthttps://github.com/doverunner/tnp-request-sample-typescript
Pythonhttps://github.com/doverunner/tnp-request-sample-python
Javahttps://github.com/doverunner/tnp-request-sample-java

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

T&P API 호출 시 아래 과정을 통해 생성한 인증 토큰을 설정해야 합니다.

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

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

EmailIDAccessKey 값은 각각 도브러너 서비스 가입 시 입력한 이메일 주소와 가입 후 콘솔에 표시되는 엑세스 키를 입력해야 합니다.

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

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

매개변수유형설명
siteId네자리 영숫자콘솔에 표시되는 도브러너 사이트 ID
헤더 명설명
Authorization기본 인증 : Basic base64encode(userId:accessKey)

요청 예제

GET /api/token/DEMO HTTP/1.1
Authorization: basic authInfo
Host: tnp.pallycon.com
필드유형
error_codeString에러 코드
error_messageString에러 메시지
data.tokenStringAPI 인증 토큰

응답 예제

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"
}
}

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

응답 상태

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

응답 데이터 필드

유형
error_codeString0000: 성공 / 실패 시 해당 에러코드
error_messageString에러 메시지
dataJsonAPI 수행 결과

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

리전 코드리전 명AWS 리전 코드
RG004Oregonus-west-2
RG011Seoulap-northeast-2
RG013Singaporeap-southeast-1

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

매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID

요청 예제

GET /api/setting/DEMO HTTP/1.1
Authorization: Bearer valid_token
Content-Type: application/json;charset=UTF-8
Host: tnp.api.com
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
dataObject연동 관련 정보
data.site_idString사이트 ID
data.regionStringTNP packaging 을 진행할 리전의 리전코드
data.service_statusStringTNP 사용 여부(SE000:사용중, SE001: 미사용)
data.trial_pack_cntNumber트라이얼인 경우 패키징한 횟수
data.site_keyString서비스 사이트 연동 과정에 필요한 암호화 키 (콘솔 ‘사이트 설정’ 페이지에서 확인)
data.access_keyString패키져, 라이선스 토큰 등 추가적 연동 보안에 사용되는 키 (콘솔 ‘사이트 설정’ 페이지에서 확인)

응답 예제

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콘솔에 표시되는 도브러너 사이트 ID
필드유형설명
site_id콘솔에 표시되는 도브러너 사이트 ID
regionStringTNP 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_codeString에러 코드
error_messageString에러 메시지
dataObject연동 관련 정보
data.site_idString사이트 ID
data.regionStringTNP 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입니다.

매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID (네 자리 영숫자)
필드유형필수 여부설명
job_nameStringYes작업명
content_idStringYes콘텐트 ID
inputObjectYes입력 콘텐트 정보
input.storage_idStringYes입력 스토리지 ID
input.filesArrayYes입력 파일 정보
input.files.[].file_typeStringYes파일 유형 : multi, video, audio
- multi : 입력 파일의 비디오와 오디오 트랙 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.
- video: 입력파일의 비디오 트랙을 이용. 오디오 트랙 정보는 사용되지 않음. multivideo 유형은 하나의 작업에 함께 사용될 수 없습니다.
- audio: 입력 파일의 오디오 트랙을 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.
input.files.[].file_pathStringYes입력 파일 경로
input.files.[].audiosArray오디오 정보(파일 타입이 multi 혹은 audio인 경우 작성 필요.)
input.files.[].audios.[].inObjectYes입력 오디오 트랙
input.files.[].audios.[].in.trackNumber입력 오디오 트랙 인덱스. 기본값: 0
input.files.[].audios.[].remapObjectYes오디오 트랙 매핑(Remapping)
input.files.[].audios.[].remap.trackNumber매핑된 오디오 트랙 인덱스. 기본값: 0
input.subtitlesArray자막 정보
input.subtitles.[].file_pathStringYes자막 파일 경로
input.subtitles.[].languageStringYes자막 언어
outputObjectYes출력 태스크 정보
output.storage_idStringYes출력 스토리지 ID
output.pathStringYes출력 폴더 경로
output.default_languageString오디오 트랙 기본 언어 코드
output.transcodingsArrayYes트랜스코딩 정보
output.transcodings.[].track_idStringYes트랙 ID
output.transcodings.[].track_typeStringYes트랙 유형 : video, audio
output.transcodings.[].track_nameString트랙 명 : audio
output.transcodings.[].codecStringYes비디오/오디오 코덱 이름 (video: h264, h265. audio: aac, aac_lc,ac3,eac3 & heaac_v2)
오디오 코덱의 경우, source file(input file)의 오디오 코덱 정보와 동일해야 합니다.
output.transcodings.[].heightNumberYes영상 높이
output.transcodings.[].widthNumberYes영상 너비
output.transcodings.[].bitrate_modeString비트레이트 모드 (cbr, vbr)
output.transcodings.[].bitrateNumberYes비트레이트 (cbr).
output.transcodings.[].min_bitrateNumber최소 비트레이트 (bps). VBR용.
output.transcodings.[].max_bitrateNumber최대 비트레이트 (bps). VBR용.
output.transcodings.[].crfNumberbitrate 관련 옵션 - vbr 인 경우, bitrate 혹은 crf 값(0~63)을 정해주어야 합니다.
output.transcodings.[].bandwidthNumber영상 대역폭
output.transcodings.[].sample_rateNumber오디오 샘플링 레이트
output.transcodings.[].languageString오디오 트랙 언어 코드(ISO 639-1, 두자리 영문 소문자)
output.transcodings.[].sourcesArray매핑된 오디오 트랙 목록
output.transcodings.[].sources.[].trackNumber매핑된 오디오 트랙 인덱스
output.packagingObjectYes패키징 정보
output.packaging.dashBooleanDASH 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다.
output.packaging.hlsBooleanHLS 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다.
output.packaging.cmafBooleanCMAF 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 dash, hls 는 false 가 되어야 합니다.
output.packaging.optionObject패키징 옵션
output.packaging.option.min_buffer_timeNumberMPD Representation data rate의 정의에 사용되는 공통 기간을 초 단위로 지정합니다. 최소값: 2
output.packaging.option.enable_average_bandwidth_mpdBooleanMPD의 각 트랙에 대해 평균 대역폭을 사용합니다. (기본값: false)
output.packaging.option.mp4_subtitleBooleanDeprecated
이 매개변수를 사용하여 출력 자막 형식을 Embedded MP4로 설정할 수 있습니다. 파라미터를 생략하면 기본적으로 Text VTT 형식의 자막이 생성됩니다. (기본값: false)
output.packaging.option.subtitle_format.dashString출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 DASH 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.packaging.option.subtitle_format.hlsString출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 HLS 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.packaging.option.subtitle_format.cmafString출력 자막 형식(text_vtt, mp4_ttml)을 설정할 수 있습니다. 작업 생성시 CMAF 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.drmObjectDRM 정보
output.drm.enabledBooleanDRM 암호화 적용 여부. 기본값: false
output.drm.optionObjectDRM 옵션
output.drm.option.multi_keyBoolean멀티키 패키징 적용 여부. 기본값: false
output.drm.option.max_sd_heightNumberSD 트랙으로 패키징될 최대 해상도. 기본값: 480
output.drm.option.max_hd_heightNumberHD 트랙으로 패키징될 최대 해상도. 기본값: 1080
output.drm.option.max_uhd1_heightNumberUHD 트랙으로 패키징될 최대 해상도. 기본값: 2160
output.drm.option.skip_audio_encryptionBoolean오디오 트랙 암호화 제외 여부. 기본값: false(오디오 암호화)
output.drm.option.clear_leadNumber영상 초반에 암호화 비활성화 구간을 적용 (초 단위). 기본값: 0
output.drm.option.generate_tracktype_manifestsBoolean멀티키 패키징 시 트랙별 매니페스트(플레이리스트) 파일 생성. SD부터 UHD 트랙까지 포함된 어댑티브 스트림의 경우, SD_ONLY, SD_HD, SD_UHD 세 가지 매니페스트가 생성됨. 기본값: false
output.forensic_watermarkingObject포렌식 워터마킹 정보
output.forensic_watermarking.enabledBoolean포렌식 워터마킹 적용 여부. 기본값: false
output.job_noti_idStringTNP 작업 상태 업데이트를 위해 알림 ID를 사용
output.scale_option_typeStringscale option 값(none, fit, fit_with_padding, fill_with_crop, stretch, stretch_with_par)
요청 예제
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,
"scale_option_type":"fit_with_padding"
}
}
필드유형설명
error_codeString에러 코드
error_messageString에러 메시지
data.job_idNumber생성된 작업 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콘솔에 표시되는 도브러너 사이트 ID
매개변수유형설명
fromString검색 기간 시작일 (YYYY-MM-DD)
toString검색 기간 종료일 (YYYY-MM-DD)
job_nameString검색할 작업명
regionString검색할 리전 코드
page_unitNumber검색 결과 수 지정. 기본값: 25, 최대: 1000.
page_indexNumber검색 결과 페이지 번호. 기본값: 1
job_idNumber검색할 작업 ID
job_id_operatorString검색할 작업 ID 조건 표현식 (eq, gt, goe, lt, loe)
content_idString검색할 콘텐츠 ID
streaming_formatArray검색할 스트리밍 포맷 : dash / hls / cmaf / dash,hls
job_statusArray검색할 작업 상태
job_typeArray검색할 보안 유형: drm / forensic_watermark / drm,forensic_watermark
codecArray검색할 트랜스코딩용 output video codec: h264 / h265 / h264,h265
time_zoneString검색에 사용될 시간대 설정. (+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_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
total_countNumber전체 검색 결과 수
dataArray작업 목록
data.[].job_idNumber작업 ID
data.[].job_nameString작업 명
data.[].content_idString콘텐츠 ID
data.[].job_statusString작업 상태 코드
data.[].drmBooleanDRM 적용 여부
data.[].forensic_watermarkBoolean포렌식 워터마킹 적용 여부
data.[].dashBooleanDASH 패키징 여부
data.[].hlsBooleanHLS 패키징 여부
data.[].cmafBooleanCMAF 패키징 여부
data.[].codecBoolean트랜스코딩 비디오 코덱
data.[].regionString작업 생성 리전
data.[].reg_timeString작업 생성 시간
data.[].start_timeString작업 시작 시간
data.[].update_timeString작업 최종 업데이트 시간

응답 예제

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콘솔에 표시되는 도브러너 사이트 ID
jobId작업 ID
매개변수필수 여부설명
time_zoneYes검색할 시간대. (+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_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
dataObject작업 정보
data.job_idNumber작업 ID
data.job_nameString작업 명
data.job_statusString작업 상태 코드
data.regionString리전 코드
data.content_idString콘텐츠 ID
data.inputObject입력 콘텐츠 정보
data.input.storage_idString입력 스토리지 ID
data.input.filesArray입력 파일 정보
data.input.files.[].file_typeString파일 유형 : multi, video, audio
- multi : 입력 파일의 비디오와 오디오 트랙 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.
- video: 입력파일의 비디오 트랙을 이용. 오디오 트랙 정보는 사용되지 않음. multivideo 유형은 하나의 작업에 함께 사용될 수 없습니다.
- audio: 입력 파일의 오디오 트랙을 이용. 오디오 트랙 정보가 포함된 파일이어야 합니다.
data.input.files.[].file_pathString입력 파일 경로
data.input.files.[].audiosArray오디오 정보
data.input.files.[].audios.[].in.trackNumber입력 오디오 트랙 인덱스
data.input.files.[].audios.[].remap.trackNumber매핑된 오디오 트랙 인덱스
data.input.subtitlesArray자막 정보
data.input.subtitles.[].file_pathString자막 파일 경로
data.input.subtitles.[].languageString자막 언어
data.outputObject출력 태스크 정보
data.output.storage_idString출력 스토리지 ID
data.output.pathString출력 폴더 경로
data.output.default_languageString오디오 트랙 기본 언어 코드
data.output.transcodingsArray트랜스코딩 정보
data.output.transcodings.[].track_idString트랙 ID
data.output.transcodings.[].track_typeString트랙 유형 : video, audio
data.output.transcodings.[].track_nameString트랙 명 : audio
data.output.transcodings.[].codecString비디오/오디오 코덱 이름 (video: h264, h265. audio: aac, aac_lc,ac3,eac3 & heaac_v2)
data.output.transcodings.[].heightNumber영상 높이
data.output.transcodings.[].widthNumber영상 너비
data.output.transcodings.[].bitrate_modeString비트레이트 모드 (cbr, vbr)
data.output.transcodings.[].bitrateNumber비트레이트 (bps).
data.output.transcodings.[].min_bitrateNumber최소 비트레이트 (bps). VBR용.
data.output.transcodings.[].max_bitrateNumber최대 비트레이트 (bps). VBR용.
data.output.transcodings.[].crfNumber품질 기준으로 비트레이트 설정합니다. vbr 인 경우만 사용 가능합니다. 범위 : 0~69
data.output.transcodings.[].frame_rateNumber영상 프레임레이트
data.output.transcodings.[].bandwidthNumber영상 대역폭
data.output.transcodings.[].sample_rateNumber오디오 샘플링레이트
data.output.transcodings.[].languageString오디오 트랙 언어 코드 (ISO 639-1, 두자리 영문 소문자)
data.output.transcodings.[].sourcesArray오디오 트랙 리매핑 목록
data.output.transcodings.[].sources.[].trackNumber매핑된 오디오 트랙 인덱스
data.output.packagingObject패키징 정보
data.output.packaging.dashBooleanDASH 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다.
data.output.packaging.hlsBooleanHLS 패키징 출력 여부. dash, hls, cmaf 중에 한가지 타입은 필수 입니다. 설정 시 cmaf 은 false 가 되어야 합니다.
data.output.packaging.cmafBooleanCMAF 패키징 출력 여부. 설정 시 dash, hls 는 false 가 되어야 합니다.
data.output.packaging.optionObject패키징 옵션
data.output.packaging.option.min_buffer_timeNumberMPD Representation data rate의 정의에 사용되는 공통 기간을 초 단위로 지정합니다.
data.output.packaging.option.enable_average_bandwidth_mpdBooleanMPD의 각 트랙에 대해 평균 대역폭을 사용합니다.
output.packaging.option.mp4_subtitleBooleanDeprecated
이 매개변수를 사용하여 출력 자막 형식을 Embedded MP4로 설정할 수 있습니다. 파라미터를 생략하면 기본적으로 Text VTT 형식의 자막이 생성됩니다. (기본값: false)
output.packaging.option.subtitle_format.dashString출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 DASH 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.packaging.option.subtitle_format.hlsString출력 자막 형식(text_vtt, mp4_ttml, mp4_vtt)을 설정할 수 있습니다. 작업 생성시 HLS 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
output.packaging.option.subtitle_format.cmafString출력 자막 형식(text_vtt, mp4_ttml)을 설정할 수 있습니다. 작업 생성시 CMAF 패키징 출력을 요청한다면 넣을 수 있는 옵션 값입니다. (기본값: text_vtt)
data.output.drmObjectDRM 정보
data.output.drm.enabledBooleanDRM 암호화 적용 여부
data.output.drm.optionObjectDRM 옵션
data.output.drm.option.multi_keyBoolean멀티키 패키징 적용 여부
data.output.drm.option.max_sd_heightNumberSD 트랙으로 패키징될 최대 해상도
data.output.drm.option.max_hd_heightNumberHD 트랙으로 패키징될 최대 해상도
data.output.drm.option.max_uhd1_heightNumberUHD 트랙으로 패키징될 최대 해상도
data.output.drm.option.skip_audio_encryptionBoolean오디오 트랙 암호화 제외 여부
data.output.drm.option.clear_leadNumber영상 초반 암호화 비활성화 구간 (초 단위)
data.output.drm.option.generate_tracktype_manifestsBoolean멀티키 패키징 시 트랙별 매니페스트(플레이리스트) 파일 생성. SD부터 UHD 트랙까지 포함된 어댑티브 스트림의 경우, SD_ONLY, SD_HD, SD_UHD 세 가지 매니페스트가 생성됨.
data.output.forensic_watermarkingObject포렌식 워터마킹 정보
data.output.forensic_watermarking.enabledBoolean포렌식 워터마킹 적용 여부
data.output.job_noti_idString작업 알림 ID 설정
data.reg_timeString작업 등록 시간
data.start_timeString작업 시작 시간
data.update_timeString작업 최종 업데이트 시간

응답 예제

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콘솔에 표시되는 도브러너 사이트 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_codeString에러 코드
error_messageString에러 메시지
dataObject작업 정보
data.job_idNumber작업 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콘솔에 표시되는 도브러너 사이트 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_codeString에러 코드
error_messageString에러 메시지
dataObject작업 정보
data.job_idNumber작업 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
}
}

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

매개변수설명
siteId콘솔에 표시되는 도브러너 사이트 ID
필드유형필수 여부설명
storage_nameStringYes스토리지 명
aws_bucketStringYesS3 버킷 명
io_typeStringYes입력/출력 유형 (input, output)
access_key_idStringYesS3 액세스 키 ID
secret_keyStringYesS3 비밀 키
regionStringYes리전 코드
descriptionString스토리지 설명

요청 예제

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_codeString에러 코드
error_messageString에러 메시지
data.storage_idString생성된 스토리지 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콘솔에 표시되는 도브러너 사이트 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_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
dataArray스토리지 목록
data.[].storage_idString스토리지 ID
data.[].storage_nameString스토리지 명
data.[].aws_bucketString버킷 명
data.[].io_typeString입출력 유형 (input / output)
data.[].regionString스토리지 리전
data.[].reg_timeString스토리지 등록 일시 YYYY-MM-DD’T’hh-mm-ss
data.[].update_timeString최종 업데이트 일시 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콘솔에 표시되는 도브러너 사이트 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_codeString에러 코드
error_messageString에러 메시지
time_zoneString시간대
dataObject스토리지 정보
data.storage_idString스토리지 ID
data.storage_nameString스토리지 명
data.io_typeString스토리지 입출력 유형 (input, output)
data.aws_bucketString버킷 명
data.regionString리전 코드
data.access_key_idString스토리지 액세스 키 ID
data.secret_keyString스토리지 비밀 키
data.descriptionString스토리지 설명
data.reg_timeString스토리지 등록 일시 (YYYY-MM-DD’T’hh-mm-ss)
data.update_timeString최종 업데이트 일시

응답 예제

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콘솔에 표시되는 도브러너 사이트 ID
storageId스토리지 ID
필드유형설명
storage_nameString스토리지 명
access_key_idString액세스 키 ID
secret_keyString비밀 키
aws_bucketString버킷 명
io_typeString입출력 유형 (input / output)
descriptionString스토리지 설명

요청 예제

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_codeString에러 코드
error_messageString에러 메시지
dataObject스토리지 정보
data.storage_idString스토리지 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콘솔에 표시되는 도브러너 사이트 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_codeString에러 코드
error_messageString에러 메시지
dataObject스토리지 정보
data.storage_idString스토리지 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콘솔에 표시되는 도브러너 사이트 ID
storage_idsArray

요청 예제

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_codeString에러 코드
error_messageString에러 메시지
dataObject스토리지 정보
data.site_idString사이트 ID
data.storage_idsArray스토리지 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 입니다. 현재 알림으로 받을수 있는 타입은 AWS SNS(Simple Notification Service) 만 지원합니다. 작업 알림 API는 다음의 네가지 기능을 제공합니다.

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

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

매개변수설명
siteId도브러너 사이트 ID
필드유형필수여부설명
noti_nameStringYes알림 이름 (최대 50자 영문 대/소문자, 숫자, 특수 문자(-)(_)(.))
noti_typeStringYes연동하는 알림 유형 (현재 AWS SNS만 지원)
url_end_pointStringYes알림 받을 URL 주소 (현재 AWS ARN 타입의 주소만 가능)
aws_access.access_keyStringYesAWS SNS에 접근하는 AWS access key
aws_access.secret_keyStringYesAWS SNS에 접근하는 AWS secret key
alarm_statusObjectYes알림 받을 작업 상태값 관련 객체
alarm_status.queuedBooleanqueued 상태값 알림 여부 (기본값: false)
alarm_status.progressingBooleanprocessing 상태값 알림 여부 (기본값: false)
alarm_status.completeBooleancomplted 상태값 알림 여부 (기본값: false)
alarm_status.errorBooleanerror 상태값 알림 여부 (기본값: false)
alarm_status.stoppedBooleanstopped 상태값 알림 여부 (기본값: 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_codeString에러 코드
error_messageString에러 메시지
dataObject작업 알림 정보
data.noti_idNumber작업 알림 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도브러너 사이트 ID
notiid업데이트 할 작업 알림 ID
필드유형필수여부설명
noti_nameString알림 이름 (최대 50자 영문 대/소문자, 숫자, 특수 문자(-)(_)(.))
noti_typeString연동하는 알림 유형 (현재 AWS SNS만 지원)
url_end_pointString알림 받을 URL 주소 (현재 AWS ARN 타입의 주소만 가능)
aws_access.access_keyStringAWS SNS에 접근하는 AWS access key
aws_access.secret_keyStringAWS SNS에 접근하는 AWS secret key
alarm_statusObject알림 받을 작업 상태값 관련 객체
alarm_status.queuedBooleanYesqueued 상태값 알림 여부 (기본값: false)
alarm_status.progressingBooleanYesprocessing 상태값 알림 여부 (기본값: false)
alarm_status.completeBooleanYescomplted 상태값 알림 여부 (기본값: false)
alarm_status.errorBooleanYeserror 상태값 알림 여부 (기본값: false)
alarm_status.stoppedBooleanYesstopped 상태값 알림 여부 (기본값: 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_codeString에러 코드
error_messageString에러 메시지
dataObject작업 알림 정보
data.noti_idNumber작업 알림 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도브러너 사이트 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_codeString에러 코드
error_messageString에러 메시지
time_zoneString타임존 (+/-hh:mm)
total_countNumber등록된 알림의 총 개수
dataArray작업 알림 목록

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

필드유형설명
noti_idNumber작업 알림 ID
site_idString도브러너 사이트 ID
noti_nameString알림 이름
noti_typeStringAWS SNS만 지원
url_end_pointString알림을 받을 URL 주소
alarm_statusObject알림 받는 작업 상태값 관련 객체
alarm_status.queuedBooleanqueued 상태값 알림 여부
alarm_status.progressingBooleanprogressing 상태값 알림 여부
alarm_status.completeBooleancomplted 상태값 알림 여부
alarm_status.errorBooleanerror 상태값 알림 여부
alarm_status.stoppedBooleanstopped 상태값 알림 여부
reg_timeString작업 알림이 생성된 날짜와 시간
update_timeString작업 알림이 업데이트된 날짜와 시간

응답 예제

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도브러너 사이트 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_codeString에러코드
error_messageString에러 메시지
dataObject작업 알림 정보
data.noti_idNumber작업 알림 ID

응답 예제

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