4.289 leídas

Extraer el ID de los videos de youtube

octubre 05, 11 by Gerald | Puesto en Programación, Wordpress

Últimamente vengo trabajando con WordPress todos los días para proyectos de varios clientes en la empresa donde trabajo. Había una categoría llamada “Vídeos” y en ella tenía varias entradas con vídeos de youtube los cuales yo quería extraer el ID de cada vídeo y mostrarlo como miniatura de cada entrada.

El reto era extraer el ID y pintar su miniatura. Copia el siguiente código y pegalo en functions.php

function get_youtube_videos() {
global $post; 
$string = $post->post_content;
$ids = array();

//buscamos todas las urls
//http://forums.digitalpoint.com/showthread.php?t=216299
preg_match_all('/(http|https)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/', $string, $links);

foreach ($links[0] as $link)
 {

 //http://stackoverflow.com/questions/2936467/parse-youtube-video-id-using-preg-match
 if (preg_match('%(?:youtube\.com/(?:[^/]+/.+/|(?:v|e(?:mbed)?)/|.*[?&]v=)|youtu\.be/)([^"&?/ ]{11})%i', $link, $match))
 {
 $ids[] = $match[1];
 }
 }

return $ids[0];
 }

Youtube por defecto crea por cada video que subas 4 thumbnails (4 imágenes) para extraerla tan solo necesitas cambiar la siguiente url:

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

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

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

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

Vamos a usar este video como ejemplo:

su id sería entonces sU-getS3nJ8

y por lo tanto su imagen sería:

http://img.youtube.com/vi/sU-getS3nJ8/default.jpg

Luego para mostrarlo invoco un query personalizado

$my_query = new WP_Query('category_name=Videos&posts_per_page=1'); 
while ( $my_query->have_posts() ) : $my_query->the_post(); setup_postdata($post);
?>
<a class="miniatura" title="<?php the_title_attribute(); ?>" href="<?php the_permalink() ?>" rel="bookmark"><img src="http://img.youtube.com/vi/<?php echo get_youtube_videos(); ?>/default.jpg" alt="" /></a>

<?php endwhile; ?>

Esta función puede ser usada también en cualquier sitio, no necesariamente se debe estar usando wordpress para sacar provecho de esta maravilla de función que de seguro te servirá.

Saludos

[Fuentes revisadas: Digital Point | Stackoverflow]


Tambien te puede interesar

Tags: , ,

This entry no have comments... but you can be first.

Leave a Reply