如何通过Android中的Data API v3.0使用videoID从youtube检索单个视频的详细信息?

Shu*_*ain 5 youtube android youtube-api android-youtube-api youtube-data-api

我的服务器将 videoID 列表发送到 Android。现在,我想在列表视图中显示这些视频的标题、缩略图和评论数。我已经使用 GET 请求在 Web 中完成了此操作,https://www.googleapis.com/youtube/v3/videos?part=snippet&id={VIDEO_ID}&key={YOUR_API_KEY}但如何在 Android 中执行此操作?是否有任何 YouTube SDK 来初始化 YouTube 对象?如何使用 VideoID 从 YouTube 检索此信息?

编辑:我已经找到了一种使用Java 的 YouTube 数据 API 客户端库的方法,但是它在没有任何解释的情况下给出了运行时错误。

这是我使用的代码

/**
 * Define a global instance of a Youtube object, which will be used
 * to make YouTube Data API requests.
 */
private static YouTube youtube;

youtube = new YouTube.Builder(new NetHttpTransport(), new JacksonFactory(), new HttpRequestInitializer(){
        public void initialize(com.google.api.client.http.HttpRequest request) throws IOException {
        }
    }).setApplicationName("youtube-cmdline-search-sample").build();

// Call the YouTube Data API's videos.list method to retrieve videos.
    VideoListResponse videoListResponse = youtube.videos().
        list("snippet").setId(videoId).execute();

    // Since the API request specified a unique video ID, the API
    // response should return exactly one video. If the response does
    // not contain a video, then the specified video ID was not found.
    List<Video> videoList = videoListResponse.getItems();
    if (videoList.isEmpty()) {
        System.out.println("Can't find a video with ID: " + videoId);
        return;
    }
    Video video = videoList.get(0)
    // Print information from the API response.
}
Run Code Online (Sandbox Code Playgroud)

MH.*_*MH. 1

YouTube 提供(至少)两个与您的问题相关的官方库:

顾名思义,第一个库是专门为 Android 平台开发的。它的重点是让您能够通过提供播放器框架将视频播放功能合并到应用程序中。如果您的目标是让用户能够简单地播放 YouTube 视频,那么这可能是最容易实现的。请注意,此库需要在设备上安装官方 YouTube 应用程序。

第二个库更加通用(尽管有在 Android 上使用它的单独说明),并提供了 YouTube 数据 API 的包装器,以使与其交互更容易一些。因此,它基本上允许您执行使用 Web API 可以执行的所有操作。因此,它解决了与 Android Player API 不同的问题,如果您想完全控制在自己的 UI 中显示视频数据的方式,它更有可能是您的选择。

您的第三个选择是完全按照您对基于 Web 的解决方案所做的操作:自己进行 API 调用、解析响应并将相关数据绑定到您的 UI 组件。各种网络库(即Retrofit)可以大大简化这个过程。