빠른 시작: Bing Video Search 클라이언트 라이브러리 사용

경고

2020년 10월 30일에 Bing Search API가 Azure AI 서비스에서 Bing Search Services로 이동되었습니다. 이 문서는 참조용으로만 제공됩니다. 업데이트된 문서는 Bing search API 문서를 참조하세요. Bing 검색을 위한 새 Azure 리소스 만들기에 대한 지침은 Azure Marketplace를 통해 Bing Search 리소스 만들기를 참조하세요.

C#용 Bing Video Search 클라이언트 라이브러리를 사용하여 뉴스 검색을 시작하려면 이 빠른 시작을 사용합니다. Bing Video Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플에 대한 소스 코드는 추가 주석 및 기능과 함께 GitHub에서 찾을 수 있습니다.

사전 요구 사항

Bing Video Search 클라이언트 라이브러리를 프로젝트에 추가하려면 Visual Studio의 솔루션 탐색기에서 NuGet 패키지 관리를 선택합니다. Microsoft.Azure.CognitiveServices.Search.VideoSearch 패키지를 추가합니다.

[NuGet Video Search SDK 패키지]를 설치하면 다음 종속성도 설치됩니다.

  • Microsoft.Rest.ClientRuntime
  • Microsoft.Rest.ClientRuntime.Azure
  • Newtonsoft.Json

Azure 리소스 만들기

다음 Azure 리소스 중 하나를 만들어 Bing Video Search API 사용을 시작합니다.

Bing Search v7 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.

다중 서비스 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.

프로젝트 만들기 및 초기화

  1. Visual Studio에서 새 C# 콘솔 솔루션을 만듭니다. 그런 다음, 주 코드 파일에 다음을 추가합니다.

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using Microsoft.Azure.CognitiveServices.Search.VideoSearch;
    using Microsoft.Azure.CognitiveServices.Search.VideoSearch.Models;
    
  2. 구독 키를 사용하여 새 ApiKeyServiceClientCredentials 개체를 만들고 생성자를 호출하여 클라이언트를 인스턴스화합니다.

    var client = new VideoSearchAPI(new ApiKeyServiceClientCredentials("YOUR-ACCESS-KEY"));
    

검색 요청 보내기 및 결과 처리

  1. 클라이언트를 사용하여 검색 요청을 보냅니다. 검색 쿼리에 대한 “SwiftKey”를 사용합니다.

    var videoResults = client.Videos.SearchAsync(query: "SwiftKey").Result;
    
  2. 모든 결과가 반환되면 videoResults.Value[0]를 사용하여 첫 번째 결과를 가져옵니다. 그런 다음, 비디오의 ID, 제목 및 URL을 출력합니다.

    if (videoResults.Value.Count > 0)
    {
        var firstVideoResult = videoResults.Value[0];
    
        Console.WriteLine($"\r\nVideo result count: {videoResults.Value.Count}");
        Console.WriteLine($"First video id: {firstVideoResult.VideoId}");
        Console.WriteLine($"First video name: {firstVideoResult.Name}");
        Console.WriteLine($"First video url: {firstVideoResult.ContentUrl}");
    }
    else
    {
        Console.WriteLine("Couldn't find video results!");
    }
    

다음 단계

참고 항목

Java용 Bing Video Search 클라이언트 라이브러리를 사용하여 뉴스 검색을 시작하려면 이 빠른 시작을 사용합니다. Bing Video Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플에 대한 소스 코드는 추가 주석 및 기능과 함께 GitHub에서 찾을 수 있습니다.

사전 요구 사항

Azure 리소스 만들기

다음 Azure 리소스 중 하나를 만들어 Bing Video Search API 사용을 시작합니다.

Bing Search v7 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.

다중 서비스 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.

Maven, Gradle 또는 기타 종속성 관리 시스템을 사용하여 Bing Video Search 클라이언트 라이브러리 종속성을 설치합니다. Maven POM 파일에는 다음 선언이 필요합니다.

  <dependencies>
    <dependency>
      <groupId>com.microsoft.azure.cognitiveservices</groupId>
      <artifactId>azure-cognitiveservices-videosearch</artifactId>
      <version>0.0.1-beta-SNAPSHOT</version>
    </dependency>
  </dependencies> 

프로젝트 만들기 및 초기화

즐겨 찾는 IDE 또는 편집기에서 새 Java 프로젝트를 만들고 다음 라이브러리를 가져옵니다.

    import com.microsoft.azure.cognitiveservices.videosearch.*;
    import com.microsoft.azure.cognitiveservices.videosearch.VideoObject;
    import com.microsoft.rest.credentials.ServiceClientCredentials;
    import okhttp3.Interceptor;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List; 

검색 클라이언트 만들기

  1. VideoSearchAPIImpl 클라이언트를 구현합니다. 그러려면 API 엔드포인트와 ServiceClientCredentials 클래스의 인스턴스가 필요합니다.

    public static VideoSearchAPIImpl getClient(final String subscriptionKey) {
        return new VideoSearchAPIImpl("https://api.cognitive.microsoft.com/bing/v7.0/",
                new ServiceClientCredentials() {
                //...
                }
    )};
    

    ServiceClientCredentials를 구현하려면 다음 단계를 수행합니다.

    1. OkHttpClient.Builder 개체를 매개 변수로 사용하여 applyCredentialsFilter() 함수를 재정의합니다.

      //...
      new ServiceClientCredentials() {
              @Override
              public void applyCredentialsFilter(OkHttpClient.Builder builder) {
              //...
              }
      //...
      
    2. applyCredentialsFilter() 내에서 builder.addNetworkInterceptor()를 호출합니다. 새 Interceptor 개체를 만들고, Chain 인터셉터 개체를 사용하도록 intercept() 메서드를 재정의합니다.

      //...
      builder.addNetworkInterceptor(
          new Interceptor() {
              @Override
              public Response intercept(Chain chain) throws IOException {
              //...    
              }
          });
      ///...
      
    3. intercept 함수 내에서 요청에 대한 변수를 만듭니다. Request.Builder()를 사용하여 요청을 빌드합니다. Ocp-Apim-Subscription-Key 헤더에 구독 키를 추가하고, 요청 개체에서 chain.proceed()를 반환합니다.

      //...
      public Response intercept(Chain chain) throws IOException {
          Request request = null;
          Request original = chain.request();
          Request.Builder requestBuilder = original.newBuilder()
                  .addHeader("Ocp-Apim-Subscription-Key", subscriptionKey);
          request = requestBuilder.build();
          return chain.proceed(request);
      }
      //...
      

검색 요청 전송 및 응답 수신

  1. 문자열로 구독 키를 사용하는 VideoSearch()라는 함수를 만듭니다. 이전에 만든 검색 클라이언트를 인스턴스화합니다.

    public static void VideoSearch(String subscriptionKey){
        VideoSearchAPIImpl client = VideoSDK.getClient(subscriptionKey);
        //...
    }
    
  2. VideoSearch() 내에서 SwiftKey를 검색어로 하는 클라이언트를 사용하여 비디오 검색 요청을 보냅니다. Video Search API가 결과를 반환한 경우 첫 번째 결과를 가져와 해당 ID, 이름 및 URL을 반환된 비디오의 총 수와 함께 출력합니다.

    VideosInner videoResults = client.searchs().list("SwiftKey");
    
    if (videoResults == null){
        System.out.println("Didn't see any video result data..");
    }
    else{
        if (videoResults.value().size() > 0){
            VideoObject firstVideoResult = videoResults.value().get(0);
    
            System.out.println(String.format("Video result count: %d", videoResults.value().size()));
            System.out.println(String.format("First video id: %s", firstVideoResult.videoId()));
            System.out.println(String.format("First video name: %s", firstVideoResult.name()));
            System.out.println(String.format("First video url: %s", firstVideoResult.contentUrl()));
        }
        else{
            System.out.println("Couldn't find video results!");
        }
    }
    
  3. 기본 메서드에서 검색 메서드를 호출합니다.

    public static void main(String[] args) {
        VideoSDK.VideoSearch("YOUR-SUBSCRIPTION-KEY");
    }
    

다음 단계

참고 항목

JavaScript용 Bing Video Search 클라이언트 라이브러리를 사용하여 뉴스 검색을 시작하려면 이 빠른 시작을 사용합니다. Bing Video Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플의 소스 코드는 GitHub에서 확인할 수 있습니다. 자세한 주석 및 기능이 포함되어 있습니다.

사전 요구 사항

  • 최신 버전의 Node.js.
  • JavaScript용 Bing Video Search SDK
    • 설치하려면 npm install @azure/cognitiveservices-videosearch를 실행합니다.
  • 클라이언트를 인증하는 @azure/ms-rest-azure-js 패키지의 CognitiveServicesCredentials 클래스입니다.
    • 설치하려면 npm install @azure/ms-rest-azure-js를 실행합니다.

Azure 리소스 만들기

다음 Azure 리소스 중 하나를 만들어 Bing Video Search API 사용을 시작합니다.

Bing Search v7 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.

다중 서비스 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.

애플리케이션 만들기 및 초기화

  1. 즐겨 찾는 IDE 또는 편집기에서 새 JavaScript 파일을 만들고 Bing Video Search 클라이언트 라이브러리에 대한 require() 문 및 CognitiveServicesCredentials 모듈을 추가합니다. 구독 키에 대한 변수를 만듭니다.

    const CognitiveServicesCredentials = require('@azure/ms-rest-azure-js').CognitiveServicesCredentials;
    const VideoSearchAPIClient = require('@azure/cognitiveservices-videosearch');
    
  2. 키가 포함된 CognitiveServicesCredentials 인스턴스를 만듭니다. 그런 다음, 이를 사용하여 비디오 검색 클라이언트의 인스턴스를 만듭니다.

    let credentials = new CognitiveServicesCredentials('YOUR-ACCESS-KEY');
    let client = new VideoSearchAPIClient(credentials);
    

검색 요청 보내기

  1. client.videosOperations.search()를 사용하여 Bing Video Search API로 검색 요청을 보냅니다. 검색 결과가 반환된 경우 .then()을 사용하여 결과를 기록합니다.

    client.videosOperations.search('Interstellar Trailer').then((result) => {
        console.log(result.value);
    }).catch((err) => {
        throw err;
    });
    

다음 단계

참고 항목

Python용 Bing Video Search 클라이언트 라이브러리를 사용하여 뉴스 검색을 시작하려면 이 빠른 시작을 사용합니다. Bing Video Search에는 대부분의 프로그래밍 언어와 호환되는 REST API가 있는 반면, 클라이언트 라이브러리를 사용하면 서비스를 애플리케이션에 쉽게 통합할 수 있습니다. 이 샘플에 대한 소스 코드는 추가 주석 및 기능과 함께 GitHub에서 찾을 수 있습니다.

Azure 리소스 만들기

다음 Azure 리소스 중 하나를 만들어 Bing Video Search API 사용을 시작합니다.

Bing Search v7 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 평가판 가격 책정 계층을 사용하여 서비스를 사용해보고, 나중에 프로덕션용 유료 계층으로 업그레이드합니다.

다중 서비스 리소스

  • 리소스를 삭제할 때까지 Azure Portal을 통해 사용할 수 있습니다.
  • 여러 Azure AI 서비스에서 애플리케이션에 동일한 키와 엔드포인트를 사용합니다.

사전 요구 사항

  • Python 2.x 또는 3.x
  • Python용 Bing Video Search 클라이언트 라이브러리

Python 가상 환경을 사용하는 것이 좋습니다. venv 모듈을 사용하여 가상 환경을 설치하고 초기화할 수 있습니다. 다음을 사용하여 Python 2.7용 virtualenv를 설치합니다.

python -m venv mytestenv

다음을 사용하여 Bing Video Search 클라이언트 라이브러리를 설치합니다.

cd mytestenv
python -m pip install azure-cognitiveservices-search-videosearch

애플리케이션 만들기 및 초기화

  1. 선호하는 IDE 또는 편집기에서 새 Python 파일을 만들고, 다음 import 문을 추가합니다.

    from azure.cognitiveservices.search.videosearch import VideoSearchClient
    from azure.cognitiveservices.search.videosearch.models import VideoPricing, VideoLength, VideoResolution, VideoInsightModule
    from msrest.authentication import CognitiveServicesCredentials
    
  2. 구독 키에 대한 변수를 만듭니다.

    subscription_key = "YOUR-SUBSCRIPTION-KEY"
    endpoint = "YOUR-ENDPOINT"
    

검색 클라이언트 만들기

CognitiveServicesCredentials의 인스턴스를 만들고 클라이언트를 인스턴스화합니다.

client = VideoSearchAPI(endpoint, CognitiveServicesCredentials(subscription_key))

검색 요청 보내기 및 응답 받기

  1. 검색 쿼리와 함께 client.videos.search()를 사용하여 Bing Video Search API에 요청을 보내고 응답을 받습니다.

    video_result = client.videos.search(query="SwiftKey")
    
  2. 응답에 검색 결과가 포함되는 경우 첫 번째 응답을 가져와서 해당 ID, 이름 및 URL을 출력합니다.

    if video_result.value:
        first_video_result = video_result.value[0]
        print("Video result count: {}".format(len(video_result.value)))
        print("First video id: {}".format(first_video_result.video_id))
        print("First video name: {}".format(first_video_result.name))
        print("First video url: {}".format(first_video_result.content_url))
    else:
        print("Didn't see any video result data..")
    

다음 단계

참고 항목