Comment obtenir une image statique vidéo de youtube en utilisant javascript?
Question
Dans les galeries vidéo, YouTube affiche les images des vidéos au lieu du lecteur flash. Si vous cliquez sur l'image, vous êtes redirigé vers une page où se trouve le lecteur vidéo flash. Je veux montrer les premières images statiques.
Comment puis-je faire cela par programmation?
La solution
Pour Javascript: (je suppose que vous l'avez étiqueté en tant que flash, car Youtube est un lecteur vidéo 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";
}
}
ici trouvé .
Pour sortir de cette fonction, il suffit de prendre le paramètre v = ladlfasd et de le mettre dans cette URL:
http://img.youtube.com/vi/(v= parameter)/2.jpg
Où il est 2.jpg pour les petits, 0.jpg pour les grands
Autres conseils
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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow