CMS/재생 API: 동영상 검색 v1

이 항목에서는 CMS API를 사용하여 계정에서 동영상을 검색하는 방법을 배우게 됩니다. 는 Video Cloud 라이브러리에서 비디오를 검색하는 프로그래밍 방식을CMS API제공합니다. 이 항목에서는 검색 구문에 대한 세부 정보를 제공합니다. 참고: 이것은 원래 검색 구문입니다. 더 간단한비디오 검색 구문 v2를 사용하는 것이 좋습니다 . Playback API의 경우 이 버전을 사용해야 합니다.

서문

이 항목에서는 다음을 수행하는 방법에 대해 알아 봅니다.

  • q매개 변수를 사용하여 기본 검색 생성 및 제한
  • 검색 결과 정렬
  • 필수 및 제외 용어를 사용하여 검색
  • 정확한 용어 및 여러 단어를 일치 시키려면 인용 검색을 사용하십시오.
  • 사용자 정의 필드에서 검색
  • 특정 날짜 및 범위로 날짜 필드 검색
  • 검색 기준 결합

API 사용

검색 기능은CMS API또는 Playback API와 함께 사용할 수 있습니다.

CMS API

CMS API로 검색을 사용하는 경우 다음이 적용됩니다.

  • 모든 요청 (검색 포함)에는 액세스 토큰이 포함 된 인증 헤더가 필요합니다. 클라이언트 자격 증명을 얻고 이를 사용하여 액세스 토큰을 검색하는 방법에 대한 자세한 내용은 Brightcove OAuth 개요를 참조하십시오 .
  • 검색에서 반환되는 최대 동영상 수에는 제한이 없지만 속도 제한이 적용됩니다.
  • 검색 결과에는 재생 가능 여부 및 / 또는 지역 제한 여부에 관계없이 계정의 모든 동영상이 포함됩니다.

API 요청/응답에 대한 자세한 내용은 다음을 참조하십시오. 동영상 받기의 섹션 CMS API 참조 .

재생 API

Playback API로 검색을 사용하는 경우 다음이 적용됩니다.

  • Playback API를 사용한 검색 요청에는검색이 가능한 정책 키가 필요합니다 .
  • 검색에서 반환되는 최대 동영상 수에는제한이있습니다.
  • 검색 결과에는 재생 가능한 동영상만 반환되며, state:inactive재생이 가능한 동영상은 무시됩니다.
  • 검색은 결과에서 지역 제한 비디오를 생략하는 것과 같은 재생 정책 제한을 적용합니다.
  • 결과 캐싱은 더 높은 요청 비율과 더 빠른 응답을 제공하며 비율 제한이 없습니다.

API 요청/응답에 대한 자세한 내용은 다음을 참조하세요. 동영상 받기의 섹션재생 API 참조 .

미디어 라이브러리에서 용어를 검색하려면q매개 변수를 사용하십시오.

      q={search terms}

지정하는 검색어는 공백으로 구분 된 URL로 인코딩 된 검색어 목록이어야합니다.

검색은스테밍을 지원합니다 . 형태소 분석은 단어를 어근과 같은 어근에서 유래 한 다른 단어로 매핑하는 것입니다. 예를 들어 "run"에 대한 검색은 지정된 필드에 "running"또는 "ran"이있는 동영상과 일치해야합니다. 그것은 것 ~ 아니다 "rune"에는 루트로 "run"이 없기 때문에 "rune"과 일치합니다.

검색어에 한정어를 제공하지 않는 경우 (예q=bird :) 요청은 다음 필드에서 해당 값을 검색합니다.

  • id [1-1]
  • name
  • description
  • long_description
  • text (실제 메타데이터 필드는 아니지만, namedescription , 및long_description - 예를 들어 검색하는 데 사용할 수 있는 유사 필드q=text:bird )
  • tags
  • reference_id
  • custom_fields (모든 사용자 지정 필드를 검색합니다.)
  • custom_field_name (이름이 지정된 특정 사용자 지정 필드를 검색합니다.) [1-2]

참고 사항

[1-1] 참고: 일관성을 위해 ID로 검색하는 기능이 포함되어 있지만, 를q=id:12345검색하면 요청과 정확히 동일한 결과가 반환됩니다. https://cms.api.brightcove.com/v1/accounts/{account_id}/videos/12345
[1-2] 목록 형식의 사용자 지정 필드가 있고 여러 값 중 하나를 가진 동영상을 반환하려는경우 다음과 같이 할 수 있습니다.

라는 필드가 있다고 가정해 보겠습니다. color다음 값을 취할 수 있습니다. red , green , yellow , 또는blue . 해당 필드가 값으로 설정되어green있거나blue다음과 같은 동영상을 찾으려고 합니다.

      q=color:green%20color:blue

예: 이 요청은 위에 나열된 필드 중 하나bird이상에 해당하는 값을 가진 비디오를 반환합니다.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=bird 

특정 속성으로 검색 제한

다음과 같이 검색어에 대한 한정자를 제공할 때q=name:bird , 요청은 비디오를 검색합니다name값에 대한 필드bird .

예: 이 요청은 다음 값을 가진 동영상을 반환합니다. wildlife에서name필드.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=name:wildlife

지원되는 검색 필드:

지원되는 검색 필드
필드 법적 가치
name 스트링 또는 인용된 스트링
텍스트 문자열 또는 따옴표로 묶인 문자열 ( namedescription , 및 검색long_description )
tags 문자열 또는 따옴표로 묶인 문자열 (여러 태그는 쉼표로 구분해야 함)
custom_fields 문자열 또는 따옴표로 묶인 문자열 (모든 사용자 지정 필드를 검색합니다. 특정 사용자 지정 필드내부이름을 사용할 수도 있음) [2-1]
reference_id 문자열 또는 따옴표로 묶인 문자열
state ACTIVE , INACTIVEPENDING , DELETED[2-3]
updated_at 날짜 범위
created_at 날짜 범위
schedule.starts_at 날짜 범위
schedule.ends_at 날짜 범위
published_at 날짜 범위
complete[2-2] true또는false

참고

  • [2-1]그것은 ~ 아니다값이 없거나 값이null , 필드에 값이 지정되지 않으면 비디오 메타데이터에 전혀 포함되지 않기 때문입니다.
  • [2-2] 새 동영상을만들면complete속성이 자동으로 로 설정됩니다false . 비디오에 대한 렌디션이 하나 있으면 해당complete속성은 자동으로 로 설정됩니다true .
  • [2-3] 삭제된 동영상 검색에는 다음과 같은 제한 사항이 적용됩니다.
    • 삭제된 동영상 검색은 CMS API를사용해서만사용할 수 있습니다. 재생 API는 삭제된 동영상을반환하지 않습니다.
    • 이전 10일 (현재 시간에서 10일을 뺀 시간) 동안 삭제된동영상만 반환됩니다.

검색 결과 정렬

sort파라미터를 사용하면 비디오에 대한 get 요청의 결과를 정렬할 수 있습니다. 다음을 기준으로 정렬 할 수 있습니다.

  • reference_id
  • name
  • created_at
  • published_at
  • updated_at
  • schedule.starts_at
  • schedule.ends_at
  • state
  • plays_total
  • plays_trailing_week

를 사용하여 결과를 명시적으로 정렬하지 않는 경우sort , 결과는 Term Frequency/Inverse Document Frequency로 알려진 알고리즘에 따라 정렬됩니다. TF-IDF . 보다여기자세한 내용은.

예를 들어 검색어를coastal,city검색했는데 계정에 동영상 메타데이터 어딘가에 해당 용어 ( name , descriptiontags , 등) 가 있고 정렬 기준과 일치하는 동영상이 120개 있다고 가정해 보겠습니다.결과 (예: 모두schedule_starts_at날짜/시간이 같음) 비디오가 나타나는 결과의 높이는 하나 또는 두 용어가 메타 데이터에 나타나는 빈도에 따라 결정되며 전체적으로 비디오 라이브러리에서 가장 자주 나타나는 용어에 더 큰 가중치가 부여됩니다.

필수/제외된 용어

검색 용어를 필수 (반환된 비디오가 일치해야 함) 또는 제외됨(반환된 비디오가 일치해서는 안 됨)으로 표시할 수 있습니다. 이는 용어 바로 앞에 있는 URI 인코딩+ (%2B)-또는 부호로 제어됩니다.

인코딩해야 합니다. + ~처럼%2B필요한 용어를 나타내기 위해 사용할 때.

필수 / 제외 용어
URL로 인코딩됨 의미
+foo %2Bfoo 동영상에는 다음 용어가 포함되어야 합니다. foo에서name , description , long_description , tags , reference_id또는custom_fields
+custom_fields:foo %2Bcustom_fields:foo 비디오에는 일부 사용자 지정 필드의 값이foo포함되어야 합니다.
+foo -bar %2Bfoo%20-bar 동영상에는 다음 용어가 포함되어야 합니다. foo하지만 용어를 포함해서는 안 됩니다. bar에서name , description , long_description , tags , reference_id또는custom_fields
+name:foo -name:bar %2Bname:foo%20-name:bar 비디오에는 용어가 포함되어야foo하지만 해당 용어는bar포함해서는 안 됩니다. name

예: 이 요청은 값이 다음인 동영상을 반환합니다. sea그러나 다음 값이 없습니다. lake에서tags필드.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=%2Btags:sea%20-tags:lake

보다검색 기준 결합필수/제외 구문을 사용하여 여러 검색어에 AND 논리를 적용하는 방법을 보려면 아래를 참조하세요.

다른 매개 변수와 결합

검색(사용q매개변수)는 다음과 같은 다른 매개변수와 결합될 수 있습니다. sort , limit그리고offset . 모든 URL 매개변수는 로 구분됩니다& . 매개 변수 순서는 중요하지 않습니다.

예: 이 요청은 다음 값을 가져야 하는 동영상을 반환합니다. bar에서tag필드가 있을 수 있습니다. name포함하는 값foo

      .../videos?q=name:foo%20%2Btags:bar&sort=updated_at

예: 이 요청은 위와 동일한 동영상을 반환하지만updated_at필드별로 결과를 추가로 정렬한 다음 결과를 동영상 10개로 제한합니다.

      .../videos?sort=updated_at&q=name:foo%20%2Btags:bar&limit=10

인용 된 검색어

기본적으로 검색은 검색 용어와 유사한 단어만 찾습니다. 여러 단어를 일치시키려면 용어를 따옴표로 묶으십시오.

대부분의 브라우저와 기타 에이전트는 리터럴 따옴표 ( "..." ) 를 올바르게 처리하지만 인용된 검색어가 올바른 결과를 반환하지 않는 것 같으면 따옴표를%22 ( %22...%22 ) 로 바꿔보세요.

            
              q="foo" or q=%22foo%22
              q="foo%20bar" or q=%22foo%20bar%22
            
          

특정 필드를 검색 할 때도 작동합니다.

            
              q=name:"home"
              q=name:"home%20run"
            
          

여러 단어

예: 이 요청은 값이 다음 중 하나인 동영상을 반환합니다. sea또는mammal에서tags필드.

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

하지만 다음 요청은 태그가 있는 동영상만 반환합니다sea,mammal .

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

사용자 정의 필드

비디오에 대해 정의한 사용자 정의 필드에서 검색 할 수 있습니다.

      q=my_field:foo
      q=my_field:"foo"

참고: 모든 사용자 지정 필드 값은 문자열로 처리됩니다. 예를 들어 값을 취할 수 있는 목록 유형 사용자 정의 필드가 있는 경우true또는false , 검색은 부울 값이 아닌 해당 문자열을 찾습니다(많은 프로그래밍 언어에서1그리고0와 상호 교환하여 사용할 수 있습니다. true그리고false부울 값으로, 하지만 검색q=my_boolean_field:1다음 동영상은 반환하지 않습니다. my_boolean_field로 설정true ).

예: 이 요청은 다음 값을 가진 동영상을 반환합니다. 동물에서subject사용자 정의 필드.

      https://cms.api.brightcove.com/v1/accounts/921483702001/videos?q=subject:animal

기간

날짜 필드에서 검색하는 경우 두 개의 마침표를 사용하여 시작 날짜와 종료 날짜 ( q=updated_at:2018-01-01..2018-02-01 ) 를 구분하여 특정 날짜 또는 날짜 범위를 지정할 수 있습니다.

이렇게 하면 2012년 8월 1일부터 2012년 10월 8일 사이의updated_at값을 가진 모든 비디오가 검색됩니다. 여기에서는 각 날짜를 UTC 형식으로 지정합니다.

      q=updated_at:2012-08-01T00:00:00Z..2012-10-08T23:59:59Z

시간 구성 요소를 삭제하여이 검색을 단순화 할 수 있습니다. 다음은 위의 검색과 동일합니다.

      q=updated_at:2012-08-01..2012-10-08

지원되는 날짜 형식

지원되는 날짜 형식에는 UTC 및 상대가 포함됩니다.

날짜 형식 예
형식 (URI 인코딩 형식) 의미
2015-08-01T 06:15:00 Z 이것은 UTC 시간을 나타냅니다.
2012-08-01 이것은 UTC로 하루 자정을 나타냅니다. 이 예제는 2012-08-01T 00:00:00 Z와 동일합니다.
-1d 현재 시간에서 1일을 뺀 값입니다.( 아래 참조 )

상대 날짜

기준 날짜의 경우 방향 ( +또는- ), 숫자, 지속 시간을 지원합니다. 상대 날짜는 항상 현재 시간에서 측정됩니다. 법적 기간은 분, 시간, 일입니다.

예:

상대 날짜 샘플
날짜에 대한 q 매개 변수 의미
q=업데이트 날짜: -1일.. 지금 1 일 전부터 오늘까지 업데이트 된 동영상
q=작성일: -2일 2 일 전 동영상 추가됨
q=업데이트됨: -4시간.. 지금 4 시간 전에서 현재 시간으로 업데이트 된 동영상
q=생성시간: -60분.. 60 분 전부터 현재 시간까지 추가 된 동영상
q=created_at:2016-01-01.. -1d 2015년 1월 1일부터 하루 전까지 제작된 동영상
q=업데이트_at: -14일.. 지금 지난 2주 동안의 동영상

개설 종료 범위

주어진 시간까지 모든 날짜를 일치시키거나 주어진 시간 이후의 모든 날짜를 일치시키려면 범위의 한쪽 끝을 남겨 둡니다.

예: 지난 2 일 동안 수정 된 모든 동영상 검색

      q=updated_at:-2days..
      
      

예: 2013년 8월 11일 이후에 수정된 모든 동영상을 검색하세요.

      q=updated_at:2013-08-11T00:00:00Z..
      
      

NOW스케줄 날짜 연산자

schedule.starts_at및 의schedule.ends_at경우 날짜NOW값으로 사용할 수 있습니다. 현재 날짜-시간을 기반으로 동적 쿼리를 설정할 수있는 편리한 연산자입니다. 몇 가지 예를 들면 다음과 같습니다.

일정 데이터 예
매개 변수에서 /까지 URI 인코딩 의미
?q=schedule.starts_at:.. 지금 ?q=schedule.starts_at:.. 지금 starts_at는 시작부터이 순간까지입니다.
?Q=일정. 시작일:지금 ?Q=일정. 시작일:지금 starts_at는이 순간부터
?Q=Schedule.ends_at:지금.. ?Q=Schedule.ends_at:지금.. ends_at는이 순간부터 시간의 끝까지입니다.
?q=+스케줄.시작_시간:.. NOW+스케줄.종료_시간:지금.. ?q=%2bSchedule.시작_시간:.. 현재% 20% 2bSchedule.종료일:지금.. 이 순간 이전에 starts_at 및이 순간 이후에 ends_at (동영상이 현재 일정에 있음)

검색 기준 결합

복잡한 검색을위한 기준을 결합 할 수 있습니다.

예: 이 요청은name의 가치잡담 , 2010년 8월 1일에서 2010년 10월 8일 사이에 업데이트되었습니다. 그런 다음 응답 데이터를updated_at날짜별로 내림차순으로 정렬합니다.

      q=%2Bname:gossip%20%2Bupdated_at:2010-08-01..2010-10-08&sort=-updated_at

용어 결합

사용필수/제외 구문동영상을 반환하려면모두지정된 용어 중.

예를 들어, 다음을 검색하는 경우

      q=name:foo +tags:bar (URI-encoded: q=name:foo%20%2Btags:bar)

응답에는 태그가 'bar'이고 이름에도 포함될 수foo있는 동영상이 포함됩니다. 이름과 태그가foo 'bar'인 동영상만 반환하려면 다음을 검색해야 합니다.

      (unencoded) q=+name:foo +tags:bar (URI-encoded) q=%2Bname:foo%20%2Btags:bar

마찬가지로foo이름에 'bar' 태그가 없는 동영상만 반환하려는 경우 다음을 검색하면 됩니다.

      (unencoded) q=+name:foo -tags:bar (encoded) q=%2Bname:foo%20-tags:bar

견본: 용어 결합
인코딩되지 않은 검색 문자열 URI로 인코딩 된 검색 문자열 의미
q=foo bar q=foo%20bar 반환 된 항목에는 "foo"또는 "bar"가 있습니다.
q=foo +bar q=foo%20%2Bbar 반환 된 항목에는 "bar"가 있어야하며 "foo"가있을 수 있습니다.
q=+foo bar q =%2Bfoo%20bar 반환 된 항목에는 "foo"가 있어야하며 "bar"가있을 수 있습니다.
q=+foo +bar q=%2Bfoo%20%2Bbar 반환 된 항목에는 "foo"및 "bar"가 있어야합니다.
q=-foo +bar q=-foo%20%2Bbar 반환 된 항목에는 "bar"가 있어야하고 "foo"가 없어야합니다.
여러 태그 검색
q=tags:bee,bop q=tags:bee,bop 태그가 “bee”또는 “bop”인 비디오를 반환합니다.
q=tags:bee tags:bop q=tags:bee%20tags:bop 태그가 “bee”또는 “bop”인 비디오를 반환합니다.
q=+tags:bee tags:bop q=%2Btags:bee%20tags:bop 반환 된 모든 동영상에는 "bee"태그가 있어야합니다. 태그 "bop"도있을 수 있습니다.
q=+tags:bee +tags:bop q=%2Btags:bee%20%2Btags:bop 반환 된 모든 동영상에는 "bee"태그와 "bop"태그가 있습니다.

특정 동영상 검색

검색을 특정 동영상 세트로 제한하려면id다음과 같이 검색하면 됩니다.

예: 이 요청은123456789 ID가 있는 동영상을 반환합니다987654321 . 48376387

      q=id:123456789%20id:987654321%20id:48376387

주별 검색

다음 매개 변수를 사용하여 비디오 상태별로 검색을 수행하거나 필터링 할 수 있습니다.

      q=state:ACTIVE( | INACTIVE | PENDING | DELETED)[3]

참고

  • [3] 삭제된 동영상검색은 지난 10일 (현재 시간에서 10일을 뺀 시간) 동안 삭제된 동영상에만 사용할 수 있으며CMS API (Playback API 제외) 를 통해서만 사용할 수 있습니다.

형태소 분석

형태소 분석이 지원되지만 ~ 아니다부분 단어 검색. 예를 들어, q=name:ban이름이 " Parking Ban Announced " 또는 " Parking to be Banned " 또는 " City Banning Parking " 하지만 " Bank Holiday " 또는 " Bandit Captured ".

공백 / 특수 문자

CMS API일반적으로 검색 문자열에서 특수 문자를 처리하지만 몇 가지 예외가 있습니다.

  • 공백은 허용되지 않으며 로 인코딩해야 합니다%20 . (인코딩되지 않은+기호는 공백을 대체할 수도 있지만 이 경우 검색어에 혼동을 줄+수 있으므로 용어가 필요함을 나타낼 수도 있습니다. ( 필수/제외 구문 참조 )

    예를 들어 이름에서 '내가 가장 좋아하는 동영상'을 검색하려면:

    q=name:"my%20favorite%20video"

  • 리터럴을 검색하려면+서명하거나 사용하려면+반환된 동영상이 ~ 해야 하다용어를 포함하려면 다음을 인코딩해야 합니다. + ~처럼%2B :

    이름"two+two"필드에 포함해야 하는 동영상 검색

    q=name:two%2Btwo

    이름"heron"필드에 포함해야 하는 동영상 검색

    q=%2Bname:heron

  • 일부 에이전트는 리터럴 따옴표를 올바르게 처리하지 못할 수 있으므로 다음과"foo"같이 인코딩하는 것이 더 안전합니다. %22foo%22

일회성 요청의 경우 Brightcove Learning의문자열 인코더를사용하여 검색 문자열을 인코딩할 수 있습니다. 앱의 경우 사용중인 언어로 URI 인코딩 기능을 찾아야합니다.

검색어 클립

클립은 다른 비디오의 섹션에서 만든 비디오입니다. 클립은브라이트코브 소셜에서 생성할 수있으며 향후 다른 방법도 사용할 수 있게 될 예정입니다. 계정에서 생성 된 클립을 찾는 데 사용할 수있는 몇 가지 특수 검색어가 있습니다.

  • q=%2Bis_clip:true - 클립만 반환합니다.
  • q=%2Bis_clip:false -비 클립 만 반환
  • q=%2Bclip_source_video_id:video_id -지정된 비디오에서 생성 된 클립을 반환합니다.

무시된 단어

특정 단어는 너무 일반적이어서 실제로 검색하는 것과 관련이없는 많은 결과를 반환 할 가능성이 있기 때문에 검색 문자열에서 무시됩니다. 다음은 검색에서 무시되는 단어 목록입니다.

“a”, “a”, “와”, “있다”, “로”, “에서”, “수”, “하지만”, “에”, “경우”, “에”, “이다”, “아니오”, “하지”, “의”, “on”, “또는”, “그런”, “그”, “그”, “그”, “그들의”, “그때”, “거기”, “이들”, “그들”, “이”, “에”, “이었다”, “의지”, “와”

알려진 문제

  • 중복 결과:경우에 따라 검색 결과의 일부 항목이 두 번 이상 나타날 수 있습니다.

    해결 방법: 검색 결과가 중복되지 않도록하려면 항상 검색 요청에sort매개 변수를 사용하십시오.