서문
클라우드 플레이아웃과 관련된 두 가지 API가 있습니다 .
- EPG API를 사용하면 클라우드 플레이 아웃 채널에 대한 전자 프로그래밍 가이드를 검색 할 수 있습니다. Cloud Playout은 https://repository.data2type.de/XMLTV/v_1.47/html/index.html 에 있는 스키마에 설명된 대로 XML TV 표준을 준수하는 EPG를 생성합니다.
- Channels API를 사용하면 UI 또는 웹 페이지에 표시할 수 있는 Cloud Playout 채널에 대한 정보를 검색할 수 있습니다. 개요 참조: 채널 API
인증
Cloud Playout API는 Brightcove OAuth 시스템을 사용하여 요청과 함께 인증 헤더에 전달되는 액세스 토큰을 통해 요청을 인증합니다.
Authorization: Bearer {access token}
OAuth API를 사용하여 액세스 토큰을 검색합니다. 자세한 내용은 액세스 토큰가져오기를 참조하십시오. 또한 액세스 토큰에 대한 요청을 인증하려면 클라이언트 자격 증명이 필요합니다. 이러한 정보는 Studio의 관리자 섹션에서 만들 수 있습니다. API 자격 증명관리를 참조하십시오 . 자격 증명이 EPG API에 필요한 권한은 다음과 같습니다.
EPG 요청 매개변수
다음과 같은 선택적 쿼리 매개 변수를 EPG 요청에 추가 할 수 있습니다.
매개 변수 | 기본값 | 설명 |
---|---|---|
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로 설정하십시오. |
참고
start
/end
기간은 14일을 초과할 수 없습니다. 시작은 과거 EPG를 쿼리하기 위해 현재 날짜-시간보다 14 일 늦을 수 있습니다. 현재 날짜-시간으로부터 최대 14 일 동안 향후 EPG 데이터를 사용할 수도 있습니다.- 종료 시간과 시작 시간의 차이가 14 일보다 큰 경우 API는 요청 된 시간부터 종료 시간까지 14 일 또는 14 일 중 빠른 날짜 만 생성합니다.
start
및 둘 다 시간대 오프셋이 있는 날짜/시간 값을end
허용하거나 포함하지 않을 수 있습니다. 시간대 오프셋이 포함되지 않은 경우 UTC로 간주됩니다.-
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>
참고 사항
- 시작 및 종료 타임 스탬프는 UTC 시간입니다.
category
및keyword
항목은 내부용입니다.
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는 범퍼와 일정을 무시합니다. 기간이 비어 있습니다.
한계
- EPG는 최선의 노력으로 / 거의 정확합니다.
- EPG가 재생 목록에서 처음 구성 될 때 클라우드 재생이 전환을 시작하는 데 시간이 걸리므로 시작 시간 오류가있을 수 있습니다.
- EPG는 현재 보유한 정보를 기반으로 동적으로 구성되기 때문에 재생 목록이 수정 될 때 모든 검색에 대해 일관성이 없을 수 있습니다. EPG를 변경하는 일부 작업에는 재생 목록 재정렬 또는 재생 목록에 자산 추가 / 삭제가 포함됩니다.
- 스위칭에서 오작동이 발생하고 스위치 시간이 정확하지 않으면 향후 EPG에 대한 전송이 부정확 할 수 있습니다. 이를 유발할 수있는 작업의 몇 가지 예로는 재생 목록 전환 또는 재생 목록에서 현재 활성 자산 삭제가 있습니다.
- EPG 소비자는 가장 정확한 버전을 얻기 위해 가능한 한 실시간에 가깝게 요청해야합니다.