2009-08-05 2 views
6

동영상 갤러리에서 YouTube는 플래시 플레이어 대신 동영상의 이미지를 보여줍니다. 이미지를 클릭하면 플래시 비디오 플레이어가있는 페이지로 리디렉션됩니다. 첫 번째 정적 이미지를 보여주고 싶습니다.javascript를 사용하여 youtube의 비디오 정적 이미지를 얻는 방법?

프로그래밍 방식으로 어떻게 할 수 있습니까?

자바 스크립트를

답변

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 발견. 그것은 큰

에 대한 0.jpg, 작은을 위해 2.JPG됩니다

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

을 : 기본적으로 그냥 V = ladlfasd 매개 변수를 사용하고이 URL에 넣어 가지고,이 기능이 떨어져가는

+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; 

} 
관련 문제