2017-06-04 24 views
11

URL do osadzenia na żywo strumień kanału jest:Jak osadzić czat na żywo z adresu stałego na Youtube?

https://www.youtube.com/embed/live_stream?channel=CHANNEL_ID 

i to działa, ale jeśli chcę umieścić blisko przy nim YouTube na żywo czat dla prądu strumieniowego URL, którego używam do ankiety jest:

https://www.youtube.com/live_chat?v=VIDEOID&embed_domain=DOMAINURL 

Problem polega na tym, że dla każdego nowego strumienia na żywo zmienia się identyfikator wideo. Tak, że kod wbudowany nie jest już prawidłowy, a czat nie jest wyświetlany podczas następnego przesyłania strumieniowego. Chcę, aby ciągły URL na żywo był ważny dla wszystkich moich transmisji strumieniowych YouTube bez zmiany ID wideo ręcznie za każdym razem. Jak rozwiązać? Być może ze skryptem w PHP lub javascript, który czyta bieżący adres URL w YouTube i zastępuje identyfikator wideo w adresie URL umieszczonym na czacie? dzięki

Odpowiedz

6

można uzyskać identyfikator wideo za pomocą PHP tak:

<?php 

try { 
    $videoId = getLiveVideoID('CHANNEL_ID'); 

    // Output the Chat URL 
    echo "The Chat URL is https://www.youtube.com/live_chat?v=".$videoId; 
} catch(Exception $e) { 
    // Echo the generated error 
    echo "ERROR: ".$e->getMessage(); 
} 

// The method which finds the video ID 
function getLiveVideoID($channelId) 
{ 
    $videoId = null; 

    // Fetch the livestream page 
    if($data = file_get_contents('https://www.youtube.com/embed/live_stream?channel='.$channelId)) 
    { 
     // Find the video ID in there 
     if(preg_match('/\'VIDEO_ID\': \"(.*?)\"/', $data, $matches)) 
      $videoId = $matches[1]; 
     else 
      throw new Exception('Couldn\'t find video ID'); 
    } 
    else 
     throw new Exception('Couldn\'t fetch data'); 

    return $videoId; 
} 
2

Powinieneś być w stanie wykorzystać YouTube Live Streaming API aby uzyskać identyfikator i użyj żywo strumień danych dla wszelkich potrzeb masz.

Rzeczywiście, jeden z przypadków użycia jest:

  • Associate strumienie wideo i transmisje.

Na this page, masz przykład PHP, w jaki sposób "odzyskać strumienie wideo kanału". W tym kodzie $ streamItem to LiveStream, który zawiera identyfikator strumienia na żywo i możesz go wykorzystać.

W powiązanej notatce interfejs API umożliwia także pracę z LiveBroadcasts, która zawiera numer referencyjny snippet.liveChatId w celu połączenia go z LiveChatMessages. Ta ostatnia pozwoli Ci pracować z wiadomościami w dowolnym formacie, który chcesz. Być może lepiej by to pasowało do twoich potrzeb. Na poprzedniej stronie z przykładowymi kodami znajduje się również dobry przykład "Odbieranie audycji kanału".

Mogę skopiować kody tutaj, ale myślę, że najlepszy działający przykład jest dobrze udokumentowany na Odniesieniu API :)

Powiązane problemy