이 문서에서
관련된 문서
서문
브라이트코브 신디케이션 구성 API는 공개적으로 액세스할 수 있는 API로, Video Cloud 계정의 비디오 카탈로그에서 신디케이션을 생성, 관리하고 동적 피드 (예: MRSS 피드) 를 생성하는 데 사용할 수 있습니다.
또한신디케이션과 관련된 피드를검색하는 데 사용할 수 있는 관련 신디케이션 피드 API도 있습니다.
가용성
신디케이션 API는 Platform API에 액세스 할 수있는 모든 Video Cloud 고객이 사용할 수 있습니다.
API 참조 / 기본 URL / 헤더
구성 API참조에는 사용 가능한 작업, 필드 및 파라미터에 대한 모든 세부 정보가 포함되어 있습니다.
기본 URL은 다음과 같습니다.
https://social.api.brightcove.com/v1
모든 요청은 Authorization 헤더를 통해 인증되어야합니다.
Authorization: Bearer {your_access_token}
액세스 토큰에 대한 정보는 인증에 대한 다음 섹션을 참조하십시오.
요청 본문을 보내는 모든 요청에는Content-Type: application/json
헤더도 포함해야 합니다.
인증
구성 API에 액세스하려면bearer
의 토큰브라이트코브 OAuth 서비스요청에서Authorization
머리글. 또한 다양한 API 메서드를 사용하려면 해당 자격 증명에 대해 다음 작업 중 하나 (액세스 된 메서드에 따라 다름)를 지정해야합니다.
video-cloud/social/mrss/read
video-cloud/social/mrss/write
이러한 작업은 Studio 관리 모듈의 API 인증 섹션을 통해 구성할 수 있습니다 .
원하는 경우 OAuth API를 통해 자격 증명을 만들 수도 있습니다.
신디케이션 리소스
신디케이션 리소스는 신디케이션이 생성되는 방법을 정의하는 객체입니다. 다음은 신디케이션 리소스를 만들기위한 샘플 요청 본문입니다.
{
"name": "80s music videos syndication",
"type": "advanced",
"include_all_content": false,
"include_filter": "tags:mytag",
"title": "80s Music Videos",
"description": "Amateur Tokyo drift!",
"destination_url": "https://mywebsite.com",
"keywords": "80s, rock",
"author": "Rick Astley",
"category": "Music",
"album_art_url": "https://my_album_art.jpg",
"explicit": "no",
"owner_name": "https://my_album_art.jpg",
"owner_email": "rick@astley.com",
"language": "en-us",
"fetch_sources": true,
"fetch_digital_master": false,
"fetch_dynamic_renditions": true,
"sort": "-created_at",
"content_type_header": "application/xml"
}
응답은 일부 읽기 전용 필드를 추가합니다.
{
"id": "7f594cd3-4853-4174-aff3-203c3e99e9c2",
"name": "80s music videos syndication",
"type": "advanced",
"include_all_content": false,
"include_filter": "tags:mytag",
"title": "80s Music Videos",
"description": "Amateur Tokyo drift!",
"syndication_url": "https://social.feeds.brightcove.com/v1/accounts/9999999999999/mrss/accounts/{account_id}/mrss/syndications/7f594cd3-4853-4174-aff3-203c3e99e9c2/feed",
"destination_url": "https://mywebsite.com",
"keywords": "80s, rock",
"author": "Rick Astley",
"category": "Music",
"album_art_url": "https://my_album_art.jpg",
"explicit": "no",
"owner_name": "https://my_album_art.jpg",
"owner_email": "rick@astley.com",
"language": "en-us",
"fetch_sources": true,
"fetch_digital_master": false,
"fetch_dynamic_renditions": true,
"sort": "-created_at",
"content_type_header": "application/xml"
}
필드 | 유형 | 읽기 전용 | 설명 |
---|---|---|---|
id |
문자열 | 예 | 신디케이션이 생성 될 때 생성됨 |
name |
문자열 | 아니요 | 이 신디케이션의 내부 이름-POST 요청에 필요 |
content_type_header |
문자열 | 아니요 | 설정된 경우이 신디케이션의 피드에 대해 피드 서버에서 반환 한 Content-Type 헤더를 재정의합니다. 그렇지 않으면 피드는 기본적으로 신디케이션 유형별 헤더 값으로 설정됩니다. |
include_all_content |
부울 | 아니요 | 참이면 모든 카탈로그 비디오가 이 신디케이션에 포함됩니다. |
include_filter |
문자열 | 아니요 |
포함_모두_콘텐츠가 거짓인 경우 반드시 지정해야 합니다. 값은CMS API를 사용하여 검색 문자열 CMS API 동영상 검색 구문 v2 . 모든 구문 규칙이 적용됩니다. 유일한 차이점은 검색 문자열이
|
type |
문자열 | 아니요 | 생성 될 피드 유형입니다. 범용 유형을 사용하면 업로드 된 피드 템플릿에서 맞춤 피드를 생성 할 수 있습니다. 유효한 값: advanced google , iphone , ipad , mp4 , itunes , roku , source , universal . POST 요청에 필요 |
title |
문자열 | 아니요 | 이 피드의 제목입니다. 이는 해당하는 피드 유형에 대한 < channel> 태그 안에 포함되어 있습니다. |
description |
문자열 | 아니요 | 이 피드에 대한 설명입니다. 이는 해당하는 피드 유형에 대한 < channel> 태그 안에 포함되어 있습니다. |
syndication_url |
문자열 | 예 | 이 신디케이션의 MRSS 피드 URL |
destination_url |
문자열 | 아니요 | 적용 가능한 피드 유형의 <channel> 태그 내에 포함될 URL |
keywords |
문자열 | 아니요 | 쉼표로 구분 된 목록, iTunes 및 (잠재적으로) 범용 피드에만 사용됨 |
author |
문자열 | 아니요 | 단지 아이튠즈 및 (잠재적으로) 범용 피드에 사용 |
owner_name |
문자열 | 아니요 | 단지 아이튠즈 및 (잠재적으로) 범용 피드에 사용 |
language |
문자열 | 아니요 | iTunes 및 (잠재적으로) 유니버설 피드에만 사용됩니다. 다음과 같이 소문자로 된 두 글자 언어 코드입니다. "en" |
owner_email |
문자열 | 아니요 | 단지 아이튠즈 및 (잠재적으로) 범용 피드에 사용 |
category |
문자열 | 아니요 | iTunes 및 (잠재적으로) 유니버설 피드에만 사용됩니다. 하위 범주가있는 범주를 지정하려면 콜론 (:)으로 구분합니다. 예를 들면 다음과 같습니다. "Business:Business News". "category": "Music" |
album_art_url |
문자열 | 아니요 | 이미지의 URL, iTunes 및 (잠재적으로) 범용 피드에만 사용됨 |
fetch_sources |
부울 | 아니요 | 유니버설 템플릿의 경우 비디오 소스 메타데이터를 가져올지 여부 - 템플릿에 이 메타데이터가 필요하지 않은 경우 다음을 지정하여 성능을 개선할 수 있습니다false . 사용 가능한 소스가 없으면 비어 있을 수 있습니다. |
fetch_digital_master |
부울 | 아니요 | 범용 템플릿의 경우 비디오 디지털 마스터 메타데이터를 가져올지 여부 - 템플릿에 이 메타데이터가 필요하지 않은 경우 다음을 지정하여 성능을 개선할 수 있습니다false . 디지털 마스터가 없으면 비어 있을 수 있습니다. |
fetch_dynamic_renditions |
부울 | 아니요 | 범용 템플릿의 경우 비디오 동적 변환 메타 데이터를 가져올 지 여부-템플릿에이 메타 데이터가 필요하지 않은 경우 다음을 지정하여 성능을 향상시킬 수 있습니다. false |
sort |
문자열 | 아니요 | 원하는 피드 결과 반환 순서를 나타내는 CMS 비디오 정렬 지정자입니다. CMS에서 지원하는 값 (예: name reference_id created_at , published_at , updated_at , schedule.starts_at , schedule.ends_at , state plays_total , 및 을 지정할plays_trailing_week 수 있습니다. 내림차순으로 정렬하려면 값 앞에 빼기 (-) 기호를 붙입니다. 즉-created_at , 지정하면 기본적으로 피드가 가장 최근updated_at 날짜를 기준으로 정렬됩니다. |
보다 CMS API 동영상 검색 구문 v2자세한 내용은include_filter
재산.. 모든 검색 구문 규칙이 적용됩니다. 유일한 차이점은 검색 문자열이include_filter
값보다는?query=
매개변수
운영
사용 가능한 작업에 대한 자세한 내용은 API 참조를 참조하세요.
다음 작업이 지원됩니다.
- 신디케이션 만들기
- 신디케이션 업데이트
- 신디케이션 삭제
- 계정에 대한 모든 신디케이션 가져 오기
- 특정 신디케이션 받기
- 범용 신디케이션을위한 템플릿 설정
- 범용 신디케이션을위한 템플릿 가져 오기
- 신디케이션과 관련된 피드 가져 오기
오류 메시지
API 요청이 실패하면 오류 메시지가 반환됩니다. 오류 응답은 다음과 같습니다.
[
{
"error_code" : "Application error code 1",
"message" : "Application error message 1"
}, {
"error_code" : "Application error code 2",
"message" : "Application error message 2"
}
]
신디케이션 만들기
방법: POST
엔드포인트: /accounts/{account_id}/mrss/syndications
샘플 요청 본문:
{
"name": "my mp4 feed",
"type": "mp4"
}
name
및type
필드는 필수라는 점에 유의하십시오. 기타는 선택 사항입니다.
신디케이션 업데이트
방법: PATCH
엔드포인트: /accounts/{account_id}/mrss/syndications/{syndication_id}
샘플 요청 본문:
{
"name": "my new name"
}
PATCH 요청에 대한 요청 본문은 ~ 아니다필드( type
, id
그리고syndication_url
).
신디케이션 삭제
방법: DELETE
엔드포인트: /accounts/{account_id}/mrss/syndications/{syndication_id}
계정에 대한 모든 신디케이션 가져 오기
방법: GET
엔드포인트: /accounts/{account_id}/mrss/syndications
특정 신디케이션 받기
방법: GET
엔드포인트: /accounts/{account_id}/mrss/syndications/{syndication_id}
범용 신디케이션을위한 템플릿 설정
방법: PUT
엔드포인트: /accounts/{account_id}/mrss/syndications/{syndication_id}/template
샘플 요청 본문:
<feed header>My Feed Header</feed header>
위 템플릿은 다음과 유사한 피드를 생성합니다.
<feed header>My Feed Header</feed header>
<item>
<title>Title for Video 1</title>
<video_info>Description for Video 1</video_info>
</item>
<item>
<title>Title for Video 2</title>
<video_info>Description for Video 2</video_info>
</item>
범용 신디케이션을위한 템플릿 가져 오기
방법: GET
엔드포인트: /accounts/{account_id}/mrss/syndications/{syndication_id}/template
신디케이션과 관련된 피드 가져 오기
피드 URL은 신디케이션syndication_url
필드에서 가져오거나 수동으로 생성할 수 있습니다. 신디케이션 피드 API를 사용하여 인증 없이 피드를 검색할수도 있습니다.
방법: GET
엔드포인트: /accounts/{account_id}/mrss/syndications/{syndication_id}/feed
범용 템플릿 언어
범용 신디케이션을 사용하면 카탈로그 데이터를 사용자 정의 템플릿과 병합하여 원하는 모든 종류의 피드를 생성 할 수 있습니다. 지원되는 템플릿 언어는 Liquid입니다 . 기본 신디케이션 유형에 대한 피드는 동일한 유형의 템플릿을 사용하여 생성됩니다. 필요한 경우 사용자 지정템플릿을 만드는데 도움이 되는 샘플로 제공된 템플릿을 볼 수 있습니다.
아래 섹션에서는 사용할 수있는 신디케이션, 자산, 소스 및 디지털 마스터 속성과 편의를 위해 추가 된 Liquid의 확장을 식별합니다.
설명과 함께 모든 Video Cloud 비디오 메타데이터 필드를 보려면 CMS API 비디오 필드 참조를 참조하십시오 .
최상위 속성
신디케이션 필드에서 파생 됨
album_art_url
author
category
description
destination_url
explicit
keywords
name
owner_name
owner_email
subtitle
syndication_id
syndication_url
title
Video Cloud 계정 ID
account_id
VideoCloud 기본 플레이어 페이지 URL 접두사
다음과 같이 사용하십시오.
<media:player url="//default_default/index.html?videoId=">
player_url
피드의 다음 페이지 URL
next_page
카탈로그에서 검색된 비디오 자산 모음 (자세한 내용은 아래 참조)
assets
자산 속성
자산 컬렉션의 리소스는 CMS Get Videos API 메서드에서 반환 된 비디오 리소스에서 파생되며 다음을 포함하되 이에 국한되지 않는 모든 동일한 속성이 지원됩니다.
created_at
description
duration
id
images
images.thumbnail
images.poster
long_description
name
original_filename
published_at
schedule
state
tags
text_tracks
updated_at
자산 리소스는 다음 속성도 지원합니다.
sources
(비디오 소스 모음-소스 속성은 다음 섹션 참조)digital_master
(디지털 마스터가 없으면 비어 있음-디지털 마스터 속성은 아래 참조)best_mp4_source
(최고 품질의 MP4 소스-MP4 소스가없는 경우 비어있을 수 있습니다. 속성은sources
) 에서 반환된 항목과 동일합니다.hls_source
(HLS 소스를 반환-존재하지 않으면 비어 있음)best_dynamic_rendition_quality
(동영상에 대해 동적 변환 메타 데이터를 가져온 경우 프레임 크기가 가장 큰 동영상의 동적 변환의 비디오 품질을 반환합니다. 허용되는 값은 "SD", "HD", "FHD"및 "UHD"입니다.)
소스 속성
자산에 대한 소스 컬렉션의 리소스는 CMS Get Video Sources API 메서드에서 반환 된 비디오 소스 리소스에서 파생됩니다. 다음 속성이 지원됩니다.
app_name
asset_id
codec
container
created_at
duration
encoding_rate
height
size
src
stream_name
type
uploaded_at
width
디지털 마스터 속성
자산의digital_master
리소스는 CMS Get Digital Master Info API 메서드에서 반환된 디지털 마스터 리소스에서 파생됩니다. 다음 속성이 지원됩니다.
duration
encoding_rate
height
size
url
width
동적 변환 속성
자산의dynamic_renditions
리소스는 CMS Get Digital Master Info API 메서드에서 반환된 동적 변환에서 파생됩니다. 다음 속성이 지원됩니다.
rendition_id
frame_height
frame_width
media_type
encoding_rate
created_at
updated_at
size
duration
audio_configuration
language
variant
Liquid 확장
toUTC 필터
대부분의 표준 ISO-8601 날짜 / 시간 문자열 형식을 구문 분석하고 표준 UTC 날짜 / 시간 문자열로 변환하는 toUTC 필터를 지원하도록 Liquid 파서를 확장했습니다. 이 형식은 Liquid의 날짜 필터에 적합하며, 이 필터는 타임스탬프를 원하는 형식의 날짜/시간 문자열로 다시 포맷하는 데 사용할 수 있습니다. 예:
<pubDate>{{asset.published_at | toUTC | date: "%a, %d %b %Y %H:%M:%S %Z"}}</pubDate>
그러면 asset.published_at의 값이 2019-08-09T 13:32:52 .031Z인 경우 다음과 같은 출력이 생성됩니다.
<pubDate>Fri, 09 Aug 2019 09:32:52 +0000</pubDate>
toEpoch 필터
우리가 사용하는 Liquid 파서는 날짜를 Unix epoch 타임 스탬프로 변환하기위한 날짜 필터에서 "% s"토큰을 지원하지 않습니다. 이를 해결하기 위해 유효한 날짜 사양을 epoch 형식으로 변환하는 데 사용할 수있는 toEpoch 사용자 지정 필터가 제공됩니다. 필터는 수학적 필터에 대한 입력에 적합한 에포크 이후 밀리 초를 나타내는 숫자 데이터 값을 반환합니다. 예:
<toEpochMillis>{{"now" | toEpoch }}</toEpochMillis>
<toEpochSeconds>{{"now" | toEpoch | divided_by : 1000 }}</toEpochSeconds>
<thirtyDaysAgo>{{'now' | toEpoch | minus:2592000000 | fromEpoch }}</thirtyDaysAgo>
다음과 같은 출력을 생성합니다.
<toEpochMillis>1580917253024</toEpochMillis>
<toEpochSeconds>1580917253</toEpochSeconds>
<thirtyDaysAgo>2020-01-06T15:40:53.055Z</thirtyDaysAgo>
fromEpoch 필터
FromEpoch 필터는 에포크 이후 밀리초를 나타내는 숫자를 UTC 날짜 문자열로 변환합니다. 필터는 또한 epoch 값 자릿수를 포함하는 문자열을 입력으로 받아들입니다. 필요한 경우 다시 형식화하기 위해 출력을 날짜 필터로 전달할 수 있습니다.
예:
<fromEpochMillis>{{"now" | toEpoch | fromEpoch }}</fromEpochMillis>
<thirtyDaysAgoAltFormat>{{1580917253024 | fromEpoch | date:"%Y-%m-%d" }}</thirtyDaysAgo>
다음과 같은 출력을 생성합니다.
<fromEpochMillis>2020-02-05T16:09:37.809Z</fromEpochMillis>
<thirtyDaysAgoAltFormat>2020-02-05</thirtyDaysAgo>