Nach einiger Zeit, ich dachte, das selbst heraus ...
ich ein PHP-Skript erstellt, das die Video-ID des ersten Videos in einer Playlist abruft und setzt die ID in den Link Live-Statistiken. Ich nehme den Link von Live-Events und lege sie zur einfachen Verwendung in eine Playlist.
<?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;
?>
Ich erstellte dann eine HTML-Seite, wo die Daten mit jQuery dynamisch aktualisiert werden.
<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>
Das ist, wie weit ich gekommen bin. Jetzt frage ich mich nur, ob es eine bessere Möglichkeit gibt, diese Codes zu kombinieren, um weniger Serveranforderungen zu erstellen. Jede jQuery-Anfrage erfolgt alle 5 Sekunden und hat eine Größe von ca. 240 Bytes. Obwohl die Anforderungen gering sind, können sie dennoch eine Seite verlangsamen.
Wenn Sie können, bitte helfen Sie mir, meine Lösung zu verbessern. Vielen Dank im Voraus.
Ist das eine undokumentierte API? Ich sehe in den Dokumenten keine Erwähnung über einen 'live_stats' Endpunkt. – JAL
'Da Sie nicht mehrere Ereignisse gleichzeitig von einem einzigen Konto streamen können ', wo haben Sie das gelesen? Es sollte kein Problem bei der Planung und Übertragung mehrerer Live-Ereignisse von einem einzelnen Kanal geben, solange Sie zwei separate Ereignisse mit zwei separaten Encodern haben. – JAL
Ja, Sie haben Recht ... Ich dachte nur, dass es nicht möglich ist, mehrere Ereignisse zu streamen. Es tut mir leid, ich lag falsch. Gut zu wissen. Ich weiß eigentlich nicht, wer diesen API-Link ursprünglich eingeführt hat, aber ich habe ihn hier gefunden und er funktioniert wirklich gut. Ich habe mich nur gefragt, ob die Jungs von YouTube mir mit dieser Methode etwas mehr geben könnten. Da ich meine Live-Events ständig in einer Playlist poste, konnte ich irgendwie die Video-ID nur des ersten Videos mit einer API bekommen? Ich könnte das mit etwas PHP und jQuery verwenden, um zu bekommen, was ich brauche. –