如何使用YouTube API获取视频观看次数?

Ant*_*nte 79 javascript youtube-api

问题很简单.如何使用YouTube API获取视频观看次数?

在此输入图像描述

任务很简单,但我想经常在大量视频上使用该查询.有没有办法调用他们的Youtube API并获得它?(比如facebook http://api.facebook.com/restserver.php?method=links.getStats&urls=developers.facebook.com)

Vic*_*tor 74

我认为,最简单的方法是获取JSON格式的视频信息.如果你想使用JavaScript,试试 jQuery.getJSON() ......但我更喜欢PHP:

<?php
$video_ID = 'your-video-ID';
$JSON = file_get_contents("https://gdata.youtube.com/feeds/api/videos/{$video_ID}?v=2&alt=json");
$JSON_Data = json_decode($JSON);
$views = $JSON_Data->{'entry'}->{'yt$statistics'}->{'viewCount'};
echo $views;
?>
Run Code Online (Sandbox Code Playgroud)

参考:Youtube API - 检索有关单个视频的信息

  • 谢谢,你救了我30分钟的挖掘:) (5认同)
  • 仅供参考,此操作在2015年4月20日前后中断,仅返回https://www.youtube.com/watch?v=UKY3scPIMd8的观看信息,该信息指向https://youtube.com/devicesupport。基本上,使用v3 API。 (2认同)

小智 61

您可以使用新的YouTube Data API v3

如果您检索视频,则统计信息部分包含viewCount:

来自文档:

https://developers.google.com/youtube/v3/docs/videos#resource

statistics.viewCount /观看视频的次数.

您可以使用某些客户端库在客户端或服务器端检索此信息:

https://developers.google.com/youtube/v3/libraries

您可以从doc测试API调用:

https://developers.google.com/youtube/v3/docs/videos/list

样品:

请求:

GET https://www.googleapis.com/youtube/v3/videos?part=statistics&id=Q5mHPo2yDG8&key={YOUR_API_KEY}

Authorization:  Bearer ya29.AHES6ZSCT9BmIXJmjHlRlKMmVCU22UQzBPRuxzD7Zg_09hsG
X-JavaScript-User-Agent:  Google APIs Explorer
Run Code Online (Sandbox Code Playgroud)

响应:

200 OK

- Show headers -

{
 "kind": "youtube#videoListResponse",
 "etag": "\"g-RLCMLrfPIk8n3AxYYPPliWWoo/dZ8K81pnD1mOCFyHQkjZNynHpYo\"",
 "pageInfo": {
  "totalResults": 1,
  "resultsPerPage": 1
 },
 "items": [
  {

   "id": "Q5mHPo2yDG8",
   "kind": "youtube#video",
   "etag": "\"g-RLCMLrfPIk8n3AxYYPPliWWoo/4NA7C24hM5mprqQ3sBwI5Lo9vZE\"",
   "statistics": {
    "viewCount": "36575966",
    "likeCount": "127569",
    "dislikeCount": "5715",
    "favoriteCount": "0",
    "commentCount": "20317"
   }
  }
 ]
}
Run Code Online (Sandbox Code Playgroud)

  • 这是现在的方法,V2 Google API自2014年3月起被弃用.附加提示:可以像这样检索API的多个部分:`part = statistics,contentDetails`.此外,即使V2 API似乎在大多数情况下都有效,但它并不适用于某些视频. (2认同)

ste*_*njj 9

自2014年3月以来,API的第2版已被弃用,其中一些其他答案正在使用.

这是一个非常简单的代码片段,可以使用YouTube API v3中的JQuery从视频中获取视图.

您需要先通过Google Developer Console创建API密钥.

<script>
  $.getJSON('https://www.googleapis.com/youtube/v3/videos?part=statistics&id=Qq7mpb-hCBY&key={{YOUR-KEY}}', function(data) {
    alert("viewCount: " + data.items[0].statistics.viewCount);
  });
</script>
Run Code Online (Sandbox Code Playgroud)


SVS*_*SVS 8

这是一个使用Javascript从URL获取Youtube视频视图的小代码段

演示以下代码

    function videoViews() {
var rex = /[a-zA-Z0-9\-\_]{11}/,
    videoUrl = $('input').val() === '' ? alert('Enter a valid Url'):$('input').val(),
    videoId = videoUrl.match(rex),
    jsonUrl = 'http://gdata.youtube.com/feeds/api/videos/' + videoId + '?v=2&alt=json',
   embedUrl = '//www.youtube.com/embed/' + videoId,
   embedCode = '<iframe width="350" height="197" src="' + embedUrl + '" frameborder="0" allowfullscreen></iframe>'


//Get Views from JSON
$.getJSON(jsonUrl, function (videoData) {
    var videoJson = JSON.stringify(videoData),
        vidJson = JSON.parse(videoJson),
        views = vidJson.entry.yt$statistics.viewCount;
    $('.views').text(views);
});

//Embed Video
$('.videoembed').html(embedCode);}
Run Code Online (Sandbox Code Playgroud)


NVR*_*VRM 6

为什么使用任何api 密钥来检索公共 html 的一部分!

最简单的 unix 命令行演示示例,使用curlgrepcut

curl https://www.youtube.com/watch?v=r-y7jzGxKNo | grep watch7-views-info | cut -d">" -f8 | cut -d"<" -f1
Run Code Online (Sandbox Code Playgroud)

是的,它获得了完整的 html 页面,这种损失与无数优势相比毫无意义。


Ole*_*nge 5

使用youtube-dljq

views() {
    id=$1
    youtube-dl -j https://www.youtube.com/watch?v=$id |
        jq -r '.["view_count"]'
}

views fOX1EyHkQwc
Run Code Online (Sandbox Code Playgroud)