2017-06-04 19 views
11

チャンネルのライブストリームの埋め込みURLは次のとおりです。YouTubeのライブチャットをURL永久保存する方法を教えてください。

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

、それは動作しますが、私はそれに近い私が埋め込みに使用するURLをストリーミング現在のYouTubeライブチャットを埋め込みたい場合は次のとおりです。

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

問題は次のとおりです。新しいライブストリームごとに、ビデオIDが変更されます。埋め込まれたコードはもう有効ではなく、チャットは次のストリーミングのために表示されません。私はすべてのYouTubeストリーミング の永久URLライブチャットを毎回手動で変更する必要はありません。 解決方法おそらくPHPまたはjavascriptのスクリプトで、現在のYouTube URLを読み込み、チャットの埋め込みURLでビデオIDを置き換えますか? おかげ

答えて

6

あなたはこのようにPHPを使用してビデオIDを取得することができます:

<?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

あなたがIDを取得し、あなたが持っているすべてのニーズに合わせてライブストリームのデータを使用するようにYouTube Live Streaming APIを使用することができるはずです。

実際、ユースケースの一つは次のとおりです。

  • 准ビデオストリームと放送。

this pageには、「チャンネルのビデオストリームを取得する」方法に関するPHPの例があります。そのコードでは、$ streamItemはLiveStreamです。これにはライブストリームのIDが含まれており、これを活用することができます。

関連するノートでは、LiveBroadcastsLiveChatMessagesにリンクする参照snippet.liveChatIdを含む)を使用することもできます。後者は、あなたが望む任意のフォーマットのメッセージで作業することができます。おそらく、これはあなたのニーズをより良くするでしょう。サンプルコードの前のページには、「チャンネルのブロードキャストを取得する」方法の良い例もあります。

私はここにコードをコピーすることができましたが、私は最高の実例がAPIのリファレンスでよく書かれていると思います。

関連する問題