krzys_h

YouTube livestream API

Jul 9th, 2015
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.73 KB | None | 0 0
  1. <?php
  2. $user = "Moskitgp";
  3. $yt_api_key = "**************";
  4.  
  5. echo "Zaczynamy\n";
  6. echo "Nazwa kanału: {$user}\n";
  7. $channel_id = json_decode(file_get_contents("https://www.googleapis.com/youtube/v3/channels?part=id&forUsername={$user}&key={$yt_api_key}"), true)["items"][0]["id"];
  8. echo "ID kanału: {$channel_id}\n";
  9.  
  10. // To można wykorzystać jak będziemy robić jakieś wyświetlanie filmów na stronie usera albo coś
  11. //$uploads_playlist_id = json_decode(file_get_contents("https://www.googleapis.com/youtube/v3/channels?part=contentDetails&forUsername={$user}&key=${yt_api_key}"), true)["items"][0]["contentDetails"]["relatedPlaylists"]["uploads"];
  12. //echo "ID playlisty przesłanych filmów: ${uploads_playlist_id}\n";
  13. // Teraz można odpytywać API playlists o przesłane filmy
  14.  
  15.  
  16. $channel_id = "UC8boIawSmpWzjNU474HdJcg"; // Jakiś randomowy co akurat streamował
  17.  
  18. $streams = json_decode(file_get_contents("https://www.googleapis.com/youtube/v3/search?eventType=live&part=snippet&channelId={$channel_id}&type=video&key={$yt_api_key}"), true);
  19. $youtube_is_online = count($streams["items"]) > 0;
  20. if($youtube_is_online) {
  21.     $stream = $streams["items"][0];
  22.  
  23.     $stream_video_id = $stream["id"]["videoId"];
  24.     $stream_title = $stream["snippet"]["title"];
  25.     $stream_description = $stream["snippet"]["description"];
  26.     $stream_thumbnail = $stream["snippet"]["thumbnails"]["high"]["url"]; // rozmiar miniaturki moze byc: default / medium / high
  27.  
  28.     // API search może zwrócić tylko "snippet", więc znając już ID pytamy jeszcze raz, tym razem API videos o "statistics", "player" i "liveStreamingDetails"
  29.     $videos = json_decode(file_get_contents("https://www.googleapis.com/youtube/v3/videos?part=statistics,player,liveStreamingDetails&id={$stream_video_id}&key={$yt_api_key}"), true);
  30.     $video = $videos["items"][0];
  31.  
  32.     $stream_statistics = $video["statistics"]; // łapki w górę, łapki w dół, wyświetlenia, dodania do ulubionych i ilość komentarzy (== całkowita ilość wiadomości na chacie pod tym streamem)
  33.     $stream_player_embed = $video["player"]["embedHtml"]; // w zasadzie można to wpisać na stałe i wywalić z zapytania, mamy przecież już video id (quota cost za "player" jest 0 więc właściwie bez różnicy)
  34.     $stream_viewers = $video["liveStreamingDetails"]["concurrentViewers"];
  35.  
  36.     echo "\nStream ONLINE\n";
  37.     echo "Video ID: {$stream_video_id}\n";
  38.     echo "Tytuł filmu: {$stream_title}\n";
  39.     echo "Opis filmu:\n";
  40.     echo $stream_description."\n";
  41.     echo "Oglądający: {$stream_viewers}\n";
  42.     echo "Miniaturka: {$stream_thumbnail}\n";
  43.     echo "Statystyki: \n";
  44.     foreach($stream_statistics as $key => $value) echo "    {$key} => {$value}\n";
  45.     echo "Kod do embeda:\n";
  46.     echo $stream_player_embed."\n";
  47. } else {
  48.     echo "\nStream OFFLINE\n";
  49. }
  50. ?>
Add Comment
Please, Sign In to add comment