IPTV는 라이브 텔레비전 또는 주문형 비디오(VOD) 콘텐츠가 서비스 제공업체의 관리 네트워크(광대역)를 통해 인터넷 프로토콜을 사용하여 텔레비전이나 컴퓨터로 전송되는 시스템을 말합니다(예: AT&T U-Verse). 콘텐츠가 관리되지 않는 네트워크를 통해 전송되는 경우 이를 OTT(Over the Top)라고 합니다(예: Now TV, Netflix, Amazon prime 등). 주문형 비디오의 다양한 비즈니스 모델에는 거래형 VOD(TVOD), 구독형 주문형 비디오(SVOD), 구독과 TVOD를 결합한 하이브리드가 있습니다. SVOD는 사용자가 다양한 장르의 동영상을 골라 재생할 수 있는 구독 요금제입니다. TVOD는 시청자가 구독하지 않고도 원하는 콘텐츠를 구매하거나 대여할 수 있습니다. IPTV/OTT 시스템 내의 비디오 커머스 컴포넌트를 통해 VoD 콘텐츠를 상품화하여 TVOD로 판매할 수 있습니다. 오퍼 템플릿을 사용하여 TVOD 제품의 가격을 설정합니다. 오퍼 템플릿은 콘텐츠 제공업체와 협상한 계약에 따라 오퍼 기간 내에 상품의 가격을 책정하는 방법과 관련 권리를 설명합니다. 이 블로그에서는 Couchbase를 사용하여 TVOD 가격 책정을 지원하는 데이터 모델을 지정합니다.
아래는 오퍼 기간 내에 계층형 가격 책정이 있는 제품을 생성하기 위한 높은 수준의 아키텍처입니다.
- 오퍼 계층이 있는 오퍼 템플릿은 가격 책정 구성 요소를 사용하여 비디오 커머스 시스템에서 생성됩니다.
- 메타데이터 관리 시스템으로 일부 메타 정보(예: 콘텐츠 제공자 및 오퍼 티어와 가격)가 포함된 오퍼 템플릿 ID가 수집됩니다.
- 메타데이터 관리 시스템의 콘텐츠 스케줄링 구성 요소에서 제품화할 미디어의 메타데이터를 게시하고 카탈로그에서 사용할 수 있습니다. 메타데이터에는 오퍼 템플릿 ID에 대한 참조가 포함됩니다.
- 메타데이터 프로세서는 게시된 메타데이터를 처리하고 비디오 커머스 시스템 제품 관리 구성 요소를 호출하여 오퍼 템플릿에 구성된 오퍼 계층을 기반으로 제품의 제품 및 오퍼 계층을 사용하여 제품 카탈로그 버킷에 제품을 생성합니다.
사용자가 UI의 제품 카탈로그에서 제품을 클릭하면 제품 관리 비디오 커머스 시스템이 호출됩니다. 제품 관리 비디오 커머스 시스템은 오퍼 티어가 다른 제품을 검색하고 요청 시간을 기준으로 현재 가격을 계산합니다. 이에 대한 로직은 블로그 뒷부분에서 설명합니다.
활성 오퍼 티어 창이 있는 라이브 제품 중간에 가격을 변경하려는 비즈니스는 기존의 모든 활성 가격을 재정의하는 절대라는 새 오퍼 티어를 생성하여 가격을 변경할 수 있습니다.
아래는 다양한 오퍼 계층을 사용하여 TVOD로 상품화할 미디어에 대한 데이터 모델입니다.
오퍼 템플릿은 하나 이상의 오퍼 계층으로 구성되며, 각 계층은 기간 동안의 제품 가격을 간략하게 설명합니다. 오퍼 템플릿은 생성 시 제품에 할당되어 최종 사용자에게 제공되는 기간 동안의 가격을 설명합니다. 최종 사용자가 제품을 구매하면 구매 시점에 적용되는 오퍼 티어에 따라 제품 가격이 결정됩니다. 이를 설명하기 위해 TVOD 고화질(HD) VOD 자산이 제공되는 경우를 예로 들어 설명하겠습니다.st 2020년 3월부터 2020년 7월 14일까지는 아래와 같이 기간별로 다른 가격으로 제공됩니다. 대여 기간은 14일입니다.
아래 JSON 문서는 비디오 커머스 구성 요소의 데이터 저장소로 사용되는 Couchbase에서 생성해야 하는 가격이 다른 세 가지 오퍼 티어가 있는 오퍼 템플릿입니다. 아래 오퍼 계층의 제한 유형은 제한됨, 출시 예정, 조정 기간으로 값을 사용할 수 있습니다. 제한됨과 isRestricted가 참이면 해당 오퍼 티어에서 콘텐츠를 구매할 수 없습니다. 이를 통해 콘텐츠 공급자는 콘텐츠가 VoD 카탈로그에 게시되어 있는 동안 구매를 위한 블랙아웃 기간을 만들 수 있습니다.
키:- 오퍼 템플릿::2851234
JSON 문서
{
"id": "2851234", // 오퍼 템플릿의 식별자
"업데이트됨": 1582329599000, // 오퍼 템플릿이 마지막으로 업데이트된 타임스탬프
"설명": "디즈니 키즈 1-5용 템플릿", // 오퍼 템플릿 설명
"생성됨": 1582329599000, // 오퍼 템플릿이 생성된 타임스탬프
"createdByUser": "gauss/12345", // 사용자 이름/식별자가 오퍼 템플릿을 생성했습니다.
"updatedByUser": "gauss/12345", // 사용자 이름/식별자가 오퍼 템플릿을 업데이트했습니다.
"isTaxIncluded": true, // 가격에는 부가가치세 또는 판매세가 포함되어 있습니다.
"taxCode": "taxCode12345", // 세금 코드
"계약 시작 날짜": 1583020800000, // 계약 시작일
"계약종료일": 1594771199000, // 계약 종료일
"contentproviderId": "5112", // 이 템플릿이 연결된 콘텐츠 제공자 ID
"offerTiers": [
{
"type":"선례" // 제품의 오퍼 시작일을 기준으로 한 오퍼 티어
"order": 1, // 오퍼 시작일을 기준으로 해당 티어가 적용되어야 하는 순서
"기간": 1, // 이 계층이 활성화된 기간
"durationUnits": "month", // 기간의 시간 단위
"prices": { // 다른 통화로 표시된 가격
"GBP": 1.99
},
"restrictionType":"제한된" // 이 오퍼 등급과 연관된 제한 기간 유형
"isrestricted": false, // 이 티어에서 제품을 구매할 수 있는지 여부를 나타냅니다. 참이면 구매할 수 없고, 거짓이면 구매할 수 있습니다.
"grantsReferences": [ // 이 콘텐츠 구매 시 최종 사용자에게 부여될 수 있는 사용 권한을 나타내는 권한 객체에 대한 참조입니다.
“10112”
],
},
{
"type":"선례"
"주문": 2,
"기간": 2,
"기간 단위": "월",
"prices": {
"GBP": 2.99
},
"제한 유형":"제한됨"
"isrestricted": false,
"grantsReferences": [
“10112”
],
},
{
"type":"선례"
"주문": 3,
"기간": 1,
"기간 단위": "월",
"prices": {
"GBP": 0.99
},
"제한 유형":"조정 렌탈 기간"
"isrestricted": false,
"grantsReferences": [
“10112”
],
},
]
}
오퍼 템플릿 ID 2851234는 예약 구성 요소에 사용할 수 있도록 메타데이터 관리 시스템에서 구성됩니다. 비즈니스 메타데이터를 게시할 때 예약 구성 요소는 일부 비즈니스 로직에 따라 또는 스케줄러가 수동으로 콘텐츠 제공업체를 위해 이 오퍼 템플릿을 선택합니다. 게시된 비즈니스 메타데이터를 사용하는 메타데이터 프로세서 컴포넌트는 Couchbase에서 제품을 생성합니다. 제품은 아래와 같이 오퍼 템플릿을 사용하여 다양한 오퍼 계층으로 만들어집니다.
- 시작일을 제품 오퍼 시작일(1583020800000 - 01/03/2020 00:00:00)로 하고 종료일을 제품 오퍼 시작일 + 1개월(31/03/2020 23:59:59)로 하는 오퍼 티어1
- 시작 날짜가 ( 01/04/2020 00:00:00), 종료 날짜가 ( 31/05/2020 23:59:59)인 오퍼 계층 2의 오퍼 템플릿에서 주문 2가 포함된 오퍼 템플릿의 기간은 2개월입니다.
- 시작일이 (01/06/2020 00:00:00), 종료일이 13/07/2020 23:59:59인 혜택 티어 3.) 마지막 혜택 단계는 혜택 종료일인 2020년 7월 14일 23:59:59까지 연장되지만, 사용자는 2020년 6월 30일 23:59:59까지만 콘텐츠를 £0.99에 구매할 수 있습니다. 이는 마지막 오퍼 티어에서 콘텐츠를 구매한 사용자가 오퍼 템플릿의 콘텐츠 제공자로부터 계약 종료일을 위반하지 않고 콘텐츠를 재생할 수 있도록 하기 위한 것입니다.
아래는 Couchbase의 제품 JSON 페이로드입니다.
{
"licenseEndDate": 1593647999000, // 제품 범위의 기준이 되는 미디어의 라이선스 종료일
콘텐츠 제공자 계약
"editorialRef": "XXA1149520", // 다음에서 받은 파일의 에디토리얼 버전 참조
콘텐츠 제공업체는 IPTV용 SD, HD, UHD로 인코딩합니다.
및 적응형 비트 전송률(ABR - HLS/MSS (HTTP 라이브 스트리밍 또는
Microsoft 스무스 스트리밍 ))
"offerStartDate":1583020800000, //offerStartDate
"licenseStartDate":1583020800000, // 제품 범위의 기준이 되는 미디어의 라이선스 시작 날짜
콘텐츠 제공자 계약
"생성됨": , 1582934399000 // 시간 제품이 생성되었습니다.
"offerTemplateId":"2851234", //오퍼 템플릿 식별자
"media" { // 제품과 연결된 미디어
"id": "2602559",
"미디어파일": [
{
"encodingProfile": "HD",
"type": "동영상",
"형식":"MPEG-2TS"
},
{
"encodingProfile": "HD",
"type": "동영상",
"format":"HLS"
},
]
}
"offerTiers": [ //product.pricingPlan
{
"type":"선례"
"시작": 1583020800000,
"prices": {
"GBP": 1.99
},
"end": 11585699199000,
"grantsReferences": [
“10112”
],
"제한 유형": null,
"isRestricted": false
},
{
"type":"선례"
"시작": 1585699200000,
"prices": {
"GBP": 2.99
},
"end": 1590969599000,
"grantsReferences": [
“10112”
],
"제한 유형": null,
"isRestricted": false
},
{
"type":"선례"
"시작": 1590969600000,
"prices": {
"GBP": 0.99
},
"end": 1593561599000,
"grantsReferences": [
“10112”
],
"제한 유형": null,
"isRestricted": false
}
],
"title": "니모를 찾아서", //product.title
"encodingProfile": "HD", // HD - 셋톱박스에서 소비하기 위한 MPEG-2 전송 스트림
"오퍼링": [ // 제품이 TVOD로 제공 중입니다.
"TVOD"
],
"scodes": [], // 제품이 연결된 구독 코드입니다.
"parentIdentifier": null, // 제품이 속한 컬렉션 또는 시리즈의 식별자
"업데이트됨": 1582934399000, // 시간 제품이 마지막으로 업데이트되었습니다.
"offerEndDate": 1593647999000, //offerEndDate
"장르": "영화" // 제품이 연관된 장르
"rentalDuration":336
"durationUnits":"시간"
}
사용자가 제품 카탈로그에서 제품을 검색할 때 카탈로그에 가격이 표시되어야 합니다. 로직은 현재 요청 시간이 제품의 어느 오퍼 티어에 해당하는지 확인하고 해당 오퍼 티어의 가격을 사용하는 것입니다.
비즈니스에서 제품 가격을 변경하고자 하는 사용 사례를 지원합니다. 예를 들어 제품을 14/05/2020 00:00:00~20/05/2020 23:59:59 사이에 £1.50에 제공해야 합니다. 오퍼 템플릿을 변경하고 아래와 같이 오퍼 템플릿 2851234의 오퍼 티어 배열에 새 티어를 추가하여 이를 수행할 수 있습니다.
{
"type":"절대" // 절대형은 날짜가 고정된 오퍼 티어를 나타냅니다.
"절대시작": 1589414400000, // 이 티어가 적용되는 날짜 및 시간
"절대 끝": 1590019199000, // 이 계층이 끝나는 날짜와 시간
"prices": { // 다른 통화에 대한 이 계층의 가격
"GBP": 1.50
},
"제한 유형":"제한됨"
"isrestructed": false,
"권리 참조": [
“10112”
],
}
오퍼 템플릿이 업데이트되면 문서를 호스팅하는 버킷에서 카우치베이스 이벤트 함수가 실행됩니다. 이벤트 함수의 로직은 해당 오퍼 템플릿과 관련된 모든 제품을 가져와서 아래와 같이 절대 오퍼 티어를 절대 유형으로 업데이트하는 것입니다.
{
"type":"절대"
"시작": 1589414400000,
"prices": {
"GBP": 0.99
},
"end": 1590019199000,
"grantsReferences": [
“10112”
],
"제한 유형": null,
"isRestricted": false
}
제품 카탈로그에서 가격을 반환하는 로직은 현재 요청 시간이 어느 오퍼 티어에 해당하는지 확인합니다. 활성 오퍼 티어가 두 개이고 한 개가 "절대" 유형이고 다른 하나가 "선행" 유형인 경우 유형을 확인한 다음 절대 오퍼 티어를 선택하고 절대 오퍼 티어에서 가격을 반환합니다.
오퍼 계층의 부여 참조는 자산 구매 시 사용자에게 권한을 할당하는 데 사용됩니다. 그런 다음 이러한 권한은 DRM 라이선스 서버에서 재생 중인 콘텐츠에 DRM 라이선스를 발급하는 데 사용됩니다.