Obtener video de youtube, nombre, fecha y más a partir del ID del video

Supongo que últimamente no estoy escribiendo demasiado.
Si se preguntan a que se debe es que ahora estoy en una etapa en la que mezclo trabajo y estudios, y no me queda demasiado tiempo libre,
Y eso se nota en las visitas y en las ganancias :(

Aún así he querido mantener el blog vivo ya que al parecer a algunos usuarios les ha sido de utilidad la información que han ido encontrando.
Y mientras pueda, seguiré ayudando a aquellos que lo solicitan mediante comentarios ;) siempre anima a continuar el recibirlos.

Bien, al tema.
En esta ocasión traigo una función para php que nos permite obtener varios datos de un video de youtube solo conociendo su ID (código del video).

La función es de un blogger, que no recuerdo ni encuentro su blog… y que he refactorizado para darle más funcionalidades y cambiar algunas.

Para aquellos que no estéis familiarizados con el término refactorizar, se trata de reescribir un código, funcion, script que ya está escrito. Manteniendo su estructura pero modificando su funcionamiento interno.

El funcionamiento es muy simple, se le pasa un id o una url de youtube y nos devuelve el dato que le solicitemos.


$var = youtube_data('http://www.youtube.com/watch?v=7OPADWu3pYo&list=UU7H0-heDAtEJL2tJ99t7UPA&index=13&feature=plcp')

El ejemplo anterior nos devuelve el código del video: 7OPADWu3pYo

Para obtener otros datos tenemos que utilizar el segundo parámetro, los datos posible de obtener ahora son:

  • thumb
  • una pequeña imagen del video

  • hqthumb
  • una imagen del video más grande

  • embed
  • el código a insertar para ver el reproductor de youtube

  • title
  • el título del video

Algunos ejemplos


$thumb = youtube_data('7OPADWu3pYo', 'thumb'); //obtiene la imagen preview del video (la pequeña)
$title = youtube_data('7OPADWu3pYo', 'title'); //obtiene el título del video
$embed = youtube_data('7OPADWu3pYo', 'embed'); //obtiene el código para insertar el video

Estoy pensando en hacer dos cosas, la primera, agregar más parámetros y obtener más datos.
Pero de momento no lo he necesitado así que no lo he hecho.
Pero si alguien necesita algún dato más de youtube que lo pida y adaptaré la función para obtenerlo.

Lo segundo, es crear un plugin para jquery que utilice esto código.
Me parece que será genial tener un método $().getyoutube(‘id’, ‘embed’); y que nos devuelva automáticamente el código del video sin necesidad de cargar nada previamente.


#get youtube id or thumb
function youtube_data($url,$return='',$width='',$height='',$rel=0){
$urls = parse_url($url);

//url is http://youtu.be/xxxx
if($urls['host'] == 'youtu.be'){
$id = ltrim($urls['path'],'/');
}
//url is http://www.youtube.com/embed/xxxx
else if(strpos($urls['path'],'embed') == 1){
$id = end(explode('/',$urls['path']));
}
//url is xxxx only
else if(strpos($url,'/')===false){
$id = $url;
}
//http://www.youtube.com/watch?feature=player_embedded&v=m-t4pcO99gI
//url is http://www.youtube.com/watch?v=xxxx
else{
parse_str($urls['query']);
$id = $v;
}
//return embed iframe
if($return == 'embed'){
return '<iframe width="'.($width?$width:560).'" height="'.($height?$height:349).'" src="http://www.youtube.com/embed/'.$id.'?rel='.$rel.'" frameborder="0" allowfullscreen></iframe>';
}
//return normal thumb
else if($return == 'thumb'){
return 'http://img.youtube.com/vi/'.$id.'/default.jpg';
}
//return hqthumb
else if($return == 'hqthumb'){
return 'http://img.youtube.com/vi'.$id.'/hqdefault.jpg';
}
//return title
else if ($return == 'title') {
$url = "http://gdata.youtube.com/feeds/api/videos/". $id;
$doc = new DOMDocument;
$doc->load($url);
return $doc->getElementsByTagName("title")->item(0)->nodeValue;
}
// else return id
else{
return $id;
}
}


Así nos han encontrado!

  • script para recoger el title de un video youtube conociendo el id

4 Responses to Obtener video de youtube, nombre, fecha y más a partir del ID del video

  1. elias m ss dice:

    hola, me gusraria que me explicara algo, ya que soy nuevo en esto.

    yo quiero sacar solo el titulo de los videos, por favor enviame todo los paso completo para hacer eso, es decir el html o php… espero que me comprenda..
    gracias

  2. gustavo dice:

    Hola, Me gustaria saber como podria hacer para obtener solo el ID de cualquier url de youtube … Para adaptarlo a mis URLs personalizados

  3. CMNetwork dice:

    Hola me gustaria obtener el nombre, fecha, vídeo y la información del vídeo. Por ejemplo:

    example.com/?v=ID-VIDEO/

    y me aparezca la información, vídeo, fecha, etc.

    Gracias y espero que me puedas ayudar…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos necesarios están marcados *

Puedes usar las siguientes etiquetas y atributos HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">