지원 지원 문의 | 시스템 상태 시스템 상태
페이지 내용

    개요 : Cloud Playout API

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

    소개

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

    • EPG API를 사용하면 클라우드 플레이 아웃 채널에 대한 전자 프로그래밍 가이드를 검색 할 수 있습니다. Cloud Playout은 스키마에 설명 된대로 XML TV 표준을 준수하는 EPG를 생성합니다. https://repository.data2type.de/XMLTV/v_1.47/html/index.html.
    • Channels API를 사용하면 UI 또는 웹 페이지에 표시 할 수있는 클라우드 플레이 아웃 채널에 대한 정보를 검색 할 수 있습니다.

    인증

    Cloud Playout API는 Brightcove OAuth 시스템 요청과 함께 권한 부여 헤더에 전달 된 액세스 토큰을 통해 요청을 인증하려면 다음을 수행하십시오.

    Authorization: Bearer {access token}

    액세스 토큰은 OAuth API - 보다 액세스 토큰 얻기 자세한 내용은. 또한 액세스 토큰에 대한 요청을 인증하려면 클라이언트 자격 증명이 필요합니다. Studio의 관리 섹션에서 만들 수 있습니다. API 자격 증명 관리. 자격 증명이 EPG API에 필요한 권한은 다음과 같습니다.

    EPG API 권한
    EPG API 권한

    API URL

    모든 Cloud Playout 채널 가져 오기

    다음 엔드 포인트를 사용하여 계정에 대한 모든 Cloud Playout 채널 목록을 가져올 수 있습니다.

    https://cm.cloudplayout.brightcove.com/accounts/{account_id}/cp_channels

    그리고, account_id 이다 Video Cloud 계정 ID.

    EPG 받기

    EPG API 요청의 URL은 다음과 같습니다.

    https://sm.cloudplayout.brightcove.com/accounts/{account_id}/channels/{channel_id}/epg

    그리고, account_id 이다 Video Cloud 계정 ID 및 channel_id Studio에서 생성 된 채널의 ID입니다.

    채널의 ID는 모든 클라우드 플레이 아웃 채널을 가져 오기위한 요청에 대한 응답에서 찾을 수 있으며, Studio의 클라우드 플레이 아웃 섹션의 채널보기에있는 경우 브라우저 URL에서 찾을 수 있습니다.

    https://studio.brightcove.com/products/videocloud/cloudplayout/channel/2c73c2112f794e6eb80be1284a495674

    EPG 요청 매개 변수

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

    EPG API 쿼리 매개 변수
    매개 변수 기본값 제품 설명
    start (현재 14 일 전) EPG 응답을 쿼리하고 ISO 8601 날짜 형식으로 반환 할 수있는 날짜-시간
    end (현재-현재 날짜-시간) EPG 응답을 쿼리하고 ISO 8601 날짜 형식으로 반환 할 수있는 날짜-시간
    limit (모든 프로그램) 하나의 요청에서 반환되는 프로그램 수를 제어하는 ​​정수 값
    include_ads 그릇된 응답에 광고를 포함하려면 이것을 true로 설정하십시오.

    노트

    1. 그리고, start/end 기간은 14 일을 초과 할 수 없습니다. 시작은 과거 EPG를 쿼리하기 위해 현재 날짜-시간보다 14 일 늦을 수 있습니다. 현재 날짜-시간으로부터 최대 14 일 동안 향후 EPG 데이터를 사용할 수도 있습니다.
    2. 종료 시간과 시작 시간의 차이가 14 일보다 큰 경우 API는 요청 된 시간부터 종료 시간까지 14 일 또는 14 일 중 빠른 날짜 만 생성합니다.
    3. 모두 startend 시간대 오프셋이 있거나없는 날짜-시간 값을 허용 할 수 있습니다. 시간대 오프셋이 포함되지 않은 경우 UTC로 간주됩니다.
    4. 모두 startend URI로 인코딩되어야합니다.
      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="http://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 데이터에는 각 프로그램이 비디오 또는 live 유산:

    <programme channel="27963aa756294a7c98ca1c2c459d4ba2" start="20201118232206" stop="20201118232305">
    	<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" ></icon>
    	<category>video</category>
    	<keyword>eyJ2aWRlb19pZCI6IjcwNzAxMjE2NDgyMjAyIiwib3JkZXIiOjEsInRhZ3MiOiJjaGlsZHJlbixjb21lZHkiLCJjdXN0b21fbWV0YWRhdGEiOnsicmVnaW9uIjoiYWZyaWNhIiwic29uZ3MiOjV9fQ==</keyword>
    </programme>

    여기, keyword base64로 인코딩 된 json 값을 포함합니다. 디코딩 된 값 keyword 아래에 나와 있습니다.

    • video_id: 비디오의 식별자입니다. Video Cloud.
    • order: Cloud Playout 프로그램 목록에서 자산의 순서입니다.
    • tags: 쉼표로 구분 (있는 경우)-해당 동영상과 연결됨 video cloud.
    • 맞춤 메타 데이터 : (있는 경우, 이름 / 값 쌍으로 표시) video cloud.
    {
      "video_id":"70701216482202",
      "order":1,
      "tags":"children,comedy",
      "custom_metadata":{
        "region":"africa",
        "songs":5
      }
    }

    샘플 채널 API 응답

    {
            "items": [
              {
                "public_id": "f8eb5f9ccfb84f81b4fb506a663c5545",
                "name": "Channel-4",
                "description": "Test Channel",
                "account_id": "1752604059001",
                "state": "RUNNING",
                "status": "Channel started",
                "start_time": "2021-01-03 15:31:12 UTC",
                "stop_time": null,
                "input_groups": "slate:rtmp:playlist",
                "output_groups": "rtmp",
                "loop_playlist": true,
                "playlist_id": "1687789969630819284",
                "channel_class": "single-pipeline",
                "ssai_enabled": false,
                "aws_region": "us-east-1",
                "message": "",
                "created_at": "2021-01-02 15:39:05 UTC",
                "updated_at": "2021-01-03 15:31:12 UTC",
                "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
                "output_destinations": [
                  "Brightcove Live"
                ],
                "channel_created_at": "2021-01-02 15:39:05 UTC",
                "channel_updated_at": "2021-01-02 15:39:05 UTC",
                "channel_created_by": "rcrooks@brightcove.com",
                "channel_updated_by": "rcrooks@brightcove.com"
              },
              {
                "public_id": "42ecb67a9a964662a4071b4fffff0012",
                "name": "Test-6",
                "description": "Test Channel",
                "account_id": "1752604059001",
                "state": "SCHEDULED",
                "status": "Scheduled for start",
                "start_time": "2021-01-09 05:00:00 UTC",
                "stop_time": "2021-01-09 23:00:00 UTC",
                "input_groups": "slate:rtmp:playlist",
                "output_groups": "rtmp",
                "loop_playlist": true,
                "playlist_id": "1688070644726417934",
                "channel_class": "single-pipeline",
                "ssai_enabled": false,
                "aws_region": "us-east-1",
                "message": "",
                "created_at": "2021-01-05 18:00:18 UTC",
                "updated_at": "2021-01-06 19:08:41 UTC",
                "image_url": "https://bc-cloudplayout-prod.s3.amazonaws.com/default_channel_image.png",
                "output_destinations": [
                  "Brightcove Live"
                ],
                "channel_created_at": "2021-01-05 18:00:18 UTC",
                "channel_updated_at": "2021-01-06 19:06:46 UTC",
                "channel_created_by": "rcrooks@brightcove.com",
                "channel_updated_by": "rcrooks@brightcove.com"
              }
            ]
          }

    한계

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

    09 년 2021 월 XNUMX 일에 마지막으로 업데이트 된 페이지