Como obter miniaturas de vídeos do YouTube, Vimeo e Dailymotion
Você está procurando a miniatura dos vídeos do YouTube, Vimeo e Dailymotion? Estes 3 são os sites de compartilhamento de vídeo mais populares da Internet. Cada uma dessas plataformas permite que os usuários busquem a miniatura de seus vídeos. Neste artigo, veremos como obter a miniatura usando a URL do vídeo dessas plataformas.
Ao integrar uma galeria de vídeo nos sites, você deve exibir as miniaturas dos vídeos. E então, ao clicar na miniatura, um vídeo relacionado deve ser reproduzido. Incorporar vídeos usando uma tag iframe não é recomendado. É preciso muita largura de banda de um servidor e aumenta o tamanho da página.
Vou escrever um código que obtém a miniatura do vídeo por meio de um URL de vídeo. Ao clicar nessas miniaturas, você pode reproduzir seus vídeos usando o fancybox ou qualquer outra solução personalizada de sua preferência.
Dito isso, vamos ver um por um como obter miniaturas de vídeos do YouTube, Vimeo e Dailymotion.
Obter miniatura do URL do vídeo do YouTube
Para nosso tutorial, suponho que você está passando o URL do vídeo para obter a miniatura de um vídeo. No caso do YouTube, existem vários tipos de URLs válidos disponíveis. Abaixo estão os URLs válidos do vídeo do YouTube:
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
O método a seguir extrai o ID do vídeo de qualquer um dos formatos de URL acima.
<?php
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
?>
Depois de extrair o ID do vídeo do URL, você pode obter facilmente a miniatura do vídeo usando o método abaixo:
<?php
function getYouTubeThumbnailImage($video_id) {
return "//i3.ytimg.com/vi/$video_id/hqdefault.jpg";
}
?>
Aqui, estamos obtendo a miniatura padrão com hqdefault.jpg
. Pode-se passar valores diferentes como 0.jpg
, 1.jpg
para obter tamanhos de miniatura diferentes.
Portanto, nosso código final para obter a miniatura do URL do vídeo do YouTube é:
<?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' />";
?>
Obter miniaturas dos vídeos do Vimeo e do Dailymotion
Enquanto procurava por uma solução para extrair o id de vídeo dos URLs de vídeo do Vimeo e do Dailymotion, encontrei este recurso. Usei o método deles para extrair o ID do vídeo de URLs de vídeo do Vimeo e do Dailymotion. Este método suporta todos os formatos de URL válidos de vídeos Vimeo e Dailymotion.
No caso de buscar miniaturas de vídeos do Vimeo, o código será o seguinte:
<?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' />";
?>
Para o vídeo Vimeo, podemos usar 3 valores como thumbnail_small, thumbnail_medium, thumbnail_large para obter tamanhos de miniatura pequenos, médios e grandes, respectivamente.
Finalmente, o código para obter a miniatura do vídeo do Dailymotion é o seguinte.
<?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' />";
?>
Espero que você entenda como obter as miniaturas dos vídeos do YouTube, Vimeo e Dailymotion. Se você estiver usando qualquer outro método para conseguir isso, informe-me na seção de comentários abaixo.
Artigos relacionados
- Obtenha a lista de vídeos do YouTube por palavras-chave usando a API de pesquisa do YouTube e o JavaScript
- API do YouTube – Como obter uma lista de vídeos do YouTube de seu canal
- Como usar a API do YouTube para enviar vídeo ao canal do YouTube