2017-06-04 7 views
11

एक चैनल के लाइव स्ट्रीम के लिए एम्बेड यूआरएल है:यूआरएल स्थायी चैट यूआरएल स्थायी के साथ कैसे एम्बेड करें?

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

और यह यूआरएल है कि मैं एम्बेड के लिए उपयोग स्ट्रीमिंग है काम करता है लेकिन वर्तमान के लिए अगर मैं इसे पर पास एम्बेड करना चाहते हैं एक यूट्यूब लाइव चैट:

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

समस्या यह है: प्रत्येक नई लाइव स्ट्रीम के लिए वीडियो आईडी बदलती है। ताकि एम्बेडेड कोड अब मान्य नहीं है और अगली स्ट्रीमिंग के लिए चैट प्रदर्शित नहीं होता है। मैं चाहता हूं कि मेरे यूट्यूब स्ट्रीमिंग के लिए एक स्थायी यूआरएल लाइव चैट वैध रूप से हर बार वीडियो आईडी बदलें। कैसे हल करें? शायद PHP या जावास्क्रिप्ट में एक स्क्रिप्ट के साथ जो वर्तमान यूट्यूब यूआरएल पढ़ता है और चैट आईडी में वीडियो आईडी को प्रतिस्थापित करता है? धन्यवाद

उत्तर

6

आप इस तरह PHP का उपयोग वीडियो आईडी मिल सकता है:

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

आप YouTube Live Streaming API का उपयोग आईडी प्राप्त करने के लिए और किसी भी जरूरत है आप के लिए लाइव स्ट्रीम डेटा का उपयोग करने में सक्षम होना चाहिए।

दरअसल, उपयोग के मामलों में से एक है:

  • एसोसिएट वीडियो धाराओं और प्रसारण।

this page पर, आपके पास "चैनल की वीडियो स्ट्रीम पुनर्प्राप्त करने" के तरीके पर एक PHP उदाहरण है। उस कोड पर, $ streamItem एक LiveStream है, जिसमें लाइव स्ट्रीम की आईडी शामिल है और आप इसका लाभ उठा सकते हैं।

संबंधित नोट पर, एपीआई आपको LiveBroadcasts के साथ काम करने की अनुमति देता है, जिसमें संदर्भ LiveChatMessages से लिंक करने के लिए संदर्भ देता है। उत्तरार्द्ध आपको किसी भी प्रारूप में संदेशों के साथ काम करने की अनुमति देगा। शायद, यह आपकी आवश्यकताओं को बेहतर तरीके से अनुरूप करेगा। उदाहरण कोड वाले पिछले पृष्ठ में "चैनल के प्रसारण पुनर्प्राप्त करने" के तरीके पर भी एक अच्छा उदाहरण है।

मैं यहां कोड कॉपी कर सकता हूं, लेकिन मुझे लगता है कि सबसे अच्छा काम करने वाला उदाहरण एपीआई के संदर्भ पर अच्छी तरह से प्रलेखित है :)

संबंधित मुद्दे