jueves, 9 de abril de 2015

Buscador de Youtube

Después de la Semana Santa somos muchos los que buceamos por Youtube en busca de vídeos para revivir los momentos vividos durante esa semana tan especial.

Me pregunté de que hermandad habría más vídeos y que canal habría contribuido más. Para ello realicé el siguiente programa en Python.



#!/usr/bin/env python
# -*- coding: utf-8 -*-

#
# Programa para hacer busquedas en Youtube
# 09/04/2015
# by @santacenero
#

from apiclient.discovery import build
import operator

devKey = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
api_name = "youtube"
youtube_api_version = "v3"


def youtubeSearch(query, token, parte):
    youtube = build(api_name,
                    youtube_api_version,
                    developerKey=devKey)

    search_response = youtube.search().list(
        maxResults=10,
        part=parte,
        q=query,
        order="date",
        pageToken = token,
        publishedAfter="2015-03-27T00:00:00Z",
    ).execute()

    return search_response


canales = {}
herm = ['Borriquilla','Santa Cena','Oración','Humildad','Via Crucis','Estudiantes','Prendimiento','Rescate','Columna','Nazareno','Expiración','Descendimiento','Santo Entierro','Resucitado']
consulta = "allintitle: %H% Linares"
resultados = []
for h in herm:
    fila = []
    q = consulta.replace("%H%",h)
    result = youtubeSearch(q, "", "id")
    fila.append(result["pageInfo"]["totalResults"])
    fila.append(str(h) + " Linares")
    resultados.append(fila)


for h in herm:
    fila = []
    q = consulta.replace("%H%",h)

    conta = 1
    pageToken = ""
    result = youtubeSearch(q, pageToken, "snippet")
    for i in result["items"]:
        key = i["snippet"]["channelTitle"]
        conta = conta + 1
        if key <> "":
            if key in canales:
                canales[key] += 1
            else:
                canales[key] = 1
    try:
        pageToken = result["nextPageToken"]
    except:
        pageToken = ""


    while pageToken <> "":
        result = youtubeSearch(q, pageToken, "snippet")
        for i in result["items"]:
            key = i["snippet"]["channelTitle"]
            conta = conta + 1
            if key <> "":
                if key in canales:
                    canales[key] += 1
                else:
                    canales[key] = 1
        try:
            pageToken = result["nextPageToken"]
        except:
            pageToken = ""


print "#####################################################"
print "VIDEOS"
print "#####################################################"
resultados.sort(key=lambda x:x[0], reverse=True)
for r in resultados:
    print str(r[1]).decode('utf8') + ";" + str(r[0])


print "#####################################################"
print "CANALES"
print "#####################################################"
sorted_canales = sorted(canales.items(), key=operator.itemgetter(1), reverse=True)
for c in sorted_canales:
    print str(c[0]) + ";" + str(c[1])



Los resultados que arroja son los indicados en las siguientes tablas. Seguramente habrá muchos más vídeos que no hayan salido por no cumplir el criterio de búsqueda, pero esto puede dar una idea sobre que hermandad tiene más tirón o es más atractiva al vídeo-aficionado. También podemos ver los canales más activos en relación a la Semana Santa de Linares.




Posted on jueves, abril 09, 2015 | Categories: