获取 youtube 直播的当前观看人数
Grabbing the current viewer count for youtube 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:
不幸的是,YouTube 已经放弃了对这种方法的支持。希望将来会有一个新的解决方案而不使用他们的API(因为它有报价限制)。
试试这个 link:https://www.youtube.com/live_stats?v={videoid}
在 YouTube 上查找直播活动并替换 link 中的视频 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 link 从 YouTube 检索数据。然后我使用 HTML 和 jquery 每 5 秒动态更新一次数据。
<div id="status"...
是显示数据的地方,带有一点 css.
的样式
<script src="...
是 jQuery 库的加载位置。
<script type="...
是代码函数,其中 jQuery 从 PHP 文件中检索数据并将其显示在第一个 div / 中隐藏它,如果有 0 个观众。
我在想您可以将其嵌入到不会刷新整个页面的 iframe 中。您也可以直接将 html 代码嵌入到网页中,而无需 iframe。如果您要直接嵌入,如果 PHP 文件不在同一个相对文件夹中,则必须设置一个直接路径。如果有任何错误,只需使用开发人员工具控制台进行故障排除。
请注意,在第一个 jQuery 间隔刷新数据之前,不会显示观看人数。在这种情况下,5 秒。 我更新了这个,所以第一次更新不需要 5 秒。现在应该可以立即使用。
这是一张适合我的图片:
希望这对您有所帮助...
如果要获取当前观众数(并发观众),只需在请求的 part
参数中包含 liveStreamingDetails
。
示例:
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
我希望显示 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: 不幸的是,YouTube 已经放弃了对这种方法的支持。希望将来会有一个新的解决方案而不使用他们的API(因为它有报价限制)。
试试这个 link:https://www.youtube.com/live_stats?v={videoid}
在 YouTube 上查找直播活动并替换 link 中的视频 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 link 从 YouTube 检索数据。然后我使用 HTML 和 jquery 每 5 秒动态更新一次数据。
<div id="status"...
是显示数据的地方,带有一点 css.
的样式
<script src="...
是 jQuery 库的加载位置。
<script type="...
是代码函数,其中 jQuery 从 PHP 文件中检索数据并将其显示在第一个 div / 中隐藏它,如果有 0 个观众。
我在想您可以将其嵌入到不会刷新整个页面的 iframe 中。您也可以直接将 html 代码嵌入到网页中,而无需 iframe。如果您要直接嵌入,如果 PHP 文件不在同一个相对文件夹中,则必须设置一个直接路径。如果有任何错误,只需使用开发人员工具控制台进行故障排除。
请注意,在第一个 jQuery 间隔刷新数据之前,不会显示观看人数。在这种情况下,5 秒。 我更新了这个,所以第一次更新不需要 5 秒。现在应该可以立即使用。
这是一张适合我的图片:
希望这对您有所帮助...
如果要获取当前观众数(并发观众),只需在请求的 part
参数中包含 liveStreamingDetails
。
示例:
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