0

から同時視聴者をlive_stats:https://www.youtube.com/live_stats?v= {動画ID}は、YouTubeを取得し、私はこのリンクで特定のライブストリーミングYouTubeのイベントのために、同時視聴者数を取得することが可能であることを知っているチャネルの代わりに、特定のライブイベントの映像

私がいました特定のライブイベントの代わりにチャンネルまたはプレイリストのlive_statsを取得することが可能かどうか疑問に思っています。

このデータを、毎週複数の異なるライブイベントが発生するウェブページに埋め込みたいとします。各イベントの動画IDを変更することは負担になります。これを直接行うことができない場合は、チャネルから現在のライブイベントのビデオIDを取得し、リンク内のidをJavaスクリプトまたはPHPで置き換える方法がありますか?これを理解するのを助けてください。

+0

これはドキュメント化されていないAPIですか?私は 'live_stats'エンドポイントに関するドキュメントには何の言及も見ません。 – JAL

+1

'あなたは一度に複数のイベントを単一のアカウントからストリーミングできないので、あなたはこれをどこで読んだのですか? 2つの別々のエンコーダーを使用して2つの別々のイベントがある場合は、1つのチャンネルから複数のライブイベントをスケジューリングしてブロードキャストすることは問題ありません。 – JAL

+0

はい、そうです...私は、複数のイベントをストリーミングすることができないと考えていました。すみません、私は間違っていました。知っておいてよかった。私は実際にこのAPIリンクを誰が最初に導入したのか分かりませんが、ここでそれを見つけて、それは本当にうまく機能します。私は、YouTubeの人が私にこの方法でもっと何かを与えることができるかどうか疑問に思っていました。ライブイベントを常にプレイリストに投稿しているので、APIを使用して最初の動画の動画IDのみを何とか取得できますか?私は必要なものを得るためにPHPやjQueryでそれを使うことができます。 –

答えて

0

いくつかの時間後、私は私がプレイリストに最初の動画の動画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バイトのサイズです。リクエストは小さいものの、ページを遅くする可能性があります。

可能であれば、私の解決策を改善してください。前もって感謝します。

関連する問題