如何使用YouTube API 3和Javascript / JQuery检索YouTube上视频的观看次数

时间:2013-06-05 17:16:41

标签: javascript youtube youtube-api

我正在尝试检索特定视频的观看次数。我已经设置了我的应用程序,创建了OATH2连接等等。

我使用的网址是:https://www.googleapis.com/youtube/v3/videos?id= {video-id}& key = {API-key}%20& fields = items(statistics)& part = statistics

直接转到此URL会使用JSON格式的响应正确响应,并提供我需要的所有信息。我在多个浏览器中尝试过此操作,并确保在使用URL时我已退出帐户。它仍然可以正确响应。

{
 "items": [
  {
   "statistics": {
    "viewCount": "21997",
    "likeCount": "1",
    "dislikeCount": "2",
    "favoriteCount": "0",
    "commentCount": "2"
   }
  }
 ]
}

但是,当我尝试解析此信息时,结果并不像预期的那样:

<script>

    $.getJSON("{https://www.googleapis.com/youtube/v3/videos?id={video-id}&key={API-key}%20&fields=items(statistics)&part=statistics", function(data) {

        $("#results").append('<p>' + data.items.statistics.viewCount + '</p>');

    });

</script>

<div id="results"></div>
  1. “data.items.statistics.viewCount”(这是我要检索的信息),返回响应“undefined”

    $("#results").append('<p>' + data.items.statistics.viewCount + '</p>');
    
  2. 为了测试它,我使用“数据”作为上面的变量,并使用“data.items”,我得到响应“[object Object]”

    $("#results").append('<p>' + data.items + '</p>');
    
  3. 如果我将“data”更改为“data.items.statistics”,我会得到“未定义”的响应

    $("#results").append('<p>' + data.items.statistics + '</p>');
    
  4. 关于我可能做错了什么的想法,以及如何纠正这个问题?

    谢谢!

1 个答案:

答案 0 :(得分:2)

项目不是对象属性是数组。 试着

    $("#results").append('<p>' + data.items[0].statistics.viewCount + '</p>');

我希望能解决你的问题。