Как получить статическое изображение YouTube с использованием JavaScript? - PullRequest
6 голосов
/ 05 августа 2009

В видео галереях YouTube показывает изображения видео вместо флеш-плеера. Если вы нажмете на изображение, вы будете перенаправлены на страницу, где находится Flash Video Player. Я хочу показать первые статические изображения.

Как я могу сделать это программно?

Ответы [ 2 ]

9 голосов
/ 05 августа 2009

Для Javascript: (Полагаю, вы отметили его как flash, потому что Youtube - это flash-проигрыватель видео)

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";
  }
}

Найдено здесь .

Выходя из этой функции, в основном вам просто нужно взять параметр v = ladlfasd и поместить его в этот URL:

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

Где это 2.jpg для маленьких, 0.jpg для больших

3 голосов
/ 29 июня 2011
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;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...