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

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

사용자 기능

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

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

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

인증

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

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

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

클라이언트 자격 증명 생성은Video Cloud Studio또는 를 통해 한 번만 수행할 수 있는OAuth API작업입니다. 어떤 방법을 사용하든client_id a와client_secret가 반환되며 액세스 토큰을 요청하려면 이를 저장해야 합니다.

액세스 토큰 만들기

임시 액세스 토큰은 를 사용하여 생성됩니다OAuth API . 그만큼client_id그리고client_secret BASE64로 인코딩되고 다음으로 전달되어야 합니다. Basic인증 문자열.

access_token반환된 내용은 API 호출과 함께 Authorization 헤더에 다시 전달됩니다.

    Authorization: Bearer your_access_token
    
    

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

비디오 추가

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

비디오 객체 추가Video Cloud

첫 번째 단계는Video Cloud만들어서 시스템POST에 요청CMS API :

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

요청 본문에는 기본 동영상 속성이 포함됩니다. JSON개체 - 최소한 비디오name , 하지만 다음과 같은 추가 메타데이터를 포함할 수도 있습니다. description그리고tags :

    {
    "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":"https://support.brightcove.com/test-assets/videos/Great_Blue_Heron.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

하지만 필요한 경우 Studio를Ingest Profiles API사용하거나Video Cloud Studio를 사용하여 추가 사용자 지정 인제스트 프로필을 만들 수있습니다.

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

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

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

자세한 내용은이미지 및Dynamic Ingest API를 참조하십시오.

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

당신은 또한 사용할 수 있습니다Dynamic Ingest API텍스트 트랙을 추가하려면웹VTT처리 시점 또는 이후에 파일을 동영상으로 변환합니다. 텍스트 트랙은 비디오에캡션이나챕터를추가하는 데 사용됩니다.

    {
    "master":{
    "url":"https://some.site.com/videos/mp4/Bird_Woodpecker.mp4"
    },
    "profile":"multi-platform-extended-static",
    "capture-images": false,
    "poster": {
    "url": "https://some.site.com/images/for_video/titmouse-poster.png",
    "width": 640,
    "height": 360
    },
    "thumbnail": {
    "url": "https://some.site.com/images/for_video/titmouse-thumbnail.png",
    "width": 160,
    "height": 90
    },
    "text_tracks": [
    {
    "url": "https://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 참고로 다음 두 가지 카테고리에서 8가지 유형의 플레이리스트를Video Cloud지원합니다.

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

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

동영상과 마찬가지로 계정에 재생목록이 많은 경우 결과를 사용하여limit모든 재생목록을 검색할 수 있으며 결과를offset페이지로 넘길 수 있습니다.

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

반환된 재생 목록 객체 배열에는 위에서 설명한 유형 중 하나에type해당하는 것을 포함하여 재생 목록의 메타데이터가 포함됩니다. 유형이 다음과 같은 경우EXPLICIT , 또한 있을 것입니다video_ids포함된 동영상의 ID를 포함하는 배열입니다. 유형이 스마트 재생목록 유형 중 하나인 경우 다음과 같이 동영상을 검색하는 검색 문자열을 포함하는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
    
    

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

플레이어 작성

브라이트코브 플레이어는 를 통해 만들 수Player Management API있습니다. API를 사용하면 플레이어를 생성하고, 프로퍼티를 업데이트하고, URL, iframe태그 또는 HTML 블록 형태로 임베드 코드를 가져와 페이지에 임베드할 수 있습니다.

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

플레이어를 생성하려면 다음 주소로POST요청하면 됩니다Player Management 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": "https://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": "https://preview-players.brightcove.net/v1/accounts/57838016001/players/de055fa4-4f09-45af-8531-419c6794ad04/preview/embeds/default/master/index.html",
    "url": "https://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_code및 를 확인할 수preview_url있습니다. 신규 플레이어 또는 플레이어 업데이트를 테스트할 수 있도록 새로 생성되거나 업데이트된 플레이어는 기존 플레이어에게 변경 사항을 푸시하기 전에 미리 보기 모드로 설정됩니다. 변경 사항을 프로덕션 환경에 푸시하려면 다음 요청과 함께 플레이어를게시해야 합니다.

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

플레이어 사용자 정의

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

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

비디오 게시

에서플레이어 만들기 섹션위에서 우리는 다음을 사용하여 플레이어 구성 개체를 가져올 때Player Management 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 , csv , 또는xlxs체재

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

API 요약

다음은 통합에 유용한 API의 요약입니다Video Cloud .

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