いくつかの時間後、私は私がプレイリストに最初の動画の動画IDを取得し、ライブ統計リンクにIDを入れPHPスクリプトを作成し...
を自分でこれを考え出しました。私はライブイベントのリンクを取って、使いやすいようにプレイリストに入れます。
<?php
// Retrieves video info from Youtube playlist. Just update [PLAYLIST_ID] and [API_KEY]
$json_url = "https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=1&playlistId=[PLAYLIST_ID]&fields=items%2Fsnippet%2FresourceId%2FvideoId&key=[API_KEY]";
$json = file_get_contents($json_url);
$json=str_replace('},
]',"}
]",$json);
$data = json_decode($json, true);
$videoId = $data['items'][0]['snippet']['resourceId']['videoId'];
$viewers = file_get_contents("https://www.youtube.com/live_stats?v=$videoId");
echo $viewers;
?>
次に、jQueryを使用してデータが動的に更新される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>
これは私がどれくらい得るかです。さて、私は、これらのコードを組み合わせてより少ないサーバー要求を作成するより良い方法があるのかどうか疑問に思っています。各jQueryリクエストは5秒ごとに発生し、約240バイトのサイズです。リクエストは小さいものの、ページを遅くする可能性があります。
可能であれば、私の解決策を改善してください。前もって感謝します。
これはドキュメント化されていないAPIですか?私は 'live_stats'エンドポイントに関するドキュメントには何の言及も見ません。 – JAL
'あなたは一度に複数のイベントを単一のアカウントからストリーミングできないので、あなたはこれをどこで読んだのですか? 2つの別々のエンコーダーを使用して2つの別々のイベントがある場合は、1つのチャンネルから複数のライブイベントをスケジューリングしてブロードキャストすることは問題ありません。 – JAL
はい、そうです...私は、複数のイベントをストリーミングすることができないと考えていました。すみません、私は間違っていました。知っておいてよかった。私は実際にこのAPIリンクを誰が最初に導入したのか分かりませんが、ここでそれを見つけて、それは本当にうまく機能します。私は、YouTubeの人が私にこの方法でもっと何かを与えることができるかどうか疑問に思っていました。ライブイベントを常にプレイリストに投稿しているので、APIを使用して最初の動画の動画IDのみを何とか取得できますか?私は必要なものを得るためにPHPやjQueryでそれを使うことができます。 –