6.646 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

[code lang="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];
}

[/code]

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

[code lang="php"]
$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; ?>
[/code]

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: , ,

2.948 leídas

Acortar urls o direcciones web con php

julio 03, 08 by Gerald | Puesto en Programación

En Ribosomatic, he encontrado esta función que lleva por nombre acortaurl, cuyo fin es reducir la longitud de las urls o direcciones para evitar que el diseño de la página se vea afectado y que algunas partes de la dirección sean reemplazado por puntos suspensivos.

http://www.google.com/search?h[ ... ]afe&btnG=Search

Esto se logra con PHP y una sencilla pero poderosa función casera.

Código – Funcion acortaurl:

[php]
<?php
//funcion acortaurl
function acortarurl($url){
$longitud = strlen($url);
if($longitud > 45){
$longitud = $longitud – 30;
$parte_inicial = substr($url, 0, -$longitud);
$parte_final = substr($url, -15);
$nueva_url = $parte_inicial."[ ... ]".$parte_final;
return $nueva_url;
}else{
return $url;
}
}

$url_larga = "http://www.google.com.pe/search?hl=en&q=ribosomatic&btnG=Google+Search&meta=";
$url_corta = acortarurl($url_larga);
echo "<a href=\"$url_larga\">$url_corta</a>";
?>
[/php]

La he probado en mi localhost y va de perlas!!, me estoy animando a colgar las funciones que tengo por ahí sueltas en mis librerías propias, para que le sirvan a la comunidad.

Saludos!!

Fuente Ribosomatic.
Enlaces de Interés:

HTML Entities Encoder


Tambien te puede interesar

Tags: ,

Página 1 de 11