Hur man får miniatyrbild från YouTube, Vimeo och Dailymotion-videor
Vill du få miniatyrbilden av videoklippen YouTube, Vimeo och Dailymotion? Dessa 3 är de mest populära videodelningswebbplatserna på internet. Var och en av dessa plattformar tillåter användare att hämta videominiatyren av sina videor. I den här artikeln ser vi hur du får miniatyren med hjälp av video-URL: n för dessa plattformar.
När du integrerar ett videogalleri på webbplatserna bör du visa videominiatyrerna. Och sedan vid klick på miniatyren ska en relaterad video spelas upp. Bädda in videor med en iframe-tagg rekommenderas inte. Det tar mycket bandbredd för en server och ökar sidstorleken.
Jag ska skriva en kod som får miniatyren av videon via en video-URL. Om du klickar på dessa miniatyrer kan du spela upp dina videoklipp med hjälp av fancybox eller andra anpassade lösningar du föredrar.
Med detta sagt, låt oss se en efter en hur man får miniatyrer av YouTube, Vimeo och Dailymotion-videor.
Skaffa miniatyrbild från YouTube Video URL
För vår handledning antar jag att du skickar videon URL för att få miniatyren av en video. När det gäller YouTube finns det flera typer av giltiga webbadresser tillgängliga. Nedan visas de giltiga webbadresserna till YouTube-video:
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
Metoden nedan extraherar video-id från något av ovanstående URL-format.
<?php
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
?>
När du väl har extraherat video-id: t från webbadressen kan du enkelt få miniatyr av videon med hjälp av nedanstående metod:
<?php
function getYouTubeThumbnailImage($video_id) {
return "//i3.ytimg.com/vi/$video_id/hqdefault.jpg";
}
?>
Här hämtar vi standardminiatyren med hqdefault.jpg
. Man kan passera olika värden som 0.jpg
, 1.jpg
för att få olika miniatyrstorlek.
Så vår sista kod för att hämta miniatyrbild från YouTube-webbadress är:
<?php
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
function getYouTubeThumbnailImage($video_id) {
return "https://i3.ytimg.com/vi/$video_id/hqdefault.jpg"; //pass 0,1,2,3 for different sizes like 0.jpg, 1.jpg
}
$video_url = 'YOUTUBE_VIDEO_URL';
$video_id = extractVideoID($video_url);
$thumbnail = getYouTubeThumbnailImage($video_id);
echo "<img src='$thumbnail' />";
?>
Få miniatyrbild från Vimeo och Dailymotion Videos
När jag letade efter lösning för att extrahera video-id från Vimeo och Dailymotion-webbadresser hittade jag den här resursen. Jag använde deras metod för att extrahera video-id från video-URL: er från Vimeo och Dailymotion. Denna metod stöder alla giltiga URL-format för Vimeo och Dailymotion-videor.
Om du hämtar miniatyr av Vimeo-videor kommer koden att vara följande:
<?php
function getVimeoId($url)
{
if (preg_match('#(?:https?://)?(?:www.)?(?:player.)?vimeo.com/(?:[a-z]*/)*([0-9]{6,11})[?]?.*#', $url, $m)) {
return $m[1];
}
return false;
}
function getVimeoThumb($id)
{
$arr_vimeo = unserialize(file_get_contents("https://vimeo.com/api/v2/video/$id.php"));
return $arr_vimeo[0]['thumbnail_small']; // returns small thumbnail
// return $arr_vimeo[0]['thumbnail_medium']; // returns medium thumbnail
// return $arr_vimeo[0]['thumbnail_large']; // returns large thumbnail
}
$video_url = 'VIMEO_VIDEO_URL';
$video_id = getVimeoId($video_url);
$thumbnail = getVimeoThumb($video_id);
echo "<img src='$thumbnail' />";
?>
För Vimeo-video kan vi använda tre värden som thumbnail_small, thumbnail_medium, thumbnail_large för att få små, medelstora och stora storlekar av miniatyrbild.
Slutligen är koden för att få miniatyren av Dailymotion-videon följande.
<?php
function getDailyMotionId($url)
{
if (preg_match('!^.+dailymotion.com/(video|hub)/([^_]+)[^#]*(#video=([^_&]+))?|(dai.ly/([^_]+))!', $url, $m)) {
if (isset($m[6])) {
return $m[6];
}
if (isset($m[4])) {
return $m[4];
}
return $m[2];
}
return false;
}
function getDailymotionThumb($id) {
$thumbnail_large_url = 'https://api.dailymotion.com/video/'.$id.'?fields=thumbnail_360_url'; //pass thumbnail_360_url, thumbnail_480_url, thumbnail_720_url, etc. for different sizes
$json_thumbnail = file_get_contents($thumbnail_large_url);
$arr_dailymotion = json_decode($json_thumbnail, TRUE);
$thumb = $arr_dailymotion['thumbnail_360_url'];
return $thumb;
}
$video_url = 'DAILYMOTION_VIDEO_URL';
$video_id = getDailyMotionId($video_url);
$thumbnail = getDailymotionThumb($video_id);
echo "<img src='$thumbnail' />";
?>
Jag hoppas att du förstår hur du får miniatyren av YouTube, Vimeo och Dailymotion Videos. Om du använder någon annan metod för att uppnå detta, vänligen meddela mig i kommentarsektionen nedan.
relaterade artiklar
- Skaffa YouTube-videolista efter nyckelord med YouTube Search API och JavaScript
- YouTube API – Hur får jag en lista över YouTube-videor från din kanal
- Hur man använder YouTube API för att ladda upp video på YouTube-kanal