抓取当前观看者数量为youtube直播

时间:2015-11-21 16:59:51

标签: json youtube-api live-streaming

我希望显示youtube直播视频的当前观看者数量,我可以使用以下代码为youtube视频执行此操作:

<?php
$JSON = file_get_contents("https://www.googleapis.com/youtube/v3/videos?
part=statistics&id=videiID&key=APIKey");
$json_data = json_decode($JSON, true);
echo $json_data['items'][0]['statistics']['viewCount'];
?>

但是这不显示当前的观众数量!

2 个答案:

答案 0 :(得分:2)

更新2: 遗憾的是,YouTube不再支持此方法。希望将来有一个新的解决方案,而不使用他们的API(因为它有报价限制)。

试试此链接:https://www.youtube.com/live_stats?v= {videoid}

在YouTube上查找直播活动并替换链接中的视频ID。这应该检索该特定视频的并发视图数。

如果有,请刷新页面并将该数字与YouTube页面上的并发观看者进行比较。

更新1:

以下是如何将其添加到您的网站的示例。您可以设置php文件和html文件。

viewers.php:

<?php
$viewers = file_get_contents('https://www.youtube.com/live_stats?v=y60wDzZt8yg');
echo $viewers;
?>

viewers.html:

<!DOCTYPE html>
<html>
<body>
<div id="status" style="color: #666; line-height: 24px; font-size: 19px; font-weight: normal; font: 19px Roboto,arial,sans-serif;"></div>
<script src="http://code.jquery.com/jquery-1.7.1.min.js" type="text/javascript"></script>
<script type="text/javascript">
function update() {
    $.ajax({
        url: 'viewers.php',
        dataType: 'text',
        success: function(data) {
            if (parseInt(data) == 0) {
                $("#status").css({ display: "none" });
            } else {
                $("#status").text(parseInt(data) + ' watching now' );
            }
        }
    })
}
update();
var statusIntervalId = window.setInterval(update, 5000);
</script>
</body>
</html>

如您所见,我使用PHP文件使用live_stats链接从YouTube检索数据。然后我使用带有jquery的HTML每5秒动态更新一次数据。

<div id="status"...是显示数据的地方,并使用一点css进行样式设置 <script src="...是加载jQuery库的地方 <script type="...是代码函数,其中jQuery从PHP文件中检索数据并将其显示在第一个div中 / 隐藏它,如果有0个查看者。

我原以为你可以将它嵌入到一个不会刷新整个页面的iframe中。您也可以直接将html代码嵌入到网页中,而无需使用iframe。如果要直接嵌入,则必须设置PHP文件的直接路径,如果它不在同一个相关文件夹中。如果有任何错误,请使用开发人员工具控制台进行故障排除。

只是抬头,观众的数量不会显示,直到第一个jQuery间隔刷新数据。在这种情况下,5秒。我对此进行了更新,因此首次更新不会花费5秒钟。它应该马上就可以了。

这是一张为我工作的图片:
enter image description here

希望这会有所帮助......

答案 1 :(得分:0)

如果您想获得当前观看人数(同时观看人数),只需在请求的 liveStreamingDetails 参数中包含 part

示例:

https://www.googleapis.com/youtube/v3/videos?
part=statistics,liveStreamingDetails&id=videoID&key=APIKey

响应将包括

...
      "statistics": {
        "viewCount": "38452",
        "likeCount": "95",
        "dislikeCount": "12",
        "favoriteCount": "0",
        "commentCount": "0"
      },
      "liveStreamingDetails": {
        "actualStartTime": "2021-08-03T17:34:09Z",
        "scheduledStartTime": "2021-08-03T16:20:00Z",
        "concurrentViewers": "95",
      }
...

参考:https://developers.google.com/youtube/v3/docs/videos/list#parameters