youtube api:在 'search list' 请求中获取视频的观看次数

youtube api: get view count of videos in a 'search list' request

我正在使用 Youtube Javascript API 来检索一组匹配搜索字符串的视频。

它运行良好,但我似乎无法找到一种方法来获取结果中返回的每个视频的统计信息(尤其是观看次数)。

我在 API documentation 中没有找到任何关于结果统计的提及。

这可能吗,还是我必须对每个返回的 ID 进行单独查询?

代码

function init() {
    gapi.client.setApiKey(API_KEY);
    gapi.client.load('youtube', 'v3');
}

function search() {
        var q = $('#query').val();

        var request = gapi.client.youtube.search.list({
            q: q,
            part: 'snippet',
            type: 'video'
        });

        request.execute(function(response) {
            var str = JSON.stringify(response.result);
            $('#search-container').html('<pre>' + str + '</pre>');
        });
}

do I have to do an individual query for each returned id?

没有!您只需要根据上一个请求的结果再提出一个请求。

1 - 实际上你有这个:

var request = gapi.client.youtube.search.list({
            q: q,
            part: 'snippet',
            type: 'video'
        });

        request.execute(function(response) {
            var str = JSON.stringify(response.result);
            $('#search-container').html('<pre>' + str + '</pre>');
        });

此请求为您提供了一些 YouTube 视频的 id

2 - 然后您需要将所有此视频的 ID 连接起来,用逗号分隔。

示例:'P95nErnCoC4, 1d6z0gyA5ys' 看这个 post:Create comma-delimited string

3 - 您需要使用资源 videos.list

创建另一个请求
var request = gapi.client.youtube.search.list({
            part: 'statistics',
            id: 'P95nErnCoC4, 1d6z0gyA5ys, id_next.....' //concatenate ID
        });

        request.execute(function(response) {
            console.log(response);
        });

那么你只有一个请求的统计信息。

上面的发帖人有正确的概念,但发出了错误的请求 "part: 'statistics'" 无法通过 "gapi.client.youtube.search.list" 请求访问。

为了访问统计参数,您需要使用可以提供所有元数据的 "gapi.client.youtube.videos.list" 请求。

此请求可以访问分析 api,我认为它与 v3 客户端 api 捆绑在一起。很好的工作示例如下: https://developers.google.com/youtube/analytics/v1/code_samples/javascript