배달 규칙 구현

이 항목에서는 비즈니스 목표에 맞게 미디어를 제공하는 방법을 사용자 지정할 수있는 Brightcove의 제공 규칙을 구현하는 방법에 대해 알아 봅니다.

개요

게시자는 종종 기술 및 비즈니스 이유로 미디어 매니페스트의 콘텐츠 특성을 수정해야 합니다. 이러한 요구 사항을 충족하기 위해 브라이트코브는 Dynamic Delivery 에서 반환된 매니페스트의 내용을 수정하는 규칙을 적용할 수 있는 프레임워크를 만들었습니다.

배달 규칙은 조건과 작업으로 구성됩니다.

  • 정황 -특정 작업을 트리거하는 "If"조건
  • 행위 -매니페스트 수정 방법을 정의하는 "Then"매개 변수

배달 규칙에 대한 자세한 내용은 다음을 참조하십시오.

계정 설정

가격 책정에 대해 알아보고 계정에 이 기능을 활성화하려면 고객 성공 관리자에게 문의하십시오.

규칙 적용

다음 흐름도는 배달 규칙이 적용되는 방법을 보여줍니다.

적용되는 배송 규칙
적용되는 배송 규칙

정황

첫 번째 단계에서 지원되는 "if"조건은 다음과 같습니다.

  • 명시 적 요청 -구성 ID는 생성 한 작업의 ID입니다. 이 ID를 사용하여 런타임에 Playback API에 전달합니다. 이 ID는 기본 서비스가 적절한 응답 데이터를 반환하기 위해 Playback API에서 활용하는 결정을 내릴 수 있도록하는 구성 값에 매핑됩니다.

  • 장치 그룹 -사용자 에이전트 구문 분석에 의해 감지 된 장치 유형. 현재 지원되는 그룹은 다음과 같습니다.
    • 안드로이드
    • 애플TV
    • 크롬캐스트
    • ipad
    • iphone
    • 데스크탑 크롬
    • 데스크탑 파이어 폭스
    • 데스크탑 사파리
    • 페치TV
    • 이오스 기타
    • 로쿠 7/8
    • 스마트폰 제네릭
    • 태블릿 (안드로이드)
    • 태블릿 킨들
    • 알려지지 않음
     
  • 지리 - 요청 장치의 물리적 위치:
    • 대륙
    • 국가

작업

첫 번째 단계에서 지원되는 작업 또는 "then"매개 변수는 다음과 같습니다.

  • 미디어 전달 CDN -주어진 Dynamic Delivery 계정 내에서 사용하도록 구성된 CDN에서 미디어 세그먼트 전송에 사용할 CDN.

  • 변환 특성 - 기본 미디어 변환의 특성을 기준으로 필터링합니다. 주요 수치는 다음과 같습니다.
    • 최소 비디오 비트 전송률
    • 최대 비디오 비트 전송률
    • 최소 비디오 해상도
    • 최대 비디오 해상도
    • 최대 오디오 변환 수
    • 최대 비디오 변환 수
    • 첫 번째 비디오 비트 전송률
    • 분류: 불연속

스코프

작업은 두 가지 수준에서 적용 할 수 있습니다.

  • 계정 -특정 고객의 계정에 대한 모든 요청에 적용되는 작업
  • 특정 요청 -특정 요청에 대해 호출되는 작업

작업은 위에 나열된 순서대로 적용됩니다. 이후 작업은 이전 작업보다 우선합니다.

규칙 정의

배달 규칙 API를 사용하여 미디어 배달을 사용자 지정합니다.

배달 규칙 API

전송 규칙 API를사용하면 미디어 전송을 제어하기 위한 조건 및 작업을 정의할 수 있습니다.

그만큼응답 Delivery Rules API의conditions정렬. 이 배열을 사용하면 여러 개를 만들 수 있습니다. if / then각각의 조건then하나 이상을 가리킨다작업 ID .

추가하거나 삭제할conditions방법이 없더라도conditions배열을 업데이트하여 이 작업을 수행할 수 있습니다.

기본 URL

API의 기본 URL은 다음과 같습니다.

https://delivery-rules.api.brightcove.com

계정 경로

모든 경우에 특정 Video Cloud 계정에 대한 요청이 이루어집니다. 따라서 항상 기본 URL에 계정이라는 용어와 계정 ID를 추가합니다.

https://delivery-rules.api.brightcove.com/accounts/{accountID}

권한

요청에 대한 액세스 토큰이 필요하며 권한 부여 헤더에 있어야합니다.

Authorization: Bearer {access_token}

액세스 토큰은 Brightcove OAuth 서비스에서 얻어야하는 임시 OAuth2 액세스 토큰입니다. 클라이언트 자격 증명을 얻고 이를 사용하여 액세스 토큰을 검색하는 방법에 대한 자세한 내용은 Brightcove OAuth 개요를 참조하십시오 .

사용 권한

Playback Rights API에 대한 요청은 다음에서 이루어져야 합니다. 클라이언트 자격 증명다음 권한으로:

  • video-cloud/delivery-rules/read
  • video-cloud/delivery-rules/all

규칙 관리

Delivery Rules API는 다음 요청을 지원합니다. API 세부 정보는전송 규칙 API 참조를 참조하십시오 .

배달 규칙 받기

다음 GET 요청을 사용하여 계정에 대한 최신 버전의 배달 규칙을 가져옵니다.

GET /accounts/{accountID}
API 응답

다음은 응답 본문입니다. 전달 규칙에는 일련의 조건과 일련의 작업이 포함되어 있습니다.

{
  "conditions": [
    {
      "name": "MyCondition1",
      "if": {
        "device_group": [
          "ipad"
        ],
        "request_country": [
          "string"
        ],
        "request_continent": [
          "AF"
        ]
      },
      "then": [
        "{action_id}"
      ]
    }
  ],
  "actions": [
    {
      "id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
      "properties": {
        "min_video_bitrate": 0,
        "max_video_bitrate": 0,
        "first_video_bitrate": 0,
        "min_video_resolution": "string",
        "max_video_resolution": "string",
        "max_video_renditions": 0,
        "max_audio_renditions": 0,
        "preferred_cdn_provider": "string",
        "preferred_cdn_domain": "string",
      "video_codecs": [
        "string"
      ],
      "audio_codecs": [
        "string"
      ]
    }
    }
  ]
}

조건 얻기

다음 GET 요청을 사용하여 계정에 대한 조건을 가져옵니다.

GET /accounts/{accountID}/conditions
API 응답

다음은 응답 본문입니다.

[
  {
    "name": "MyCondition1",
    "if": {
      "device_group": [
        "ipad"
      ],
      "request_country": [
        "string"
      ],
      "request_continent": [
        "AF"
      ]
    },
    "then": [
      "44c91a1d-71f1-40b4-b9cf-3abcd12345"
    ]
  }
]

업데이트 조건

다음 PUT 요청을 사용하여 계정 조건을 업데이트하십시오.

PUT /accounts/{accountID}/conditions
  Content-Type: application/json
  Authorization: Bearer {access_token}
  Body: {conditions object}

조건 요청 본문

다음은 조건에 대한 요청 본문입니다. 이것은 조건 개체의 배열입니다.

[
  {
    "name": "MyCondition1",
    "if": {
      "device_group": [
        "ipad"
      ],
      "request_country": [
        "string"
      ],
      "request_continent": [
        "AF"
      ]
    },
    "then": [
      "44c91a1d-71f1-40b4-b9cf-3abcd12345"
    ]
  }
]

조건에 대한 필드 세부 정보는 다음과 같습니다.

필드 유형 설명
name 문자열 조건에 대한 고유 식별자
device_group 문자열 사용자 에이전트 구문 분석에 의해 감지 된 장치 유형 배열
request_country 문자열 두 글자 국가 코드의 배열
request_continent 문자열 두 글자의 대륙 코드 배열
then 문자열 연관된 작업의 고유 식별자

액션 만들기

다음 POST 요청을 사용하여 계정에 대한 작업을 만듭니다.

POST /accounts/{accountID}/actions
  Content-Type: application/json
  Authorization: Bearer {access_token}
  Body: {actions object}

작업 요청 본문

다음은 작업에 대한 요청 본문입니다.

{
    "properties": {
      "min_video_bitrate": 0,
      "max_video_bitrate": 0,
      "first_video_bitrate": 0,
      "min_video_resolution": "string",
      "max_video_resolution": "string",
      "max_video_renditions": 0,
      "max_audio_renditions": 0,
      "preferred_cdn_provider": "string",
      "preferred_cdn_domain": "string",
      "video_codecs": [
        "string"
      ],
      "audio_codecs": [
        "string"
      ]
  }
}

작업에 대한 필드 세부 정보는 다음과 같습니다.

필드 유형 설명
properties 객체 특정 작업에 대해 정의 된 속성의 개체
min_video_bitrate ,
max_video_bitrate
정수 최소 또는 최대 허용 동영상 비트 전송률(kbps) 설정
first_video_bitrate 정수 첫 번째 동영상의 비트 전송률(kbps) 설정
min_video_resolution ,
max_video_resolution
스트링 허용되는 최소 또는 최대 비디오 해상도(WxH) 설정
max_video_renditions 정수 최대 비디오 변환 수 설정
max_audio_renditions 정수 최대 오디오 변환 수 설정
preferred_cdn_provider 문자열 선호하는 CDN 공급자 설정
preferred_cdn_domain 문자열 선호하는 CDN 도메인 설정
video_codecs 문자열 비디오 코덱 배열
audio_codecs 문자열 오디오 코덱 배열

작업에 대한 API 응답

다음은 작업에 대한 샘플 응답 본문입니다.

{
    "id": "44c91a1d-71f1-40b4-b9cf-3abcd12345",
    "properties": {
      "min_video_bitrate": 0,
      "max_video_bitrate": 0,
      "first_video_bitrate": 0,
      "min_video_resolution": "string",
      "max_video_resolution": "string",
      "max_video_renditions": 0,
      "max_audio_renditions": 0,
      "preferred_cdn_provider": "string",
      "preferred_cdn_domain": "string",
      "video_codecs": [
       "string"
      ],
      "audio_codecs": [
       "string"
      ]
  }
}

요청의 작업 필드 외에도 API 응답에는 다음 생성 필드가 포함됩니다.

필드 유형 설명
id 문자열 작업에 대해 시스템이 생성 한 고유 식별자입니다. 이는 업데이트 및 삭제 메서드에서actionID사용됩니다.

액션 얻기

다음 GET 요청을 사용하여 계정에 대한 작업을 가져옵니다.

GET /accounts/{accountID}/actions
API 응답

작업에 대한 API 응답을 참조하십시오 .

액션 얻기

다음 GET 요청을 사용하여 계정에 대한 특정 작업을 가져옵니다.

GET /accounts/{accountID}/actions/{actionID}
API 응답

작업에 대한 API 응답을 참조하십시오 .

액션 업데이트

다음 PUT 요청을 사용하여 계정에 대한 작업을 업데이트합니다.

PUT /accounts/{accountID}/actions/{actionID}
  Content-Type: application/json
  Authorization: Bearer {access_token}
  Body: {actions object}
API 요청

다음은 조치를 업데이트하기 위한 샘플 요청 본문입니다.

{
  "id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
  "properties": {
   "custom_properties": {
    "generate_thumbnails": false,
    "hls_iframes": true
   }
  }
 }
API 응답

다음은 업데이트된 작업에 대한 샘플 응답입니다.

{
  "id": "44c91a1d-71f1-40b4-b9cf-3edb94645943",
  "properties": {
   "custom_properties": {
    "generate_thumbnails": false,
    "hls_iframes": true
   }
  }
 }

액션 삭제

다음 DELETE 요청을 사용하여 계정에 대한 작업을 제거합니다.

DELETE /accounts/{accountID}/actions/{actionID}

제한 사항

배달 규칙을 사용할 때는 다음과 같은 몇 가지 알려진 제한 사항이 있습니다.

  • 미디어 콘텐츠 - 동영상 또는 PMP4 동영상에서는 전송 규칙이 작동하지 않습니다.
  • 미디어 콘텐츠 - 게재 규칙은 라이브 비디오에서 작동하지 않습니다.
  • 오디오만 해당 - 서버 측 광고 (SSAI를) 사용하도록 설정된 배달 규칙에는 비디오 및 오디오 콘텐츠가 모두 필요합니다. 이는 SSAI의 제한입니다.