我希望显示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'];
?>
但是这不显示当前的观众数量!
答案 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秒钟。它应该马上就可以了。
希望这会有所帮助......
答案 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