CMS를 비디오 클라우드와 통합

이 주제에서는 브라이트코브 비디오 클라우드를 CMS와 통합하는 기본 작업에 대해 학습합니다. CMS 및 브라이트코브 API 작업 내에서 사용자가 수행하는 일반적인 기능을 나열하며, 이러한 기능을 제공하는 데 사용할 수 있습니다.

사용자 기능

다음은 CMS 사용자에게 제공 할 수있는 Video Cloud 관련 기능입니다.

  • Video Cloud에 새 비디오 추가
  • Video Cloud 비디오를 새 버전으로 교체
  • 제목, 설명, 태그와 같은 비디오의 메타데이터 업데이트
  • 동영상 삭제
  • 재생 목록 만들기
  • 재생 목록의 동영상 변경
  • 재생 목록 삭제
  • 비디오 플레이어 만들기
  • 치수 또는 스타일 지정과 같은 비디오 플레이어 속성 수정
  • 플러그인을 통해 비디오 플레이어에 특별한 기능 추가
  • 단일 동영상 또는 재생목록 게시
  • 동영상 로드, 조회수, 플레이율, 참여도 등에 대한 분석 데이터를 제공합니다.

이 모든 기능을 최종 사용자에게 공개하고 싶지 않을 수도 있습니다. 예를 들어 동영상을 삭제하지 못하게 할 수도 있습니다. 사용자가 Video Cloud Studio로 직접 이동하지 않고 Video Cloud를 CMS와 통합 할 때의 장점 중 하나는 Brightcove API를 통해 사용자에게 노출 할 기능을 정확히 선택할 수 있다는 것입니다.

인증

모든 브라이트코브 API 요청의 경우 인증은 OAuth2 액세스 토큰을 기반으로 합니다. 액세스 토큰을 얻는 두 단계 프로세스가 있습니다.

  1. 필요한 API 작업에 대한 권한을 가진 클라이언트 자격 증명 만들기
  2. 클라이언트 자격 증명을 사용하여 임시 액세스 토큰을 생성하여 API 요청을 인증합니다.

클라이언트 자격 증명 만들기

클라이언트 자격 증명 생성은 다음을 통해 수행 할 수있는 일회성 작업입니다. 비디오 클라우드 스튜디오아니면 그 OAuth API . 그러나 액세스 토큰을 요청하기 위해 저장해야하는client_idclient_secret가 반환됩니다.

액세스 토큰 만들기

임시 액세스 토큰은 OAuth API . 그만큼client_idclient_secret BASE64로 인코딩되고Basic인증 문자열.

access_token반환되는 것은 API 호출과 함께 권한 부여 헤더에 전달됩니다.

    >Authorization: Bearer your_access_token
    
    

액세스 토큰은 5 분 동안 유효합니다. 수백 개의 연속 API 호출을 수행하는 일종의 일괄 처리 작업을 수행하지 않는 한 시간 제한을 추적하지 않고 각 API 호출에 대해 새 API 호출을 요청하는 것이 좋습니다.

비디오 추가

사용자가 CMS에서 Video Cloud에 비디오를 추가 할 수 있도록하려면 다음을 사용하여 수행 할 수 있습니다. Dynamic Ingest API . 사용자가 S3 버킷 또는 공용 서버일 수 있는 리포지토리에 비디오를 업로드하도록 하는 것이 좋습니다. Dynamic Ingest 시스템은 아래에 설명 된 2 단계 프로세스를 통해 비디오를 가져 와서 비디오 클라우드 시스템에 추가 할 수 있습니다.

Video Cloud에 비디오 개체 추가

첫 번째 단계는 비디오 클라우드 시스템에서 비디오 개체를 만드는 것입니다. POST CMS API에 대한 요청 :

    https://cms.api.brightcove.com/v1/accounts/:account_id/videos
    
    

요청 본문에는 JSON 개체의 기본 동영상 속성이 포함됩니다. name하지만, 다음과 같은 추가 메타 데이터를 포함 할 수도 있습니다. descriptiontags :

    {
    "name": "Woodpecker",
    "description": "A bird that hunts insects inside wood",
    "reference_id": "Bird_Woodpecker.mp4",
    "tags": ["bird", "air", "nature"]
    }
    
    

비디오 인제스팅

비디오 개체를 만들 때CMS API비디오 속성이 포함 된 JSON 개체를 반환합니다. 비디오를 추출합니다id JSON에서 가져온 다음이를 사용하여Dynamic Ingest API동영상 수집 및 트랜스 코딩을 요청하려면 :

    https://ingest.api.brightcove.com/v1/accounts/ACCOUNT_ID/videos/VIDEO_ID/ingest-requests
    
    

다시 한번 요청 본문에 비디오 파일의 위치를 지정하는 JSON을 보냅니다.

    {
      "master":{
        "url":"http://some.site.com/videos/mp4/Bird_Woodpecker.mp4"
      },
      "profile":"multi-platform-extended-static",
      "capture-images": true
    }
    
    

profile다음은 트랜스코딩 프로세스에서 만들어야 할 변환을 지정하는 인제스트 프로필입니다. 대부분의 경우 다음 표준 프로파일 중 하나가 적절해야합니다.

동적 전달 프로필

  • multi-platform-extended-static
  • multi-platform-standard-static

레거시 인제스트 프로파일

  • videocloud-default-v1 (the default)
  • screencast-1280
  • smart-player-transition
  • single-bitrate-high
  • audio-only
  • single-bitrate-standard
  • high-resolution

그러나 필요한 경우 추가 사용자 지정 수집 프로필을 만들 수 있습니다. Ingest Profiles API또는 사용비디오 클라우드 스튜디오 .

포스터 및 축소판 이미지 추가

그만큼capture-images위 코드의 옵션은 트랜스 코딩 프로세스 중 중간 지점에서 비디오의 포스터 및 썸네일 이미지를 캡처하도록 Video Cloud에 지시합니다. 또는 비디오를capture-images인제스트하는false동시에 또는 나중에 이미지를 대신 설정하고 인제스트할 수 있습니다.

    {
    "master":{
    "url":"http://some.site.com/videos/mp4/Bird_Woodpecker.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "http://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "http://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    }
    }
    
    

보다이미지와Dynamic Ingest API상세 사항은.

캡션 또는 장에 텍스트 트랙 추가

를 사용하여 수집Dynamic Ingest API시점이나 나중에WebVTT파일의 텍스트 트랙을 비디오에 추가할 수도 있습니다. 텍스트 트랙은 비디오에캡션이나장을추가하는 데 사용됩니다.

    {
    "master":{
    "url":"http://some.site.com/videos/mp4/Bird_Woodpecker.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "http://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "http://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    },
    "text_tracks": [
    {
    "url": "http://some.site.com/captions/for_video/Water-in-Motion.vtt",
    "srclang": "en",
    "kind": "captions",
    "label": "English",
    "default": true
    }
    ]
    }
    
    

보다 WebVTT 파일 수집상세 사항은.

비디오 관리

CMS API사용하면 계정에 대한 비디오 데이터를 다시 가져올 수 있습니다. 위에 표시된 것처럼 비디오 수집 프로세스의 일부로 비디오 객체를 만드는 데에도 사용됩니다. 가장 기본적인 요청은 다음과 같습니다.

    https://cms.api.brightcove.com/v1/accounts/account_id/videos
    
    

기본적으로이 요청은 이름, 설명, 태그, 사용자 정의 필드, 생성 및 마지막 수정 날짜, 포스터 및 미리보기 이미지의 URL 등을 포함하여 풍부한 메타 데이터를 포함하는 20 개의 동영상 개체의 JSON 배열을 반환합니다.

다음 매개 변수 중 하나 이상을 요청에 추가하여 요청 결과를 구체화할 수 있습니다.

limit
이 반환 할 비디오 객체의 수를 결정, 최대 임의의 숫자로 설정할 수 있습니다 100 - 기본값은 20
offset
이것은 건너 뛸 항목 수를 결정하므로 비디오 카탈로그를 통해limit페이지하는 데 함께 사용됩니다. 기본값은 0입니다.
sort
이것은 결과를 정렬 할 비디오 메타 데이터 필드를 결정합니다. 기본적으로 결과는 정렬 기준updated_at (내림차순, 가장 최근에 업데이트 된 비디오를 먼저 표시하기 위해)

보다CMS API개요-매개 변수이러한 매개 변수에 대한 자세한 정보는

비디오 검색

q매개 변수를 사용하여 다양한 기준으로 비디오를 검색 할 수도 있습니다. 이름, 설명, 태그와 같은 특정 필드뿐만 아니라 날짜 및 비디오의 상태를 기준으로 검색할 수 있습니다.

    https://cms.api.brightcove.com/v1/accounts/account_id/videos?q=tags:sea,mammal
    
    

검색에 대한 자세한 내용 및 모든 옵션은비디오 검색 .

특정 비디오 가져오기 및 업데이트

ID 또는 참조 ID로 특정 비디오를 검색하려면 다음과 같이 하십시오.

    https://cms.api.brightcove.com/v1/accounts/account_id/videos/id
    or
    https://cms.api.brightcove.com/v1/accounts/account_id/videos/ref:reference_id
    
    

GET요청은 비디오 객체를 반환합니다. 업데이트하려면JSON사용하여 반환PATCH동일한 URL로 요청하십시오.

재생목록

재생 목록 정보는 비디오 정보와 거의 동일한 방식으로 를 사용하여 관리됩니다. CMS API Video Cloud는 두 가지 범주에서 8 가지 유형의 재생 목록을 지원합니다.

수동 (또는EXPLICIT ) 재생 목록
지정된 동영상 세트 포함 - 최대 100개의 동영상이 포함될 수 있습니다
스마트 재생 목록
검색 기준에 따라 런타임에 동적으로 빌드됩니다. 목록에서 비디오가 정렬되는 방식에 해당하는 스마트 재생 목록이 7가지 종류가 있습니다.
  • ACTIVATEDOLDESTTONEWEST
  • ACTIVATEDNEWESTTOOLDEST
  • ALPHABETICAL
  • PLAYSTOTAL
  • PLAYSTRAILINGWEEK
  • STARTDATEOLDESTTONEWEST
  • STARTDATENEWESTTO_OLDEST

동영상 수에 대한 제한은 최대 100개까지 설정할 수 있습니다.

동영상과 마찬가지로 계정에 재생 목록이 많은 경우limitoffset를 사용하여 결과를 페이징 할 수 있습니다.

    https://cms.api.brightcove.com/v1/accounts/account_id/playlists
    
    

재생 목록 객체의 반환된 배열에는 위에서 설명한 유형 중 하나에type해당하는 를 포함하여 재생 목록의 메타데이터가 포함됩니다. 유형이 인EXPLICIT경우 포함 된 비디오의 ID를 포함하는video_ids배열도 있습니다. 유형이 스마트 재생 목록 유형 중 하나이면 다음과 같은 비디오를 검색하는 검색 문자열을 포함하는search속성이 있습니다.

    q=tags:fish,birds
    
    

또한 다음과 같은 방법으로 단일 재생 목록을 검색 할 수 있습니다id .

    https://cms.api.brightcove.com/v1/accounts/account_id/playlists/playlist_id
    
    

재생 목록의 전체 비디오 객체를 검색해야하는 경우 (페이지의 비디오에 대한 정보를 표시하기/videos위해) 해당 URL에 추가하기 만하면됩니다.

    https://cms.api.brightcove.com/v1/accounts/account_id/playlists/playlist_id/videos
    
    

스마트 재생 목록의 경우 요청은 현재 검색 기준과 일치하는 동영상을 반환하지만 변경 될 수 있습니다.

플레이어 작성

Brightcove 플레이어는플레이어 관리 API . API를 사용하면 플레이어를 만들고, 속성을 업데이트하고, 페이지에 포함할 URL, iframe태그 또는 HTML 블록의 형태로 임베드 코드를 가져올 수 있습니다.

계정 당 최대 200명의 플레이어까지 할 수 있지만 사용자가 절대적으로 필요한만큼의 플레이어를 보유하는 것은 일반적으로 덜 혼란 스럽습니다. 당신은 하나의 비디오 또는 재생 목록을 재생하기위한 별도의 플레이어가 있어야합니다, 하지만 그렇지 않으면 그들은 다르게 스타일을 될 것입니다 또는 플러그인을 통해 다른 기능을 추가 할 때 다른 플레이어가 필요합니다.

플레이어를 만들려면 간단히POST플레이어 관리 API에 대한 요청 :

    https://players.api.brightcove.com/v2/accounts/account_id/players
    
    

요청 본문에플레이어 구성 -필요한 유일한 것은name :

    {
    "name": "Single video player for blog posts"
    }
    
    

응답은 플레이어 ID와 여러 형식의 embed 코드를 제공합니다.

    {
    "embed_code": "<iframe src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
    "embed_in_page": "http://players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/in_page.embed",
    "id": "de055fa4-4f09-45af-8531-419c6794ad04",
    "preview_embed_code": "<iframe src='//preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html' allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>",
    "preview_url": "http://preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html",
    "url": "http://players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html"
    }
    
    

전체 플레이어 구성을 얻으려면/players엔드포인트에 요청을 하지만 위의 응답에서 반환된 플레이어 ID를 추가합니다.

    https://players.api.brightcove.com/v2/accounts/account_id/players/de055fa4-4f09-45af-8531-419c6794ad04
    
    

당신은 만들 수 있습니다PATCH플레이어 구성을 업데이트하려면 동일한 엔드 포인트에 요청하십시오.

위의 응답에서 알 수 있습니다, preview_embed_codepreview_url . 신규 플레이어 또는 플레이어 업데이트를 테스트할 수 있도록 새로 생성되거나 업데이트된 플레이어는 기존 플레이어에게 변경 사항을 푸시하기 전에 미리 보기 모드로 설정됩니다. 변경 사항을 프로덕션으로 푸시하려면 다음 요청으로 플레이어를게시해야합니다.

    https://players.api.brightcove.com/v2/accounts/account_id/players/de055fa4-4f09-45af-8531-419c6794ad04/publish
    
    

플레이어 사용자 정의

브라이트코브 플레이어는다음과 같은 표준 웹 기술로 제작되었습니다. HTML, CSS 및 JavaScript. 동일한 기술을 사용하여 플레이어를 사용자 지정할 수 있습니다. 이는 플레이어가 게시 된 페이지에서 수행 할 수 있지만 가장 좋은 방법은 플레이어를 통해 플레이어 자체에 사용자 지정을 추가하는 것입니다. 구성 , a를 통해 플레이어 업데이트PATCH이전 섹션에서 설명한대로 플레이어 관리 API에 요청합니다.

JavaScript를 통해 플레이어에 추가 기능을 추가 할 수도 있습니다. 플러그인 , 그리고 광범위한플레이어 API코드를 플레이어와 통합하는 데 도움이됩니다. 브라이트코브는 광고 활성화, 엔드스크린 사용자 지정, 오버레이 추가와 같은 다양한 기성 플러그인을 제공합니다.

비디오 게시

에서플레이어 만들기 섹션위에서 플레이어 관리 API를 사용하여 플레이어 구성 개체를 가져올 때 반환 된 데이터에는 플레이어를 HTML 페이지에 포함하기위한 iframe 태그와 플레이어를 직접 포함하려는 경우 전체 HTML에 대한 URL이 포함됩니다. 페이지.

어떤 임베딩을 선택하든 플레이어에 콘텐츠를 추가하려면 임베드 코드에 Video Cloud 비디오 ID 또는 재생 목록 ID를 추가해야합니다. iframe 임베드 코드는 다음과 같습니다.

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html'
    allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
    
    

플레이어의 URL에 파라미터를videoId={}video_id추가해야 전체 임베드 코드가 다음과 같이 표시됩니다.

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html?videoId=4483119716001'
    allowfullscreen webkitallowfullscreen mozallowfullscreen></iframe>
    
    

재생 목록 플레이어인 경우 매개 변수를playlistId={playlist_id}대신 사용합니다. 페이지 내장 코드의 수정은 비슷합니다.

플레이어 구성에서 플레이어 크기가 고정되지 않는 한style속성에 너비와 높이를 추가하여 플레이어의 크기를 조정해야 합니다.

    <iframe
    src='//players.brightcove.net/57838016001/de055fa4-4f09-45af-8531-419c6794ad04_default/index.html?videoId=4483119716001'
    allowfullscreen webkitallowfullscreen mozallowfullscreen
    style=width:640px;height:360px;></iframe>
    
    

분석 보고서 가져오기

그만큼Analytics API다양한 분석 보고서를 생성 할 수 있습니다. dimensions . 참조치수 가이드자세한 내용은.

보고서의 날짜 범위, 반환 할 측정 항목을 지정할 수 있으며 데이터를 가져올 수 있습니다. JSON , <code "> csv , 또는xlxs체재

지난달의 기간에 대해서는 상세 정보를 생성 할 수도 있습니다. 참여 보고서동영상의 100 분의 1마다 조회수를 보여줍니다.

API 요약

다음은 Video Cloud와 통합하는 데 유용한 API 요약입니다.

OAuth API
클라이언트 자격 증명 및 액세스 토큰을 생성하여 다른 API에 액세스하는 데 사용됩니다.
미디어 관리
Ingest Profiles API
Video Cloud에 추가 된 비디오에 대해 생성 할 변환을 지정하는 사용자 정의 수집 프로파일을 생성하는 데 사용됩니다.
Dynamic Ingest API
비디오 및 관련 미디어 자산을 Video Cloud에 추가하는 데 사용됩니다.
CMS API
수집을 위한 비디오 객체를 만들고 비디오 및 재생 목록을 관리하는 데 사용됩니다.
Brightcove 플레이어
브라이트코브 플레이어
플레이어에는 런타임에 플레이어와 상호 작용하는 JavaScript API가 포함되어 있습니다.
플레이어 관리 API
플레이어를 생성 및 구성하고 플레이어 임베드 코드를 가져오는 데 사용됩니다.
분석 API
비디오 성능에 대한 분석 보고서를 가져오는 데 사용됩니다.