개요: EPG API

이 항목에서는 Cloud Playout과 함께 사용되는 EPG API에 대한 개요를 제공합니다.

서문

클라우드 플레이아웃과 관련된 두 가지 API가 있습니다 .

인증

Cloud Playout API는 Brightcove OAuth 시스템을 사용하여 요청과 함께 인증 헤더에 전달되는 액세스 토큰을 통해 요청을 인증합니다.

Authorization: Bearer {access token}

OAuth API를 사용하여 액세스 토큰을 검색합니다. 자세한 내용은 액세스 토큰가져오기를 참조하십시오. 또한 액세스 토큰에 대한 요청을 인증하려면 클라이언트 자격 증명이 필요합니다. 이러한 정보는 Studio의 관리자 섹션에서 만들 수 있습니다. API 자격 증명관리를 참조하십시오 . 자격 증명이 EPG API에 필요한 권한은 다음과 같습니다.

EPG API 권한
EPG API 권한

EPG 요청 매개변수

다음과 같은 선택적 쿼리 매개 변수를 EPG 요청에 추가 할 수 있습니다.

EPG API 쿼리 매개 변수
매개 변수 기본값 설명
start (14 days prior to now) EPG 응답을 쿼리하고 ISO 8601 날짜 형식으로 반환 할 수있는 날짜-시간
end (now - the current date-time) EPG 응답을 쿼리하고 ISO 8601 날짜 형식으로 반환 할 수있는 날짜-시간
limit (all programs) 하나의 요청에서 반환되는 프로그램 수를 제어하는 정수 값입니다. 제한 값(기본값: 100)으로 인해 지정된 기간 동안 모든 프로그램이 반환되지 않을 수 있습니다. 자세한 내용은 EPG API 모범 사례를 참조하십시오.
include_ads false 응답에 광고를 포함하려면 이것을 true로 설정하십시오.

참고

  1. start / end기간은 14일을 초과할 수 없습니다. 시작은 과거 EPG를 쿼리하기 위해 현재 날짜-시간보다 14 일 늦을 수 있습니다. 현재 날짜-시간으로부터 최대 14 일 동안 향후 EPG 데이터를 사용할 수도 있습니다.
  2. 종료 시간과 시작 시간의 차이가 14 일보다 큰 경우 API는 요청 된 시간부터 종료 시간까지 14 일 또는 14 일 중 빠른 날짜 만 생성합니다.
  3. start및 둘 다 시간대 오프셋이 있는 날짜/시간 값을end허용하거나 포함하지 않을 수 있습니다. 시간대 오프셋이 포함되지 않은 경우 UTC로 간주됩니다.
  4. start및 둘 다 URI로end인코딩되어야 합니다.
    URI 인코딩
    ISO 8601 샘플 URI 인코딩
    2020-07-24 15:30:00 2020-07-24%2015%3A30%3A00
    2020-07-24 15:30:00 +0530 2020-07-24%2015%3A30%3A00%20%2B0530

샘플 EPG API 응답

다음은 API의 샘플 응답입니다.

<?xml version="1.0" encoding="utf-8"?>
    <tv source-info-name="Cloudplayout Schedules" source-info-url="https://www.cloudplayout.qa.brightcove.com">
        <channel id="9fb8032ff2fe4f55b388d8969c22ca58">
            <display-name>MyCloudChannel</display-name>
            <icon src="https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png"/>
        </channel>
        <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120132000" stop="20201120132228">
            <title>Frozen</title>
            <desc>FrozenMultiLanguage</desc>
            <length units="seconds">147.605</length>
            <icon src="https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/43d57501-b98a-4708-bdd1-a09081f7a585/main/1280x720/1m13s802ms/match/image.jpg" width="1280" height="720"/>
            <category>video</category>
            <keyword>eyJ2aWRlb19pZCI6IjcwNzAwNDQxMDk2MjAyIiwib3JkZXIiOjEsInRhZ3MiOiJjaGlsZHJlbixjb21lZHkiLCJjdXN0b21fbWV0YWRhdGEiOnsicmVnaW9uIjoiYWZyaWNhIiwic29uZ3MiOjV9fQ==</keyword>
        </programme>
        <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120132228" stop="20201120133228">
            <title>LiveDemo</title>
            <desc>Live Demo</desc>
            <length units="seconds">600.0</length>
            <icon src="https://img.brightcove.com/cloudplayout/live-icon.jpg" width="1280" height="720"/>
            <category>live</category>
            <keyword>eyJ2aWRlb19pZCI6IjcwNzAxNDg0MjA3MjAyIiwib3JkZXIiOjIsInRhZ3MiOiJjcC1saXZlLXBsYWNlaG9sZGVyLGR1cmF0aW9uLTAwOjEwOjAwIiwiY3VzdG9tX21ldGFkYXRhIjp7InJlZ2lvbiI6Im5vcnRoIGFtZXJpY2EifX0=</keyword>
        </programme>
        <programme channel="9fb8032ff2fe4f55b388d8969c22ca58" start="20201120133228" stop="20201120133327">
            <title>ChildrenComedy</title>
            <desc>ChildrenComedy</desc>
            <length units="seconds">59.164</length>
            <icon src="https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/9430773f-76f5-476e-964d-a13b40cab90a/main/1280x720/29s582ms/match/image.jpg" width="1280" height="720"/>
            <category>video</category>
            <keyword>eyJ2aWRlb19pZCI6IjcwNzAxMjE2NDgyMjAyIiwib3JkZXIiOjMsInRhZ3MiOiJyb21hbmNlIiwiY3VzdG9tX21ldGFkYXRhIjp7InJlZ2lvbiI6ImFzaWEiLCJzb25ncyI6NX19</keyword>
        </programme>
        <programme>
            ...
        </programme>
    </tv>

참고 사항

  1. 시작 및 종료 타임 스탬프는 UTC 시간입니다.
  2. categorykeyword항목은 내부용입니다.

EPG 데이터에는 각 프로그램이 비디오 또는 라이브 자산에 대한 세부 정보를 나타내는 여러 프로그램 데이터가 포함되어 있습니다.

<프로그램 채널="27963aa756294a7c98ca1c2c459d4ba2" 시작="20201118232206" 정지="20201118232305">
	 < 제목>어린이 < 코미디/제목 >
	 < 설명 > 어린이 < 코미디/덱 >
	 < 길이> 단위="초">59.164  <  /길이 >
	 <  icon> src=” https://cf-images.us-east-1.qa.boltdns.net/v1/jit/6063799219001/9430773f-76f5-476e-964d-a13b40cab90a/main/1280x720/29s582ms/match/image.jpg "width="1280" 높이="720" >  <  /icon >
	 <  < 카테고리>동영상/카테고리 >
	 < 키워드 > eyj2awrlb19pzci6ijcwnzaxmje2nd Gymjayiwib3jkzxiiojesinrhz3mioijjaglszhjlbixn0b21fbwv0ywrhdgeionsicmvnaw9uijoiywzyawnhiiwj IC29UZ3MIOJV9fq==  <  /키워드 >
 <  /프로그램 >

여기서는 base64로 인코딩된 json 값을keyword포함합니다. 의 디코딩된keyword값은 아래와 같습니다.

  • video_id : 는 비디오 클라우드에서와 같은 비디오의 식별자입니다.
  • order : 는 Cloud Playout 프로그램 목록에 있는 에셋의 순서입니다.
  • tags : 쉼표로 구분됨 (있는 경우) - 비디오 클라우드의 해당 비디오와 연결됩니다.
  • 사용자 지정 메타데이터: (있는 경우 이름/값 쌍으로 표시됨) 비디오 클라우드의 해당 비디오와 연결됩니다.
{
  "video_id":"70701216482202",
  "order":1,
  "tags":"children,comedy",
  "custom_metadata":{
    "region":"africa",
    "songs":5
  }
}

EPG와 범퍼

EPG에서 범퍼를 처리하는 방법

EPG에는 범퍼 자체가 포함되지 않습니다. 범퍼의 지속 시간은 다음과 같은 방식으로 반영됩니다.

  • 프리롤 범퍼 재생 시간은 다음 동영상 재생 시간에 추가됩니다.
  • 포스트롤 범퍼 재생 시간이 이전 동영상 재생 시간에 추가됩니다.

잠재적인 문제

EPG가 부정확해지는 원인은 다음 두 가지입니다.

  • 비디오에 프리롤 ( cp-preroll-bumper ) 포스트롤 ( cp-postroll-bumper ) 을 모두 태깅하면 지속 시간을 추가할 위치를 결정하는 태그에 따라 달라지므로 EPG가 정확하지 않을 수 있습니다. 동영상에 두 태그가 모두 있으면 범퍼 재생 시간이 이전 동영상과 다음 동영상 모두에 추가됩니다.
  • Cloud Playout 프로그램 목록에서 범퍼를 이동할 수 있지만 프리롤 범퍼 바로 뒤에 포스트롤 범퍼가 오도록 범퍼를 정렬하면 두 범퍼가 모두 재생되지만 EPG API는 범퍼와 일정을 무시합니다. 기간이 비어 있습니다.

한계

  1. EPG는 최선의 노력으로 / 거의 정확합니다.
  2. EPG가 재생 목록에서 처음 구성 될 때 클라우드 재생이 전환을 시작하는 데 시간이 걸리므로 시작 시간 오류가있을 수 있습니다.
  3. EPG는 현재 보유한 정보를 기반으로 동적으로 구성되기 때문에 재생 목록이 수정 될 때 모든 검색에 대해 일관성이 없을 수 있습니다. EPG를 변경하는 일부 작업에는 재생 목록 재정렬 또는 재생 목록에 자산 추가 / 삭제가 포함됩니다.
  4. 스위칭에서 오작동이 발생하고 스위치 시간이 정확하지 않으면 향후 EPG에 대한 전송이 부정확 할 수 있습니다. 이를 유발할 수있는 작업의 몇 가지 예로는 재생 목록 전환 또는 재생 목록에서 현재 활성 자산 삭제가 있습니다.
  5. EPG 소비자는 가장 정확한 버전을 얻기 위해 가능한 한 실시간에 가깝게 요청해야합니다.