디바이스 제한 구현

이 항목에서는 Brightcove 재생 제한을 사용하여 비디오 재생에 대한 장치 제한을 활성화하는 방법을 배웁니다.

서문

Brightcove 재생 제한을 사용하면 비디오 재생에 대한 장치 제한을 설정할 수 있습니다. DRM 라이센스 요청이 이루어질 때 각 사용자의 장치는 고유한 ID로 등록됩니다. 사용자 당 장치 수를 제어합니다.

장치 제한은 각 라이센스 요청에 대해 확인되고 적용됩니다. 이 제한을 사용하려면 JSON 웹 토큰(JWT)현재 사용자 ID로uid재생 API에.

이 기능을 처음 사용하는 경우개요를 참조하십시오. 브라이트코브 재생 제한문서.

장치 등록

다음을 포함하는 유효한 재생 요청이 있을 때 장치가 Brightcove에 등록됩니다. JSON 웹 토큰(JWT) ~와 함께uid그리고dlimit클레임이 접수됩니다. 그 순간부터이 장치는 하나의 슬롯을 차지합니다.

JWT 클레임

장치 제한의 경우 일반적으로 필요한 클레임과 함께 다음 클레임을 사용할 수 있습니다.

  • uid :

    엔드 뷰어의 사용자 ID입니다. 이 필드는 장치 등록에 필요합니다.

  • dlimit :

    DRM 콘텐츠의 경우dlimit클레임은 사용자가 스트리밍할 수 있는 장치 수를 나타냅니다. 스트림을 요청하는 각 사용자의 모든 장치가 등록됩니다. 스트림 제한에 도달하면 더 이상 장치에서 스트리밍할 수 없습니다.

    dlimit클레임을 통해 지정된 사용자와 연결할 수 있는 장치 수를 제어할 수uid있습니다. 값은 >이어야 합니다0 .

    이후 요청에서dlimit클레임 값을 삭제해도 이전에 허용된 장치는 계속 작동합니다.

    예:
    dlimit값을 로 설정하면 사용자는 기기 A 3 , B, C에서 플레이할 수 있습니다 (모두 허용). 장치 D에서 재생하려고 하면 거부됩니다.
    dlimit값을 로1변경해도 사용자는 Devices API로 기기를 관리하여 기기를 수동으로 취소하지 않는 한 3개의 기기 A, B, C 모두에서 계속 플레이할 수 있습니다. 이렇게 하려면 장치관리섹션을 참조하십시오.

구현

기기 제한을 사용하려면 다음 단계를 따르세요.

  1. 만들기 JSON 웹 토큰(JWT)일반적으로 요구되는 클레임과 함께uid그리고dlimit주장.

    DRM 라이센스 요청이 이루어질 때 각 사용자의 장치는 고유한 ID로 등록됩니다.

  2. 디바이스 API를사용하여 사용자 디바이스를 관리합니다. 이 API를 사용하면 사용자의 장치를 가져오고 장치를 삭제하고 장치 이름을 업데이트 할 수 있습니다.

    장치가 등록되면 아이디와 닉네임으로 식별됩니다. Devices API를 사용하면 장치 별명을 편집하여 장치 목록을 쉽게 관리 할 수 있습니다.

  3. 플레이어 구성를 사용하기 위해JSON Web Token (JWT) 이전 단계에서 생성되었습니다.

장치 관리

디바이스 API를 사용하여 사용자디바이스를 관리할 수있습니다.

장치 API

Devices API를 사용하여 사용자 장치를 가져오고 삭제할 수 있습니다.

기본 URL

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

https://playback-auth.api.brightcove.com/v1

계정 경로

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

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

권한

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

Authorization: Bearer {access_token}

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

권한

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

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

API 메소드

Devices API는 다음 요청을 지원합니다. 자세한 내용은디바이스 API 레퍼런스를 참조하십시오 .

모든 사용자 장치 가져 오기

지정된 계정 및 사용자의 모든 장치를 가져옵니다.

엔드포인트 요청
GET /v1/accounts/{accountID}/users/{userID}/devices
응답 본문

응답 본문에는 장치 배열이 포함되며 다음과 유사해야합니다.

[
    {
        "id": "12e12345-11e1-1bd1-d123-1234567890",
        "created_at": 1612646018,
        "updated_at": 1612646018,
        "name": "my device1",
        "user_agent": "PlayReadyClient"
    },
    {
        "id": "WVCf123456789abcdefghijkl1234567890abcdefg",
        "created_at": 1612385697,
        "updated_at": 1612385697,
        "name": "my device2",
        "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:85.0) Gecko/20100101 Firefox/85.0"
    }
]

모든 계정 기기 가져오기

계정 내 각 사용자의 모든 장치를 가져옵니다. pageper_page매개 변수를 사용하여 응답을 제한합니다.

엔드포인트 요청
GET /v1/accounts/{accountID}/devices?page=0&per_page=10

파라미터:

필드 유형 설명 기본값 최대값
page 정수 요청할 페이지의 인덱스입니다. 숫자가 페이지 제한보다 크면 마지막 페이지를 차지합니다. 0 마지막 인덱스
per_page 정수 요청에 표시할 항목 수입니다. 1개부터 100개까지 설정할 수 있습니다. 값을 설정하지 않으면 기본값이 사용됩니다. 10 100

응답 본문

응답 본문에는 다음과 같은 사용자 및 장치 배열이 포함됩니다.

{
  "metadata": 
  {
    "page": 3,
    "per_page": 10,
    "page_count": 5,
    "total_count": 55,
    "Links": [
      {"self": "/v1/accounts/123456/devices?page=3&per_page=10"},
      {"first": "/v1/accounts/123456/devices?page=0&per_page=10"},
      {"previous": "/v1/accounts/123456/devices?page=2&per_page=10"},
      {"next": "/v1/accounts/123456/devices?page=4&per_page=10"},
      {"last": "/v1/accounts/123456/devices?page=4&per_page=10"}
    ]
  },
  "records": [
    {
      "account_id": "123456",
      "user_id": "user_1",
      "device": "device_1"
    },
    {
      "account_id": "123456",
      "user_id": "user_1",
      "device": "device_2"
    },
    ...
    {
      "account_id": "123456",
      "user_id": "user_10",
      "device": "device_1"
    }
  ]
}

장치 이름 업데이트

지정된 계정, 사용자 및 장치의 장치 이름을 업데이트합니다.

엔드포인트 요청

PATCH요청을 통해 디바이스를 설명하는 이름을 설정할 수 있습니다.

PATCH  /v1/accounts/{accountID}/users/{userID}/devices/{deviceID}
  Content-Type: application/json
  Body: {devices object}
요청 본문

요청 본문에는 장치 이름이 포함됩니다.

{
    "name": "my device1"
}

필드 세부 정보는 다음과 같습니다.

필드 유형 설명
name 문자열 장치를 식별하는 데 도움이되는 설명적인 별명

모든 사용자 장치 삭제

사용자와 연결된 모든 장치를 삭제합니다.

엔드포인트 요청
DELETE /v1/accounts/{accountID}/users/{userID}/devices

특정 사용자 장치 삭제

사용자의 특정 장치를 삭제합니다.

엔드포인트 요청
DELETE /v1/accounts/{accountID}/users/{userID}/devices/{deviceID}