Usando la API de youtube en python

A la hora de programar aplicaciones, nos puede ser muy útil contar con algunas fuentes de datos interesantes. Entre esas fuentes de datos se encuentra youtube y en este artículo vamos a aprender a interactuar con youtube desde python.

Para eso, vamos a usar la API oficial que nos ofrece google conocida como gdata. Esta api es muy potente ya que no solo nos ofrece acceso a youtube, sino que nos ofrece acceso a la mayoría de servicios de google tales como picasa, google docs, google maps, google code… Puedes encontrar las apis que ofrece google aquí : http://code.google.com/more/

Instalación

Lo primero que tenemos que hacer, es instalar la API de gdata para python, que podemos encontrar aquí : http://code.google.com/p/gdata-python-client/downloads/list .

Para instalarlo en linux, tenemos que descargarnos alguna versión (yo usé la 2.0.14, pero supongo que no variará mucho según cual usemos), descomprimir el archivo en algún lugar y por último ejecutar el siguiente comando:

# ./setup.py install

Con privilegios de root. Una vez que esté instalado podemos empezar a programar.

Programación

Como ejemplo, vamos a hacer un programa que recoja algunos datos del usuario especificado por el usuario del programa. Para empezar, tenemos que crear una instancia de la clase YouTubeService de esta forma.

import gdata.youtube
import gdata.youtube.service

youtubeService = gdata.youtube.service.YouTubeService()

Una vez hemos obtenido ese objeto, podemos aclarar una cosa. En esta API, hay un elemento llamado feed, que representa un conjunto de vídeos. Existen diversas maneras de obtener feeds de vídeos, ya sean los más vistos, los vídeos de un usuario, una búsqueda… los vídeos son objetos de tipo video(increíble pero cierto) y de ellos es de donde se saca la información. Vamos a ver un ejemplo:

import gdata.youtube
import gdata.youtube.service

def informacionDeVideo(video): # Si se le suministra un objeto video mostrara por pantalla cierta informacion de este
 print "El nombre del video es: "+video.media.title.text
 print "Numero de reproducciones: ",video.statistics.view_count
 print "Etiquetas del video: "+video.media.keywords.text
 print

youtubeService = gdata.youtube.service.YouTubeService() # Se inicializa el objeto YouTubeService
feedDeVideos = youtubeService.GetMostViewedVideoFeed() # Se obtiene el feed de los videos mas vistos
for video in  feedDeVideos.entry: # Para cada video dentro del feed ...
  informacionDeVideo(video)

Si guardas el código y lo ejecutas, podréis comprobar que el vídeo más visto es el vídeo de la canción “Baby” de Justin Bieber con un porrón de visitas.

Ya hemos visto un poco de los objetos feed y video (o por lo menos sabemos que representan). Ahora vamos a ver como obtener información de los usuarios.

import gdata.youtube
import gdata.youtube.service
import sys

if len(sys.argv) != 2:
print "Lo estas usando mal, se usa : "
print "python ",sys.argv[0], " "
exit()
youtubeService = gdata.youtube.service.YouTubeService()

userEntry = youtubeService.GetYouTubeUserEntry(username=sys.argv[1]) # Se obtiene un objeto del tipo YouTubeUserEntry
print "Tiene ",userEntry.age.text, "anios" # Se saca la edad
print "Su canal tiene",userEntry.statistics.view_count," reproducciones " # Las reproducciones del canal
print "Tiene ",len(youtubeService.GetUserFavoritesFeed(sys.argv[1]).entry)," videos marcados como favoritos" # Con la funcion GetUserFavoritesFeed() se obtiene un feed de videos como el que hemos usado antes
# Por lo que se hace facil usar la opcion de favoritos

Ahí está el código final que ponemos aquí. Si hay cualquier duda podéis preguntar si queréis, y si queréis un documento más extenso y más preciso podéis ver la guía oficial (en inglés):
http://code.google.com/apis/youtube/1.0/developers_guide_python.html

Anuncios

Acerca de Braulio

"CEO" de Alfffa Solutions Ver todas las entradas de Braulio

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: