BlogESfera Directorio de Blogs Hispanos - Agrega tu Blog
Sitio certificado por
Adoos
ingyenes hirdetés
petites annonces gratuites
Buscador de blog

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

8 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.

Decime que opinas

Segun Pownce, ahora...
Pownce
  • No public Pownce messages.
  • 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 Un poco de hum... Post Un poco de Pro... Post Sleipnir: Nave... Post Unit PNG Fix: ... Post Taringa! ext: ... Post MEME: Lo que s... Post Actualizacion ... Post Anoche vi Batm... Post Comet: El Ajax... Post PHP: JW FLV Pl...
    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