BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog
Sitio certificado por
Adoos
ingyenes hirdetés
petites annonces gratuites
Buscador de blog
Neurona Rabiosa | Rompecabezas, Acertijos, Enigmas
Floggers vs Emos | Danos tu opinion al respecto

Tutorial: Clase para manejo de la API de YouTube

Fecha Junio 20th, 2008  Categoria PHP, YouTube, iGeek Codes

Para terminar esta semana de tutoriales y ejemplos, vamos con algo bastante bueno e interesante: La nueva API de YouTube. Ahora, aparte de poder ver y bajar videos, nos da la posibilidad de subirlos a la pagina desde nuestras propias webs.
Tratando de simplificar toda la chorreada de codigo que esto necesita, es que se han creado clases para su manejo, y una de ellas es phpTube, de Michael Kamleitner (michael.kamleitner@gmail.com), y es apartir de esta clase y un poco mas de codigo que he desarrollado mi propia clase:

iGeekTube:
Esta clase es bastante sonza de usar y te permite subir videos a tu cuenta en YouTube(gracias a phpTube), bajar videos, conseguir la thumbail de un video y reproducir cualquier video en un reproductor personalizado.

Veamos parte por parte como funciona esta clase:

1 - Subir un archivo:

PHP:
  1. // Incluimos la clase
  2. include("igeek.youtube.class.php");
  3. // Creamos el objeto
  4. // los parametros son $username, $password y $debug(en false)
  5. // el username y el password son de tu cuenta de YouTube
  6. $igTube=new iGeekTube('micuenta','mipassword');
  7.  
  8. // Antes de subir, el video debe encontrarse en el servidor, por lo que debemos haber hecho un upload previo a nuestro server, y ahora:
  9. $nuevo_video=$igTube->upload('nuestrovideo.avi','titulodelvideo','tag1, tag2, tag3','descripcion del video');
  10. //Y listo!
  11. //$nuevo_video es la clave del video recien subido
  12. ?>

Es muy facil no? lo unico es el tiempo de espera que nos da YouTube mientras convierte el video. Tambien hay un par de parametros extras que son opcionales:

  • Categoria del video, en numeros:
    • 2: Autos & Vehicles
    • 23: Comedy
    • 24: Entertainment
    • 1: Film & Animation
    • 20: Gadgets & Games
    • 26: Howto & DIY
    • 10: Music
    • 25: News & Politics
    • 15: Pets & Animals
    • 17: Sports
    • 19: Travel & Places
  • Lenguaje:
    • EN : Ingles
    • ES: Español
    • JP: Japanese
    • DE: German
    • CN: Chinese
    • FR: French
  • Si es publico: true o false

Eso seria todo para subir un archivo.

2- Descargar un video:

PHP:
  1. <?php
  2. // Incluimos la clase
  3. include("igeek.youtube.class.php");
  4. // Creamos el objeto
  5. // Esta vez sin parametros, ya que no vamos  a subir nada
  6. $igTube=new iGeekTube();
  7. $link_de_descarga=$igTube->getVideoPath('4S2nJ9TthQk');
  8. // Ahi conseguimos el link de descarga del video 'Fear is our tradition' de Ignite :)
  9. // Listo
  10. ?>

DEMASIADO sencillo no? ese es el objetivo de la clase.

3- Reproducir el video:

PHP:
  1. <?php
  2. // Incluimos la clase
  3. include("igeek.youtube.class.php");
  4. // Creamos el objeto
  5. // Esta vez sin parametros, ya que no vamos  a subir nada
  6. $igTube=new iGeekTube();
  7. ?>

Ahi paramos un cachito asi les explico las dos opciones que tiene el metodo para reproducir: "getPlayer". Primero, si queremos utilizar un player personalizado utilizamos primero el metodo "setPlayer" que recibe como parametro una string con la direccion del swf:

PHP:
  1. $igTube->setPlayer("player.swf");

Lo del player personalizado es para los que son programadores Flash o tienen algun amigo/compañero que les arme el player (mas adelante publicare uno de aqui); todo esto por que tiene que recibir dos parametros: vid y t, y con estos parametros formar la url del video, lo que pasa es que flash da error si se manda como parametro una URL con "?", por eso es que dividimos los parametros en 2 y que el player los junte, algo asi seria:

PHP:
  1. $path="http://www.youtube.com/get_video.php&amp;video_id=" . $vid . "&amp;t=" . $t ."&amp;.flv"

Y la llamada final seria:

PHP:
  1. <?php
  2. $igTube->setPlayer('./player.swf');
  3. echo $igTube->getPlayer('4S2nJ9TthQk','525','432');
  4. // Los parametros son clave del video, ancho y alto
  5. ?>

y listo.

En cambio, si queremos la cosa facil, y usar el player de YouTube, hacemos lo siguiente:

PHP:
  1. echo $igTube->getPlayer('4S2nJ9TthQk','525','432',false);

El ultimo parametro diferencia si usar el player o no.

4- Conseguir la thumb de un video:

PHP:
  1. echo $igTube->getThumb('4S2nJ9TthQk',true,'Ignite - Fear is our tradition',90,70, ' border="0" ');

Solo el primer parametro es obligatorio, si no se declaran los otros, te devuelve la url de la imagen. El segundo parametro es si te devuelve todo en el tag "img", el tercero es el title/alt de la imagen, luego el ancho y el alto, y por ultimo, alguna propiedad extra que quieras dentro de la imagen.

Esas serian sus funciones basicas, espero que les sirva para algun proyectito. Les voy diciendo lo mismo que con los otros codigos, si quieren meter mano, solo avisen para saber que alguien la uso, pero no pierdan cuidado :).

IMPORTANTE: La clase una PEAR y la extension CURL, por lo que deben estar habilitadas en su server. lo de CURL es sencillo, pero yo he tenido un par de problemas en algunos server con el include_path de PEAR, si les da error por que no encuentra el archivo PEAR.php,deben averiguar cual es su include_path en su php.ini y configurarlo EN LA LLAMADA AL OBJETO, mediante la funcion "ini_set".

NOTA: Para incluir el flash y pasarle los parametros, uso el "swfobject.js", pueden cambiar el codigo para que lo haga manualmente si lo desean.

Para terminar, les dejo un pequeño ejemplo para que bajen (no he conseguido todavia que me habiliten CURL :P):
DESCARGA

9 Comentarios to
“Tutorial: Clase para manejo de la API de YouTube”

Tutorial: Clase para manejo de la API de YouTube Dijo:

[...] Tutorial: Clase para manejo de la API de YouTubeigeek.com.ar/index.php/2008/06/20/tutorial-clase-para-manejo… por wGeek hace pocos segundos [...]

IVAN Dijo:

Muy bueno y sencillo Gracias

Luis Dijo:

perfecto, pero de donde bajo el igeek.youtube.class.php??

Luis Dijo:

perdon, no dije nada :P

Homer0 Dijo:

jaja, cualquier cosa avisa :)

Hernan Dijo:

Che, me ayudas con el tema de Pear y Curl ,
ponele : lanzo el script y me da errores porque no encuentra client.php y los demas ,
voy a server pongo :
yum install php-curl
yum install php-pear
y sigue con lo mismo
que me falta?

iGeek » PHP: JW FLV Player con videos de YouTube Dijo:

[...] Tutorial: Clase para manejo de la API de YouTube [...]

nokiz Dijo:

Hola, queria felicitarte por que estoy utilizando tu clase y funcionaba perfectamente hasta hace unos días. El problema parece ser que YouTube ha cambiado un poco su API y la variable $nuevo_video que deberia de devolver el id del video, ahora devuelve “L PUBLIC”. Hoy investigando he encontrado que la clase PHPTube se ha actualizado para resolver esto.

Toca nos toca investigar un poco más ;)

Gracias por tu trabajo.

Diego Dijo:

excelente info, gracias, me viene bien ahora que estoy en un proyecto explotando youtube… muy bien explicado.

Decime que opinas

Segun Twitter...
Twitter
Warning: file_get_contents(http://twitter.com/statuses/user_timeline/homer0.rss) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in /var/www/virtual/igeek.com.ar/htdocs/wp-content/themes/igeek/twitter.php on line 42


Subscribite al Feed
RSS Feed Agregar a del.icio.us Agregar a Technorati Agregar a StumbleUpon Agregar a Digg
Geek Readers
Control del Blog

Ultimos Posts

Post 10 Imagenes mo... Post Forma correcta... Post Humor: Lo que ... Post Justifico mi r... Post Humor para pro... Post Mi bloqueo a I... Post Clase PHP para... Post Jaxer RC 1.0 Post Que opinan sob... Post NotasWeb: Una ...
Cronologia

2008 2007
Colabora con mis proyectos
1 Centavo hace la
diferencia
Proyectos

Proximamente!

Powered by
PHP xHTML Get Firefox
MySQL CSS Wordpress

Esta obra está licenciada bajo una
Licencia Creative Commons
Atribución-No Comercial 2.5 Argentina
Blog potenciado por
Wordpress & nBlak Studios

RSS | Legal | Contactar