https://developers.google.com/youtube/v3/docs/videos/list
Set in .env YOUTUBE_API_KEY with https://www.googleapis.com/auth/youtube.readonly permissions.
/**
* Youtube video live viewers
*
* $url = 'https://youtube.googleapis.com/youtube/v3/videos?part=statistics%2Cstatus%2CliveStreamingDetails&id={VIDEO_ID}&key={KEY}';
*/
public function youtubeLiveCurrentViewers()
{
try {
$count = Cache::store('file')
->remember(
'youtubeConcurrentViewers',
config('access.youtube.current_refresh', 60),
function () {
$key = env('YOUTUBE_API_KEY', '');
$videoId = Storage::disk('local')->get(config('access.youtube.current', 'youtube-current.txt'));
if (!empty($videoId) && !empty($key)) {
$res = Http::get('https://youtube.googleapis.com/youtube/v3/videos?part=liveStreamingDetails&id=' . $videoId . '&key=' . $key)->json();
$cnt = $res['items'][0]['liveStreamingDetails']['concurrentViewers'] ?? 0;
}
return $cnt ?? 0;
}
);
} catch (Throwable $e) {
report($e);
return 0;
}
return $count;
}