Cómo obtener miniaturas de videos de YouTube, Vimeo y Dailymotion
¿Está buscando obtener la miniatura de los videos de YouTube, Vimeo y Dailymotion? Estos 3 son los sitios web para compartir videos más populares en Internet. Cada una de estas plataformas permite a los usuarios obtener la miniatura del video de sus videos. En este artículo, vemos cómo obtener la miniatura usando la URL del video de estas plataformas.
Cuando integra una galería de videos en los sitios web, debe mostrar las miniaturas de los videos. Y luego, al hacer clic en la miniatura, debería reproducirse un video relacionado. No se recomienda incrustar videos con una etiqueta iframe. Se necesita mucho ancho de banda de un servidor y aumenta el tamaño de la página.
Voy a escribir un código que obtenga la miniatura del video a través de la URL de un video. Al hacer clic en estas miniaturas, puede reproducir sus videos usando el fancybox o cualquier otra solución personalizada que prefiera.
Dicho esto, veamos uno por uno cómo obtener miniaturas de videos de YouTube, Vimeo y Dailymotion.
Obtener miniatura de la URL del video de YouTube
Para nuestro tutorial, supongo que está pasando la URL del video para obtener la miniatura de un video. En el caso de YouTube, existen varios tipos de URL válidas disponibles. A continuación se muestran las URL válidas del video de YouTube:
- https://youtu.be/VIDEO_ID
- https://www.youtube.com/embed/VIDEO_ID
- https://www.youtube.com/watch?v=VIDEO_ID
El siguiente método extrae la identificación del video de cualquiera de los formatos de URL anteriores.
<?php
function extractVideoID($url){
$regExp = "/^.*((youtu.be/)|(v/)|(/u/w/)|(embed/)|(watch?))??v?=?([^#&?]*).*/";
preg_match($regExp, $url, $video);
return $video[7];
}
?>
Una vez que extrajo la identificación del video de la URL, puede obtener fácilmente una miniatura del video usando el siguiente método:
<?php
function getYouTubeThumbnailImage($video_id) {
return "//i3.ytimg.com/vi/$video_id/hqdefault.jpg";
}
?>
Aquí, obtenemos la miniatura predeterminada con hqdefault.jpg
. Se pueden pasar diferentes valores como 0.jpg
, 1.jpg
para obtener diferentes tamaños de miniatura.
Entonces, nuestro código final para obtener la miniatura de la URL del video de YouTube es:
<?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' />";
?>
Obtener miniaturas de los videos de Vimeo y Dailymotion
Mientras buscaba una solución para extraer la identificación de video de las URL de video de Vimeo y Dailymotion, encontré este recurso. Usé su método para extraer la identificación de video de las URL de video de Vimeo y Dailymotion. Este método admite todos los formatos de URL válidos de los videos de Vimeo y Dailymotion.
En caso de obtener miniaturas de videos de Vimeo, el código será el siguiente:
<?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 los videos de Vimeo, podemos usar 3 valores como thumbnail_small, thumbnail_medium, thumbnail_large para obtener tamaños de miniatura pequeños, medianos y grandes respectivamente.
Finalmente, el código para obtener la miniatura del video de Dailymotion es el siguiente.
<?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 comprenda cómo obtener la miniatura de los videos de YouTube, Vimeo y Dailymotion. Si está utilizando cualquier otro método para lograr esto, hágamelo saber en la sección de comentarios a continuación.
Artículos relacionados
- Obtenga la lista de videos de YouTube por palabras clave usando la API de búsqueda de YouTube y JavaScript
- API de YouTube: cómo obtener una lista de videos de YouTube de su canal
- Cómo usar la API de YouTube para cargar videos en el canal de YouTube