2011-01-28 15 views
9

प्रोग्रामिंग रूप से यूट्यूब में होस्ट किए गए वीडियो के लिए एम्बेड HTML कोड कैसे प्राप्त करें। जावा एपीआई क्या उपलब्ध हैयूट्यूब प्रोग्रामेटिक रूप से होस्ट किए गए वीडियो के लिए एम्बेड एचटीएमएल कोड कैसे प्राप्त करें

उत्तर

7

मान लें कि आपके पास वीडियो का यूआरएल है, यह एक उत्पन्न करने के लिए काफी सरल है। आपको यूआरएल के अंत की आवश्यकता है (/घड़ी के बाद भाग? V =, चलिए इसे आईडी पर कॉल करें)। iframe एम्बेड HTML बनाने के लिए, बस उपयुक्त जगह में रखें (src विशेषता में, ब्रैकेट शामिल न करें):

<iframe title="YouTube video player" class="youtube-player" type="text/html" width="640" 
height="390" src="http://www.youtube.com/embed/{ID}" frameborder="0" 
allowFullScreen></iframe> 

तरीके URL से वी पैरामीटर प्राप्त करने के एक जोड़े हैं। एक नियमित अभिव्यक्ति काम करेगी।

+1

ऊपर कार्यप्रणाली शांत लगता है, लेकिन हम इस तकनीक पर भरोसा ग्रहण करने के लिए है कि कर सकते हैं यह प्रारूप वाईआई यूट्यूब द्वारा आगे बढ़ने के लिए नहीं बदला जाएगा। नोट: मैं डेटाबेस में इस आईडी को स्टोर करने और पूरे HTML को संग्रहीत करने के बजाय इस HTML कोड का निर्माण करने की योजना बना रहा हूं। क्या यह सलाह दी जाती है? – Jason

+3

निश्चित रूप से, मैंने इसे पहले उत्पादन साइटों पर किया है। मैंने वास्तव में ईबेड एचटीएमएल की पुरानी शैली का उपयोग किया, लेकिन यह अभी भी काम करता है भले ही यह नया आईफ्रेम एम्बेड अब पसंद किया गया हो। वर्तमान में सभी एम्बेडेड वीडियो के साथ संगतता बनाए रखने में Google की बड़ी रुचि है, इसलिए आपके पास चिंता करने की कोई बात नहीं है। – probabilityzero

+1

यूट्यूब ने इस विधि का लंबे समय से उपयोग किया है और इस तरह से उद्देश्य पर इसका उपयोग करने का समर्थन करता है .. जैसा कि कहा गया है। –

12

YouTube Data API का उपयोग करें (पूर्व निर्मित GData client libraries है, या आप HTTP/XML सामान स्वयं कर सकते हैं)।

<media:content/> प्रविष्टियों में से एक में एम्बेड करने योग्य एसडब्ल्यूएफ के लिए एक यूआरएल होगा, अगर वीडियो एम्बेड करने योग्य है।

0

हालांकि स्वीकार्य उत्तर काम करता है, यदि आप प्रोग्रामेटिक रूप से ऐसा करना चाहते हैं तो आपको अपने वीडियो के इष्टतम आईफ्रेम आयाम उत्पन्न करने के लिए सही पहलू अनुपात की आवश्यकता है। मैंने निम्नलिखित php फ़ंक्शन लिखा है जो आपके लिए फ्लाई पर एक लिंक उत्पन्न कर सकता है। यह किसी भी YouTube वीडियो का लिंक के बारे में जानकारी प्राप्त करने के लिए पार्टी उपयोगिता youtube-dl का उपयोग करता है, तो आप यह सुनिश्चित करें कि इंस्टॉल किए हुए हैं

function getYoutubeEmbed($link, $size = [], $options = [], $privacy = false) { 

    $options += [ 
     'rel'  => true, // Show suggested videos when the video finishes. 
     'controls' => true, // Show player controls. 
     'showinfo' => true, // Show video title and player actions. 
    ]; 

    $json = json_decode(exec('youtube-dl -j --no-warnings ' . $link . ' 2>/dev/null')); 
    if ($json && !empty($id = $json->id) && !empty($width = $json->width) && !empty($height = $json->height)) { 

     $args = []; 
     foreach ($options as $option => $value) { 
      if (!$value) { 
       $args[] = $option . '=0'; 
      } 
     } 

     if ($size) { 
      if (!empty($size['width']) && !empty($size['height'])) { 
       $width = $size['width']; 
       $height = $size['height']; 
      } else if (!empty($size['width'])) { 
       $height = ceil(($height * $size['width'])/$width); 
       $width = $size['width']; 
      } else if (!empty($size['height'])) { 
       $width = ceil(($width * $size['height'])/$height); 
       $height = $size['height']; 
      } 
     } 

     $url = ($privacy ? 'www.youtube-nocookie.com/embed/' : 'www.youtube.com/embed/') . $id . ($args ? '?' . implode('&amp;',$args) : ''); 
     $iframe = '<iframe width="' . $width . '" height="' . $height . '" src="//' . $url . '" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>'; 
     return $iframe; 
    } else { 
     return false; 
    } 
} 

समारोह (apt-get install youtube-dl Ubuntu या अन्य डेबियन जायके पर काम करना चाहिए) बनाने की आवश्यकता होगी काफी आत्म है स्पष्टीकरण लेकिन यहां ब्रेकडाउन है:

  • कम से कम आपको पहले तर्क के लिए एक लिंक प्रदान करने की आवश्यकता है।
  • दूसरा तर्क चौड़ाई, ऊंचाई या दोनों की एक सरणी है। यदि आप केवल एक निर्दिष्ट करते हैं तो यह डिफ़ॉल्ट पहलू अनुपात को बनाए रखेगा और आपके लिए अन्य आयाम की गणना करेगा (इस प्रकार मैं इसे आम तौर पर उपयोग करता हूं)।
  • तीसरा तर्क तर्कों का एक वैकल्पिक सरणी है जो फ़ंक्शन में स्वयं दस्तावेज़ित होते हैं।

गोपनीयता-उन्नत मोड सक्षम करें:

  • FOURT 'गोपनीयता' के लिए एक वैकल्पिक बूलियन तर्क जो के रूप में समझाया जाता है। जब आप गोपनीयता-एन्हांस्ड मोड चालू करते हैं, तो YouTube आपकी वेबसाइट पर आगंतुकों के बारे में जानकारी संग्रहीत नहीं करेगा जबतक कि वे वीडियो नहीं चलाते।

  • प्रयोग उदाहरण:

    $link = 'https://www.youtube.com/watch?v=adAqQct3vRI'; 
    echo getYoutubeEmbed($link, ['width' => 560], ['rel' => false]); 
    

    आउटपुट:

    <iframe width="560" height="315" src="//www.youtube.com/embed/605gdJGdaPE?rel=0" frameborder="0" allow="autoplay; encrypted-media" allowfullscreen></iframe>

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