재생 권한 구현

이 항목에서는 Brightcove 재생 권한을 사용하여 비디오 재생을 관리하는 방법을 배웁니다.

서문

브라이트코브의 재생 권한 관리 서비스는 확장 가능하고 표현력이 뛰어난 비디오 재생을 관리할 수 있는 방법을 제공합니다.

이 기능에 익숙하지 않은 경우개요를 참조하십시오. 브라이트코브 재생 제한문서.

검증 프로세스

재생권한은 특이도와 매칭 순으로 적용됩니다. 허용 규칙은 규칙을 허용하는 규칙보다 덜 구체적이기 때문에 나머지 규칙을 무효화합니다.

특정 IP가 해당 IP에 대한 국가 규칙을 피하도록 허용 할 수 있습니다. 국가 제한에서 일반적으로 허용되는 다른 IP를 차단할 수도 있습니다. 따라서 둘 다 갖는 것이 합리적일 수 있습니다. block-ips그리고allow-ips동일한 재생 권한 정의에서. 다른 규칙도 마찬가지입니다.

대부분의 권한에 대해 허용 및 차단 규칙을 가질 수 있습니다. 두 가지를 모두 갖는 것이 이치에 맞지 않을 수도있는 유일한 국가는 국가입니다.

다음 흐름도는 유효성 검사 프로세스의 작동 방식을 보여줍니다.

  1. 지리적 확인
  2. 일정 확인
  3. 프록시 확인
  4. 도메인 확인
재생 권한 확인
재생 권한 확인

지리적 확인

지리적 제한 흐름은geo_global_rule필드 값에 따라 다음 다이어그램 중 하나를 따릅니다.

  • geo_global_rule로 설정됩니다. allow_all
  • geo_global_rule로 설정됩니다. block_all
  • geo_global_rule로 설정됩니다. null
지리적 제한
지리적 제한

지리적 확인을 통과하면 다음 다이어그램의 추가 확인을 계속합니다.

추가 유효성 검사

지리적 검사를 통과하면 다음 검사가 순서대로 처리됩니다.

  1. 일정 확인
  2. 프록시 확인
  3. 도메인 확인
추가 유효성 검사
추가 유효성 검사

어떻게 작동합니까?

재생 권한은 재생 제한 솔루션 의 한 부분입니다.

재생 권한

기본적으로 플레이어(Brightcove Player 및 Native SDK)는 정책 키가 있는 경우 Playback API에 요청합니다. 플레이어는 다음 엔드포인트로 요청을 보내고 콘텐츠를 검색합니다.

edge.api.brightcove.com

Playback API 요청으로 재생 권한을 확인하려면 정책 키를 포함하지 않습니다. 정책 키가 없으면 플레이어는 이 엔드포인트에 요청을 보냅니다.

edge-auth.api.brightcove.com

모든 재생 권한 유효성 검사를 통과하면 콘텐츠가 반환됩니다.

작업 흐름

재생 제한을 관리하려면 다음 단계를 따르십시오.

  1. 계정 설정
  2. 제한 정의
  3. 제한 사항을 비디오와 연결
  4. 플레이어 구성

계정 설정

이 기능은 재생 권한 관리 서비스의 제한된 가용성 단계에 액세스할 수 있는 특정 고객 집합이 사용할 수 있습니다. 자세한 내용은 고객 성공 관리자에게 문의하십시오.

OAuth 자격 증명 생성

귀하의BC_TOKEN및 계좌 번호를 확인하세요.

  1. 비디오 클라우드 스튜디오에 로그인합니다. 관리자드롭다운에서계정 정보를 선택합니다 . 계정 ID를 복사하세요 .
  2. Studio의 페이지가 열리면 브라우저의 개발자 도구를 열고 콘솔로 이동하여 다음 코드를 붙여 넣습니다.

    var cookiesArray = document.cookie.split(";"), cookiesObj = {}, i, tmpArray = [];
    for (i = 0; i < cookiesArray.length; i++) {
        tmpArray = cookiesArray[i].split("=");
        if (tmpArray[0].indexOf('BC_TOKEN') > -1) {
            cookiesObj.BC_TOKEN = tmpArray[1];
        }
    }
    window.prompt("BC_TOKEN:", cookiesObj.BC_TOKEN);

    를 선택하고 Return 키를 누릅니다

  3. 다음을 포함하는 프롬프트가 나타납니다. BC_TOKEN

클라이언트 자격 증명 요청

Playback Rights API에 대한 계정 권한을 추가합니다.

  1. Playback Rights API에 대한 클라이언트 자격 증명을 생성하는 가장 간단한 방법은이 온라인 앱을사용하고 자격 증명을 생성할 때 다음 권한을 포함하는지 확인하는 것입니다.
    재생 권한 권한
    재생 권한 권한
  2. OAuth API를 직접 사용하여 자격 증명을 생성하려면 다음 단계를 계속하십시오.
  3. 다음은 필요한 권한이있는 OAuth 클라이언트 요청의 예입니다. BC_TOKEN 획득에대한 자세한 내용은 BC_TOKEN 받기를 참조하십시오.

    곱슬 곱슬하다 \\
      --포함 \\
      --헤더 “인증: BC_TOKEN 회원님의 BC_TOKEN "\
      --data {
        name = demo & maximum_scope = [{
          "identity": {
            "type": "비디오 클라우드 계정",
            "계정 ID": 귀하의 계정 ID
          },
          "작업": [
            "video-cloud / playback-auth / playback-rights / read",
            "video-cloud / playback-auth / playback-rights / write",
            "비디오 클라우드 / 비디오 / 읽기",
            "비디오 클라우드 / 비디오 / 만들기",
            "비디오 클라우드 / 비디오 / 업데이트",
            "비디오 클라우드 / 비디오 / 삭제",
            "video-cloud / playback-auth / key / read",
            "video-cloud / playback-auth / key / write"
          ]
      }]
    } \\
    https://oauth.brightcove.com/v4/client_credentials
  4. API 응답에서client_id및 를client_secret복사합니다. Playback Rights API에 요청할 때 액세스 토큰을 생성하는 데 사용합니다.

제한 정의

재생 권한 API를 사용하여 비디오 재생 제한을 정의합니다.

재생 권한 API

각 재생 권한 제한 개체는 하나 이상의 동영상과 함께 사용할 수 있습니다.

기본 URL

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

https://playback-rights.api.brightcove.com

계정 경로

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

https://playback-rights.api.brightcove.com/v1/accounts/{accountID}

권한

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

Authorization: Bearer {access_token}

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

권한

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

  • video-cloud/playback-auth/playback-rights/read
  • video-cloud/playback-auth/playback-rights/write

제한 관리

재생 권한 API는 다음 요청을 지원합니다. API에 대한 자세한 내용은재생 권한 API 참조를 참조하십시오 .

새 재생 권한 만들기

POST /v1/accounts/{accountID}/playback_rights
  Content-Type: application/json
  Body: {playback rights object}

유효한 필드 목록은요청 본문섹션을 참조하십시오.

컬링 예

호주에서만 유효한 재생 권한을 만듭니다.

컬 -X 포스트\
  https://playback-rights.api.brightcove.com/v1/accounts/{your_account_id}/playback_rights \\
  -H '인증: 전달자 {access_token} '\\
  -H '콘텐츠 유형: 애플리케이션/json'\
  -d '{
  "geo": {
    "allowed_countries": [
      "AU"
    ]
  }
}'

API 응답

나중에 사용할 수 있도록playback_rights_id값을 저장합니다. 이 값은 API 응답에서 찾을 수 있습니다. 어느 한 쪽:

  • 응답 헤더 :

    playback_rights_id값은 Header 응답의Location필드에서 찾을 수 있습니다. 다음과 유사해야합니다.

    Location: /v1/accounts/your account_id/playback_rights/your playback_rights_id
        
  • 응답 본문

    playback_rights_id값은 응답 본문에서id필드로 찾을 수 있습니다. 다음과 유사해야합니다.

    {
      "id": "your playback_rights_id",
      "geo": {
      "allowed_countries": [
        "MX",
        "US"]
    }

계정에 대한 모든 재생 권한 얻기

GET /v1/accounts/{accountID}/playback_rights

계정에 대한 특정 재생 권한 얻기

GET /v1/accounts/{accountID}/playback_rights/{playbackRightsID}

특정 재생 권한 업데이트:

PUT /v1/accounts/{accountID}/playback_rights/{playbackRightsID}
  Content-Type: application/json
  Body: {playback rights object}

유효한 필드 목록은요청 본문섹션을 참조하십시오.

특정 재생 권한 삭제:

DELETE /v1/accounts/{accountID}/playback_rights/{playbackRightsID}

요청 본문

다음은 요청 본문에 포함 할 수있는 모든 필드의 예입니다.

{
  "geo": {
  "allowed_countries": [
    "MX",
    "US"
  ],
  "blocked_countries": [
    "JP",
    "CN"
  ],
  "allowed_zip_codes": [
    "US-90210"
  ],
  "blocked_zip_codes": [
    "US-72810"
  ],
  "allowed_dmas": [
    501
  ],
  "blocked_dmas": [
    803
  ]
},
"blocked_proxies": {
  "anonymous": true,
  "public": true,
  "corporate": true,
  "transparent": true,
  "hosting": true
},
"allowed_domains": [
  "www.google.com",
  "www.brightcove.com"
],
"blocked_domains": [
  "www.ooyala.com"
],
"start_time": 1572905011,
"end_time": 1672905011,
"allowed_ips": [
  "192.168.1.1"
],
"blocked_ips": [
  "192.168.1.1"
],
"allowed_days": [
  "mon",
  "tue"
],
"allowed_hours": [
  "5-6"
],
"allow_insecure": true,
"disabled": false,
"geo_global_rule": "allow_all",
"is_default": true,
"name": "Optional playback right name"
}

재생 권한 API 필드

필드 유형 설명
allowed_days 문자열 리소스를 검색 할 수있는 날짜의 3 글자 소문자 이름 배열입니다. 다음 중 하나 이상: mon, tue, wed, thu, fri, sat, sun
allowed_domains , blocked_domains 문자열 도메인 이름 배열
allowed_hours 정수 리소스 검색이 허용되는 24 시간제 (0에서 시작하여 최대 47 시간)의 시간 배열입니다. 당일 0 ~ 23, 다음날 종료일 24 ~ 47 허용 된 시간 블록이 전날에 시작하고 다음 날에 끝나는 경우 24+ 표기가 필요합니다.

예: 이 헤더의3-4값은 오전 3:00 (UTC) 부터 오전 3:59 (UTC) 까지 리소스를 사용할 수 있음을 의미합니다.
allow_insecure 부울 기본값: false
이 값을 로true설정하면 JWT 토큰이 선택 사항이 됩니다.
allowed_ips , blocked_ips 정수 ipv4/ipv6 주소 또는 CIDR 블록의 배열입니다.
disabled 부울 기본값: false
이 옵션을 설정하면 Playback Right가true비활성화되어 모든 사람이 재생할 수 있습니다.
geo 물체 지리적 권리와 관련된 재산
geo.allowed_countries ,
geo.blocked_countries
스트링 ISO 3166-1 alpha-2 표준을 따르는 두 글자 국가 코드의 배열입니다. 값 목록은공식적으로 지정된 코드 요소를 참조하십시오 .
geo.allowed_dmas ,
geo.blocked_dmas
정수 Nielsen 지정 시장 지역 (DMA) 번호의 배열입니다. 값 목록은 DMA 코드문서를 참조하십시오.
geo.allowed_zip_codes ,
geo.blocked_zip_codes
스트링 두 글자로 된 국가와 하이픈이 접두사로 붙은 우편번호 배열 (예: ["US-90045"]
두 글자로 된 국가 코드는공식적으로 지정된 코드 요소에 표시된 대로 대문자여야 하며 ISO 3166-1 alpha-2 표준을 따라야합니다.
geo_global_rule 스트링 기본: ""
가치:
  • "" - 글로벌 지리적 규칙 없음 (즉, 지리적 속성에 대한 일반적인 흐름을 따름)
  • "allow_all" - blocked_*속성을 사용하여 지정된 블랙리스트에 오른 위치를 제외하고 전 세계 어느 곳에서나 재생할 수 있습니다.
  • "block_all" - allow_*속성을 사용하여 지정된 화이트리스트 위치를 제외하고 전 세계 어디에서나 재생을 차단합니다.
is_default 부울 기본: false
이 값을 로true설정하면 현재 재생 권한이 기본값으로 설정됩니다. 자세한 내용은 소개 섹션의 참고 사항을 참조하십시오.
name 문자열 선택적 재생 권한 이름
start_time , end_time 정수 Epoch 시간
재생 권한 프록시 속성
필드 유형 설명
blocked_proxies 물체 대리권 관련 속성
blocked_proxies.anonymous 부울 클라이언트의 IP 주소를 사용할 수 없습니다. DRM, TOR 포인트, 임시 프록시 및 기타 마스킹 서비스를 이기기 위해 위치를 변경하는 서비스가 포함됩니다.
blocked_proxies.corporate 부울 일반적으로 무해한 것으로 간주되지만 위치가 문제가 될 수 있습니다. 여러 사용자가 중앙 위치를 통해 프록시되어 있는지 확인하고 하나의 네트워크 피상 IP 주소를 공유 할 수 있습니다.
blocked_proxies.hosting 부울 IP 주소는 호스팅 시설에 속하며 최종 사용자는 일반적으로 호스팅 시설에 있지 않으므로 프록시가 될 가능성이 높습니다.
blocked_proxies.public 부울 공용 인터넷 액세스를 허용하는 위치에서 프록시 된 여러 사용자.
blocked_proxies.transparent 부울 클라이언트의 IP 주소는 HTTP 헤더를 통해 사용할 수 있지만 값이 반드시 신뢰할 수 있는 것은 아닙니다 (예: 스푸핑될 수 있음).

제한 사항을 비디오와 연결

CMS API를 사용하여 재생 권한 ID를 비디오와 연결할 수 있습니다. 이전 단계에서 생성 한 재생 권한 ID를 사용합니다.

CMS API

각 재생 권한 제한 개체는 하나 이상의 동영상과 함께 사용할 수 있습니다.

기본 URL

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

https://cms.api.brightcove.com/v1

계정 경로

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

https://cms.api.brightcove.com/v1/accounts/{accountId}

권한

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

Authorization: Bearer {access_token}

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

권한

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

  • video-cloud/video/read
  • video-cloud/video/update

제한 관리

는 다양한 요청 유형을CMS API지원합니다. 비디오를 업데이트하려면 다음을 사용하십시오.

동영상 업데이트:

a를playback_rights_id동영상과 연결하세요. 이 ID는 이전 단계에서 만든 Playback Rights API에 있어야합니다.

PATCH /v1/accounts/{account_id}/videos/{video_id}
  Content-Type: application/json
  Body: {video object}

컬링 예

동영상에 playback_rights_id를 추가합니다.

컬 -X 패치 \\
  https://cms.api.brightcove.com/v1/accounts/ 귀하의 계정_ID /동영상/ 귀하의 동영상_ID \
  -H '인증: 액세스토큰을 전달하세요. '\
  -H '콘텐츠 유형: 애플리케이션/json'\
  -d '{
	“재생_권리_ID”: “내 재생_권리_ID”
}'

특정 동영상 보기:

GET /v1/accounts/{account_id}/videos/{video_ids}

API 사용에 대한 자세한 내용은 CMS API 참조를 참조하십시오 .

플레이어 구성

기본적으로 Brightcove Player는 Brightcove Playback API (PAPI)와 통신합니다. 재생 제한을 관리하는 새로운 시스템이 Playback API 앞에 있습니다. 플레이어를 구성하려면 다음을 참조하십시오.

웹 플레이어

Brightcove 웹 플레이어를 구성하려면 Brightcove Player 문서에서 재생 제한을 참조하십시오.

기본 Android 또는 iOS 플레이어

Android 또는 iOS용 네이티브 플레이어를 구성하려면 네이티브 SDK로 재생 제한 문서를 참조하세요.

나만의 플레이어

콘텐츠가 Video Cloud 라이브러리에 있지만 자체 플레이어를 사용하는 경우개요에 표시된 대로 Playback API를 호출할 수 있습니다. API문서를 재생합니다. 기본 URL을 다음으로 바꿉니다.

https://edge-auth.api.brigthcove.com

정책 키를 사용하는 대신 인증에 JSON 웹 토큰(JWT)을 사용합니다.

Authorization: Bearer {JWT}

다음은 Curl의 예입니다.

컬 -X GET \\
-H '인증: 전달자 {JWT} '\\
https://edge-auth.api.brightcove.com/playback/v1/accounts/{your_account_id}/videos/{your_video_id}