:::: MENU ::::

Obtener thumbnails de los videos de Youtube

Al crear webs que muestren vídeos de Youtube surge la necesidad de mostrar las imágenes del vídeos, esto para los usuarios que no tienen flash o para dispositivos móviles. Obtener estas imágenes es muy sencillo, solo hace falta tener el identificador del vídeo.

Obtener la ruta de las Imágenes

La ruta de las imágenes de los vídeos están basadas en el identificador del video que lo representamos como ID en nuestros ejemplos.

La imagen utilizada por defecto utilizada por Youtube es:

http://img.youtube.com/vi/ID/default.jpg

Además se pueden obtener 4 imágenes adicionales, donde la primera es en alta calidad (480×360 pixels) y las siguientes en baja calidad (120×90 pixels).


http://img.youtube.com/vi/ID/0.jpg


http://img.youtube.com/vi/ID/1.jpg


http://img.youtube.com/vi/ID/2.jpg


http://img.youtube.com/vi/ID/3.jpg

Obtener las imágenes de Forma Manual

Lo primero que se necesita es el identificador del video, para ello nos fijamos en el URL del vídeo que deseamos e identificamos el parámetro GET con nombre v.

http://www.youtube.com/watch?v=aDaOgu2CQtI

En el URL de ejemplo tendríamos el identificador del video: aDaOgu2CQtI. Luego de ello si deseamos mostrar la imágen por defecto tendríamos:

<img src="http://img.youtube.com/vi/aDaOgu2CQtI/default.jpg" />

Obtener las Imágenes con PHP

Lo que necesitamos en este caso es crear una función que devuelva el identificador del vídeo para posteriormente utilizarlo en la creación del URL de la imagen. Entonces creamos una función llamada getYoutubeID que parsea el URL ingresado y obtiene el Identificador y si la ruta es invalida devuelve una cadena vacía.

function getYoutubeID($url) {
	$tube = parse_url($url);
	if ($tube["path"] == "/watch") {
		parse_str($tube["query"], $query);
		$id = $query["v"];
	} else {
		$id = "";	
	}
	return $id;
}

Finalmente podemos mostrar el thumbnail del video en alta calidad de la siguiente forma:

<?php $url = "http://www.youtube.com/watch?v=aDaOgu2CQtI"; ?>
<img src="http://img.youtube.com/vi/<?php echo getYoutubeID($url); ?>/0.jpg" />

Para finalizar he creado una página de ejemplo: PHP Youtube Image donde pueden ingresar el URL del vídeo y visualizar todas las imágenes disponibles. Tambíen les dejo el código fuente de este ejemplo para que lo pueden utilizar libremente.


9 Comentarios

  • Nico |

    Genial, muchas gracias por compartir esto, me ha sido de suma utilidad. ¡Gracias otra vez!

  • Andreu |

    Muy bueno! Hace un tiempo hice algo similar para un reproductor de youtube integrado en Moodle como plugin, estaba buscando para hacer algo similar porque ya no me acordaba como iba, gracias!

  • Samir |

    Esta muy bueno el tutorial, pero quizas se podrá hacer lo mismo con una imagen grande que al subir al servidor se genere una imagen Thumbnails espero me puedan ayudar tambien le llaman redimensionar imagenes en php, creo…

Publica tu comentario

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.