Come ottenere l'immagine statica di un video di YouTube usando JavaScript?
Domanda
Nel video gallerys YouTube mostra le immagini dei video anziché il flash player. Se si fa clic sull'immagine, si viene reindirizzati a una pagina in cui è il lettore video flash. Voglio mostrare le prime immagini statiche.
Come posso farlo programmaticamente?
Soluzione
Per Javascript: (suppongo che tu l'abbia taggato come flash perché Youtube è un lettore video 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";
}
}
Trovato qui .
Per uscire da questa funzione, in pratica devi solo prendere il parametro v = ladlfasd e inserirlo in questo url:
http://img.youtube.com/vi/(v= parameter)/2.jpg
Dove si trova 2.jpg per i piccoli, 0.jpg per i grandi
Altri suggerimenti
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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow