2009-08-05 10 views
6

वीडियो गैलरी में यूट्यूब फ़्लैश प्लेयर की बजाय वीडियो की छवियों को दिखाता है। यदि आप छवि पर क्लिक करते हैं, तो आपको फ़्लैश पृष्ठ पर एक पृष्ठ पर रीडायरेक्ट किया जाता है। मैं पहली स्थिर छवियां दिखाना चाहता हूं।जावास्क्रिप्ट का उपयोग कर यूट्यूब की वीडियो स्थैतिक छवि कैसे प्राप्त करें?

मैं प्रोग्रामेटिक तरीके से कैसे कर सकता हूं?

उत्तर

9

जावास्क्रिप्ट के लिए: (मैं यह सोचते करती हूं कि आप फ़्लैश के रूप में यह टैग किया क्योंकि यूट्यूब एक फ्लैश वीडियो प्लेयर है)

function getScreen(url, size) 
{ 
    if(url === null){ return ""; } 

    size = (size === null) ? "big" : size; 
    var vid; 
    var results; 

    results = url.match("[\\?&]v=([^&#]*)"); 

    vid = (results === null) ? url : results[1]; 

    if(size == "small"){ 
    return "http://img.youtube.com/vi/"+vid+"/2.jpg"; 
    }else { 
    return "http://img.youtube.com/vi/"+vid+"/0.jpg"; 
    } 
} 

मिले here

इस समारोह से दूर जा रहे हैं, मूल रूप से आप सिर्फ वी = ladlfasd पैरामीटर लेने के लिए और इस यूआरएल में रख करने के लिए है:

http://img.youtube.com/vi/(v= parameter)/2.jpg 

कहाँ यह छोटे के लिए 2.jpg है, बड़े

के लिए 0.jpg
+0

किसी प्लेलिस्ट के लिए छवि को पुनर्प्राप्त करने के बारे में कोई विचार? –

3
function getYoutubeThumbnail($url) 
{ 

    if(preg_match('![?&]{1}v=([^&]+)!', $url . '&', $m)) 
    { 
     $videoid = $m[1]; 
    } 
    else if(preg_match('~/v/([0-9a-z_]+)~i', $url, $m)) 
    { 
     $videoid = $m[1]; 
    } 

    $youtube_thumbnail = 'http://img.youtube.com/vi/' . $videoid . '/default.jpg'; 

    $c = curl_init(); 

    $url = trim($url); 

    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); 

    curl_setopt($c, CURLOPT_URL, $url); 

    $contents = curl_exec($c); 

    curl_close($c); 


    $feed = "http://gdata.youtube.com/feeds/api/videos/".$videoid; 

    $newInfo = trim(@file_get_contents($feed)); 

    preg_match('/<media:title(.*?)<\/media:title>/', $newInfo, $result); 

    $title = strip_tags($result[0]); 

    preg_match('/<media:keywords(.*?)<\/media:keywords>/', $newInfo, $result); 

    $desc = strip_tags(str_replace(",", "", $result[0])); 

    //embed path 
    $embed_path = "http://www.youtube.com/embed/".$videoid; 



    $youtube_info = array('videoid' => $videoid,'title' => $title, 'description' => $desc,'youtube_thumbnail' => $youtube_thumbnail,'embed_path' => $embed_path) ; 

    return $youtube_info; 

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