快速入门:使用必应视频搜索客户端库

警告

2020 年 10 月 30 日,必应搜索 API 从 Azure AI 服务迁移到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅 必应搜索 API 文档。 有关为必应搜索创建新 Azure 资源的说明,请参阅 通过 Azure 市场创建必应搜索资源。

使用本快速入门开始使用适用于 C# 的必应视频搜索客户端库搜索新闻。 虽然必应视频搜索具有与大多数编程语言兼容的 REST API,但客户端库提供了将服务集成到应用程序中的简单方法。 可以在 gitHub 上找到此示例的源代码,其中包含其他注释和功能。

先决条件

若要将必应视频搜索客户端库添加到项目,请从 Visual Studio 中的 解决方案资源管理器 中选择 管理 NuGet 包。 添加 Microsoft.Azure.CognitiveServices.Search.VideoSearch 程序包。

安装 [NuGet 视频搜索 SDK 包] 还会安装以下依赖项:

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

创建 Azure 资源

通过创建以下 Azure 资源之一开始使用必应视频搜索 API:

必应搜索 v7 资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 使用免费定价层试用该服务,稍后升级到生产付费层。

多服务资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 跨多个 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 的必应视频搜索客户端库搜索新闻。 虽然必应视频搜索具有与大多数编程语言兼容的 REST API,但客户端库提供了将服务集成到应用程序中的简单方法。 可以在 gitHub 中找到此示例的源代码,其中包含其他注释和功能。

先决条件

创建 Azure 资源

通过创建以下 Azure 资源之一开始使用必应视频搜索 API:

必应搜索 v7 资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 使用免费定价层试用该服务,稍后升级到生产付费层。

多服务资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 跨多个 Azure AI 服务对应用程序使用相同的密钥和终结点。

使用 Maven、Gradle 或其他依赖项管理系统安装必应视频搜索客户端库依赖项。 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. 重写 applyCredentialsFilter() 函数,使用 OkHttpClient.Builder 对象作为参数。

      //...
      new ServiceClientCredentials() {
              @Override
              public void applyCredentialsFilter(OkHttpClient.Builder builder) {
              //...
              }
      //...
      
    2. applyCredentialsFilter()内,调用 builder.addNetworkInterceptor()。 创建新的 Interceptor 对象,并重写其 intercept() 方法以采用 Chain 拦截器对象。

      //...
      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 作为搜索词。 如果视频搜索 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 的必应视频搜索客户端库搜索新闻。 虽然必应视频搜索具有与大多数编程语言兼容的 REST API,但客户端库提供了将服务集成到应用程序中的简单方法。 可以在 GitHub 上找到此示例的源代码。 它包含更多注释和功能。

先决条件

  • 最新版本的 Node.js
  • 适用于 JavaScript 的 必应视频搜索 SDK
    • 若要安装,请运行 npm install @azure/cognitiveservices-videosearch
  • 用于认证客户端的 CognitiveServicesCredentials 包中的 @azure/ms-rest-azure-js 类。
    • 若要安装,请运行 npm install @azure/ms-rest-azure-js

创建 Azure 资源

通过创建以下 Azure 资源之一开始使用必应视频搜索 API:

必应搜索 v7 资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 使用免费定价层试用该服务,稍后升级到生产付费层。

多服务资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 跨多个 Azure AI 服务对应用程序使用相同的密钥和终结点。

创建和初始化应用程序

  1. 在偏好的 IDE 或编辑器中创建新的 JavaScript 文件,并为必应视频搜索客户端库添加 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() 向必应视频搜索 API 发送搜索请求。 返回搜索结果后,请使用 .then() 记录结果。

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

后续步骤

另请参阅

使用本快速入门开始使用适用于 Python 的必应视频搜索客户端库搜索新闻。 虽然必应视频搜索具有与大多数编程语言兼容的 REST API,但客户端库提供了将服务集成到应用程序中的简单方法。 可以在 gitHub 上找到此示例的源代码,其中包含其他注释和功能。

创建 Azure 资源

通过创建以下 Azure 资源之一开始使用必应视频搜索 API:

必应搜索 v7 资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 使用免费定价层试用该服务,稍后升级到生产付费层。

多服务资源

  • 可通过 Azure 门户使用,直到删除资源。
  • 跨多个 Azure AI 服务对应用程序使用相同的密钥和终结点。

先决条件

  • Python 2.x 或 3.x
  • 适用于 Python 的必应视频搜索客户端库

建议使用 Python 虚拟环境。 可以使用 venv 模块安装和初始化虚拟环境。 使用以下命令安装 virtualenv for Python 2.7:

python -m venv mytestenv

使用以下命令安装必应视频搜索客户端库:

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

创建和初始化应用程序

  1. 在偏好的 IDE 或编辑器中创建新的 Python 文件,并添加以下导入语句。

    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() 与搜索查询配合使用,向必应视频搜索 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..")
    

后续步骤

另请参阅