레거시CMS 연동을 위한 비디오 클라우드의 API 서비스

비디오 클라우드는 Studio라고하는 관리 시스템을 제공하고 있으며  오랜기간 브라이트코브가 경험한 사용자 요구사항이 반영되어 있어 효율적으로 비디오 콘텐츠를 관리 하실수 있도록 되어 있습니다.

그러나 자체적인 CMS시스템을 보유하고 있는 사용자의 경우는 통합으로 좀더 다양한 고객사의 미디어 콘텐츠(텍스트, 블로그, 이미지..)를 관리 하는 경우에 비디오 클라우드의 여러가지 기능을 자체적으로 CMS에 구현 할수 있습니다. 

자체 CMS와 비디오 클라우드의 연동 구조가 발생하는 경우는 보통 아래의 경우 입니다. 

  1. Video ingestion : 비디오의 업로드와 메타데이터 입력 및 비디오 트랜스코딩 절차
  2. Video 데이터 조회 및 수정,삭제 : 비디오 타이틀의 메타데이터를 조회 /수정/삭제 하는 경우입니다.
  3. Video 퍼블리싱 관리 : 고객 CMS에서 비디오의 서비스 정책을 관리 하기 위한 경우
  4. Analytics 서비스 : 시청 통계 분석 데이터를 조회 해서 자체 보고서 시스템을 구성하는 경우
  5. 비디오 스트리밍 및 다운로드 서비스 

 

1.OAuth 2를 사용한 보안 인증절차 

브라이트코브의 모든 api는 OAuth2를 통한 보안 인증을 사용합니다. 

API를 사용할 App을 등록하고 앱별로 사용할 API의 종류와 권한이 지정된 Client id, client credential을 발급받아 사용하며 발급받은 Credential을 사용해서 실제로 API호출시 다시 Access token을 발급받는 2중 보안 구조 입니다.

Access token은 300초가 지나면 무효화되며 실제 사용할때는 고객이 300초를 측정하기에 무리가 있어 실제 사용할때마다 Access token을 새로 발급 받아서 사용합니다.

인증절차는 API를 통해 설정가능하며, Studio에서도 설정가능합니다.

2. Video ingestion 

비디오 업로드 방식은 Pull 방식과 Push 방식 두가지로 나뉩니다. Pull 방식이 기본 방식 이며 모든 API호출은 Access token을 통해 이루어 집니다. 

  • Pull 방식 : 기본방식이며, 비디오를 업로드 하는것이 아니라 클라우드가 접근 가능한 비디오의 경로를 API로 알려주면 다운로드 받아가는 방식 입니다. 업로드 절차를 구현할 필요가 없습니다. 
  • Push 방식 : Pull 방식이 불가한 경우 임시 S3로 비디오를 업로드 하고 다시 Pull로 가져가는 방식입니다.

Pull 방식
Pull방식은 클라우드에서 지정된 원본 파일을 가져가는 방식이므로 업로드를 구현하지 않습니다. 대신 외부에서 액세스 가능한 마스터 파일의 url이 있어야 합니다. (http, https, s3)
비디오 업로드 (Ingestion)의 API실행은 아래 2개 단계로 나뉩니다.

  • CMS api를 통한 비디오 생성 및 id발급
  • Dynamic Ingest api를 통한 실제 비디오의 트랜스코딩

Push 방식
Pull 방식과 거의 유사하며, 중간에 임시 업로드 공간인 S3 공간을 받아서 업로드 하는과정이 하나 추가 됩니다. 
비디오 업로드 (Ingestion)의 경우는 아래 3개 단계로 나뉩니다.

  • CMS api를 통한 비디오 생성 및 id발급
  • Amazon S3 에 임시 스토리지를 할당 받아 비디오를 업로드 합니다.
  • 위 비디오 id 와 s3 url로 Dynamic Ingest api를 통한 실제 비디오의 트랜스코딩


 

위 사례는 단순히 비디오를 업로드하고 관련 메타 데이터를 입력하는 Ingestion 절차에 대해서만 예를 들었습니다만 CMS API를 사용해서 고객의 레거시 관리 시스템에서 직접 비디오를 조회,변경,삭제등의 업무를 모두 구현할수 있습니다. 

더 자세한 내용은 CMS API 문서(https://support.brightcove.com/search?search=CMS+API)를 참고하시기 바랍니다.