كيفية الحصول على يوتيوب فيديو صورة ثابتة باستخدام جافا سكريبت؟
سؤال
في غلرس فيديو يظهر يوتيوب صور الفيديو بدلا من مشغل الفلاش. إذا كنت انقر على الصورة، تتم إعادة توجيهك إلى صفحة حيث هو لاعب فلاش فيديو. أريد أن تظهر أول الصور الثابتة.
وكيف يمكنني أن أفعل ذلك برمجيا؟
المحلول
لجافا سكريبت: (أفترض أنك الموسومة بأنها فلاش ليوتيوب لاعب فلاش فيديو)
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";
}
}
وجدت rel="noreferrer"> href="http://jquery-howto.blogspot.com/2009/02/how-to-get-youtube-video-screenshot.html" .
والخروج من هذه الوظيفة، وأساسا لديك فقط لاتخاذ ت = المعلمة ladlfasd ووضعها في هذا الرابط:
http://img.youtube.com/vi/(v= parameter)/2.jpg
وأين هو 2.jpg وللمشاريع الصغيرة، 0.JPG لكبير
نصائح أخرى
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;
}
لا تنتمي إلى StackOverflow