TED Talks, descargar videos y subtitulos de las charlas

TED logo

 

Actualizacion:

A partir de ahora la descarga del código se hará a través de mi repositorio de bickbucket, para así siempre poder bajarse la última versión actualizada (cambios, corrección errores, ...)


Como introducción, para aquellos que aun no conozcan TED (Technology, Enternaiment, Design)  y sus famosas charlas, TED Talks, podría resumirlo como algo así como la versión en vídeo de las revistas de "divulgación científica y tecnológica" (acogiendo bajo esta denominación desde las más banales a las mas prestigiosas) que todos conocemos como Muy Interesante, Investigación y Ciencia, Geo, Quo, National Geographic, Popular Science, Nature, Science, Lancet,  etc... con la ventaja de la escasa distorsión del mensaje y lo conciso del mismo. Esto se debe a que no tenemos que pasar por el filtro del periodista (cuando no es un paper), es el propio interesado quien nos relata sus ideas personalmente y que la gran mayoría de las charlas esta sometida a un tiempo limite de 18 minutos, ya que es el tiempo máximo que se ha calculado que podemos estar centrados en un solo asunto sin perder el interés o la atención. Evidentemente no son comparables a un articulo amplio, detallado y bien redactado o a un buen documental, ni tampoco lo pretenden. No se trata de profundizar en los temas, se trata de que el ponente consiga transmitirte sus ideas, su entusiasmo y la trascendencia de las mismas, y en la mayoría de los casos lo consiguen, y algunas de estas charlas son de una calidad y de una trascendencia tales, que deberían tener lugar también en los medios tradicionales (TV). La calidad de estas charlas es tal que es difícil no quedarte impresionado (cuando no deslumbrado) al final de las mismas y contagiado del entusiasmo de los ponentes, la apertura de miras, conocimiento y humildad que te proporcionan (amen de ayudarte a creer un poquito más en la humanidad) no tiene parangón actualmente. Desde la serie Cosmos de Carl Sagan, no he encontrado nada parecido que me invitara tanto a pensar y me abriera tanto la mente. Lo único que se acerca, entre la telebasura reinante, en el mundo audiovisual actual, es el programa Redes de Eduardo Punset.

Para una definición más precisa, un extracto del articulo de la Wikipedia:

TED (Tecnología, Entretenimiento, Diseño, del inglés: Technology, Entertainment, Design) es una organización sin ánimo de lucro dedicada a las "ideas que vale la pena difundir" (del inglés: Ideas worth spreading). TED es ampliamente conocida por su conferencia anual (TED Conference) y sus charlas (TED Talks) que cubren un amplio espectro de temas que incluyen ciencias, arte y diseño, política, educación, cultura, negocios, asuntos globales, tecnología y desarrollo, y entretenimiento. Los conferenciantes han incluido a personas como el ex-Presidente de los Estados Unidos Bill Clinton, los laureados con el Premio Nobel James D. Watson, Murray Gell-Mann, y Al Gore, el co-fundador de Microsoft, Bill Gates, los co-fundadores de Google Sergey Brin y Larry Page, y Billy Graham 

Estas charlas se publican en su pagina web actualmente a un ritmo de una por día de semana (esto es, lunes a viernes). Actualmente (julio 2010) hay más de 700 charlas disponibles en su página y se han visionado más de 290.000.000 de veces (julio 2010), para que os hagáis una idea de la repercusión y trascendencia de las mismas.

El caso es que yo las sigo habitualmente, vamos que veo todas las que publican. Al principio me limitaba a enterarme de la publicación de las mismas por mi lector de fuentes RSS, veía el asunto de las mismas y si me parecía interesante, las veía directamente a través de su página web. Luego, cansado de los inconvenientes de verlas a través de un navegador web a pantalla completa, en flash desde linux, dí un paso más y me pase a un programa como Miro, de hecho hay una versión del mismo para TED. Para el que no lo conozca, Miro es un reproductor multimedia open source multiplataforma que cuenta con un agregador de fuentes RSS y torrents para podcasts de audio y vídeo. Así que él automáticamente se baja las charlas a medida que se van publicando y tu solo tienes que visionarlas desde el mismo, decidiendo después si las eliminas o las conservas.

 

Miro TED Talks

Pero Miro para mi tenia dos grandes problemas, el primero que no descarga los subtitulos, y el segundo que la visualización de estos es bastante pobre (al menos comparado con la configuración que tengo en mi SMPlayer). No es que los subtitulos me sean esenciales (todas las charlas son en ingles) pero si que ayudan mucho para el contexto de aquellas donde uno ni de lejos domina los tecnicismos de algunos campos, o porque no decirlo, cuando el acento o la pronunciación de algunos de los ponentes me hace imposible seguirlos sin los mismos. Siempre veo los subtitulos en el idioma original, inglés, pero siempre descargo también la versión en español porque me es muy útil en algunos momentos, como por ejemplo cuando se refieren a especies animales o vegetales de los que no conozco la traducción al español, y en lugar de tirar de diccionario continuamente, gano tiempo visionandolos en castellano.

Como uno ha de reconocer humildemente, rara es la vez que a uno no se le presente un problema que no se le haya presentado antes a otro y no haya dado con una solución valida. Luego en vez de reinventar la rueda (aunque finalmente es lo que haya acabado haciendo) me dirigí a San Google para encontrar una solución para descargar los subtitulos de las TED Talks, y he aquí, que doy con este script en Python (mi lenguaje de programación favorito). Lo empleé durante unos días (tres para ser exactos), pero no me acaba de convencer y me puse a modificarlo, y cuando estaba en ello, me dije: Que demonios! si al final no te convence Miro para visionar los vídeos con subtitulos, porque no descargar también los mismos y utilizar el SMPlayer para visionarlos? Asi que me puse manos a la obra, y esto es lo que salio y actualmente empleo.

El script hace uso de la fuente RSS de las TED Talks en calidad HD para conocer cuando se publica una nueva charla en la pagina. Comprueba si no esta ya descargado, si no es así, lo descarga y luego comprueba la disponibilidad de los subtitulos (español e ingles) para las charlas ya descargadas que se encuentren en la carpeta. Si encuentra alguno disponible y no descargado anteriormente, lo convierte en un nuevo fichero .srt en la carpeta. Finalmente, si se ha descargado algo (charlas o subs), manda un correo a mi usuario local notificándomelo. Esta script lo tengo automatizado mediante una tarea cron en un pequeño servidor que tengo y que se ejecuta todas las mañanas a eso de las 9:30 y que normalmente me descarga la charla del día anterior y los subtitulos en ingles de la misma y los de español de dos días antes. Esto depende mucho de la velocidad de traducción de los colaboradores, ya que a veces, cuando una charla es muy interesante, es posible que a las pocas horas dispongamos de los subtitulos en los dos idiomas.

El código del script, es el siguiente:

#!/usr/bin/env python
# -*- coding: utf8 -*-
 
"""
    TEDTalks.py:
"""
 
#===============================================================================
# This Script uses the TED Talks HD RSS Feed to download the talks' videos and 
# subtitles.
#
# Este script emplea la fuente RSS de las TED Talks en HD, para descargar los
# videos y los subtitulos para las charlas
#===============================================================================
 
#===============================================================================
#       Copyright 2010 joe di castro <joe@joedicastro.com>
#       
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#
#    Este programa es software libre: usted puede redistribuirlo y/o modificarlo
#    bajo los términos de la Licencia Publica General GNU publicada 
#    por la Fundación para el Software Libre, ya sea la versión 3 
#    de la Licencia, o (a su elección) cualquier versión posterior.
#
#    Este programa se distribuye con la esperanza de que sea útil, pero 
#    SIN GARANTIA ALGUNA; ni siquiera la garantía implícita 
#    MERCANTIL o de APTITUD PARA UN PROPOSITO DETERMINADO. 
#    Consulte los detalles de la Licencia Publica General GNU para obtener 
#    una información mas detallada. 
#
#    Deberla haber recibido una copia de la Licencia Publica General GNU 
#    junto a este programa. 
#    En caso contrario, consulte <http://www.gnu.org/licenses/>.
#
#===============================================================================
 
__author__ = "joe di castro - joe@joedicastro.com"
__license__ = "GNU General Public License version 3"
__date__ = "28/07/2010"
__version__ = "0.20"
 
try:
    import os
    import sys
    import json
    import urllib
    import re
    import glob
    import feedparser
    import smtplib
    import time
    import socket
    import pickle
except ImportError:
    # Checks the installation of the necessary python modules 
    # Comprueba si todos los módulos necesarios están instalados
    print ("""An error found importing one or more modules:
    \n{0}
    \nYou need to install this module\nQuitting...""").format(sys.exc_info()[1])
    sys.exit(-2)
 
 
def send_mail(content):
    """Send the mail with the log to the user's local mailbox
    Envia el correo con el informe al buzón del usuario local"""
    # Set the local mail address for the script' user
    email = '{0}@{1}'.format(os.getenv('LOGNAME'), socket.gethostname())
    subject = 'Download TED Talks - {0}'.format(time.strftime('%A %x, %X'))
    msg = ("From: {0}\nTo: {0}\nSubject: {1}\n{2}".
           format(email, subject, content))
    server = smtplib.SMTP('localhost')
    server.sendmail(email, email, msg)
    server.quit()
    return
 
def get_sub(tt_id , tt_intro, lang):
    """Get TED Subtitle in JSON format & convert it to SRT Subtitle
    Obtiene el subtitulo de TED en formato JSON y lo convierte al formato SRT"""
 
    def srt_time(tst):
        """Format Time from TED Subtitles format to SRT time Format
        Convierte el formato de tiempo del subtitulo TED al formato de SRT"""
        secs, mins, hours = ((tst / 1000) % 60), (tst / 60000), (tst / 3600000)
        right_srt_time = "{0:02d}:{1:02d}:{2:02d},000".format(hours, mins, secs)
        return right_srt_time
 
    srt_content = ''
    tt_url = 'http://www.ted.com/talks'
    sub_url = '{0}/subtitles/id/{1}/lang/{2}'.format(tt_url, tt_id, lang)
    json_object = json.loads(urllib.urlopen(sub_url).read()) ## Get JSON sub
    if 'captions' in json_object:
        caption_idx = 1
        for caption in json_object['captions'] :
            start = tt_intro + caption['startTime']
            end = start + caption['duration']
            idx_line = '{0}'.format(caption_idx)
            time_line = '{0} --> {1}'.format(srt_time(start), srt_time(end))
            text_line = '{0}'.format(caption['content'].encode("utf-8"))
            srt_content += '\n'.join([idx_line, time_line, text_line, '\n'])
            caption_idx += 1
    return srt_content
 
 
def check_subs(ttalk, v_name):
    """Check if the subtitles for the talk are downloaded, if not try to get 
    them. Checks it for english and spanish languages
    Comprueba si los subtitulos para la charla estan descargados, si no, intenta
    obtenerlos. Lo comprueba para los idiomas español e ingles"""
    s_log = '' # Begins the log
    ## Get the names for the subtitles (for english and spanish languages) only 
    # if they not are already downloaded
    subs = (s_name for s_name in
            ("{0}.{1}.srt".format(v_name[:-4], lang) for lang in ('eng', 'spa'))
            if s_name not in glob.glob('*.srt'))
 
    for sub in subs:
        ## Reads the talk web page, to search the talk's intro duration
        tt_webpage = urllib.urlopen(ttalk.feedburner_origlink).read()
        tt_intro = int(re.search("introDuration:(\d+),", tt_webpage).group(1))
        subtitle = get_sub(ttalk.id.split(':')[-1], tt_intro, sub.split('.')[1])
        if subtitle:
            with open(sub, 'w') as srt_file:
                srt_file.write(subtitle)
            s_log += "\n{0} downloaded".format(sub)
    return s_log
 
def get_video(ttk, vid_url, vid_name):
    """Gets the TED Talk video
    Obtiene el video de la TED Talk"""
    urllib.urlretrieve(vid_url, vid_name)
    v_log = 'New TED Talk downloaded!\n'
    v_log += '{0}\n'.format('=' * 24)
    v_log += '{0}\n\n'.format(ttk.feedburner_origlink)
    v_log += '{0}'.format(ttk.subtitle)
    v_log += ' ({0})\n\n'.format(ttk.itunes_duration)
    v_log += '{0}\n\n'.format(ttk.content[0].value)
    v_log += 'file://{0}/{1}\n'.format(os.getcwd(), vid_name)
    v_log += '{0:.1f} MiB\n\n'.format(float(ttk.enclosures[0].length) / 2 ** 20)
    return v_log
 
def main(log=''):
    """main section"""
    ## The directory to store the videos and subs
    ttalk_vid_dir = '/your/path/to/store/the/TEDTalks'
    os.chdir(ttalk_vid_dir)
 
    ## Get a list of the current TED Talks downloaded in the dir
    videos = glob.glob('*.mp4')
 
    ## Get the last download Talk video date
    try:
        with open('.data.pkl', 'rb') as pkl_file:
            last = pickle.load(pkl_file)
    except (EOFError, IOError, pickle.PickleError):
        last = time.localtime(time.time() - 86400)
    video_dates = []
 
    ## The TED Talks HD RSS feed
    ttalk_feed_url = 'http://feeds.feedburner.com/tedtalksHD'
    ttalk_feed = feedparser.parse(ttalk_feed_url)
 
    ## If the feed is erroneous or occurs a http or network error, log and exit!
    if ttalk_feed.bozo:
        log += 'An error occurred: {0}'.format(ttalk_feed.bozo_exception)
        send_mail(log)
        sys.exit(1)
 
    ## If correct, process the feed entries
    for ttalk_entrie in ttalk_feed.entries:
        ## Get The video url and name
        tt_vid_url = ttalk_entrie.enclosures[0].href
        tt_vid_name = tt_vid_url.split('/')[-1]
        ## If the video is new, download it!
        if ttalk_entrie.updated_parsed > last:
            log += get_video(ttalk_entrie, tt_vid_url, tt_vid_name)
            videos.append(tt_vid_name)
            video_dates.append(ttalk_entrie.updated_parsed)
        ## If video is already downloaded, check if subs exists, if not, get it!
        if tt_vid_name in videos:
            log += check_subs(ttalk_entrie, tt_vid_name)
 
    ## Set the last download video date
    if video_dates:
        last = max(video_dates)
        with open('.data.pkl', 'wb') as output:
            pickle.dump(last, output)
 
    ## If logs any activity, sends the information mail 
    if log:
        send_mail(log)
 
if __name__ == "__main__":
    main()

Y un ejemplo de un correo enviado por el mismo quedaría así:

De:     youruser@yourcomputer
Para:     youruser@yourcomputer
Asunto:     Download TED Talks - Thursday 07/29/10, 17:04:52
Fecha:     Thu, 29 Jul 2010 17:04:52 +0200


New TED Talk downloaded!
========================
http://www.ted.com/talks/view/id/927

Laurie Santos: A monkey economy as irrational as ours (00:19:45)

Laurie Santos looks for the roots of human irrationality by watching the way our primate relatives make decisions. A clever series of experiments in "monkeynomics" shows that some of the silly choices we make, monkeys make too.

file:///your/path/to/TEDTalks/LaurieSantos_2010G_480.mp4
240.7 MiB

SusanShaw_2010X_480.eng.srt downloaded

Pudiendo acceder al video directamente desde el correo, y si se encontraran los subtitulos para el mismo ya disponibles, visualizarlos automaticamente.

El que el script esté fundamentalmente en ingles (la mayoria de comentarios y los nombres de las variables)  es que me siento más comodo de esta manera y ayuda a que un espectro más amplio de personas sea capaz de comprenderlo. Si este script le sirve a alguien más o le inspira para crear el suyo propio, pues habrá valido la pena el publicarlo.

Finalmente como ejemplo, publico una de las charlas más impactantes este año y ganadora del TED Prize, Jamie Oliver: Enseñarle a todos los niños acerca de la comida

Excelente!

Amigo, he leido con atencion su articulo acerca de los subtitulos. El nivel de automatizacion alcanzado resulta sorprendente, sin embargo, para aquellos que no contamos con el hardware necesario se torna complicada la cosa.

En mi caso, me interesa descargar algunas (no todas) las charlas. De hecho, quisiera unas pocas, cuidadosamente seleccionadas, para presentarlas en el colegio en el cual doy clases a mis alumnos de secundaria.

¿Conoce Ud. de alguna forma de descargar en un formato legible por VLC (.SUB o .SRT, por ejemplo) los subtitulos en español de charlas seleccionadas? He estado tratando de conseguir algunos en forma infructuosa desde hace algun tiempo, aunque he conseguido algunos en formato JSON.

Gracias mil por la ayuda con este tema. 

Imagen de joe di castro

Script para subtitulos de una charla

Bueno, para conseguir eso que me comentas, he modificado el script anterior un poco y he creado este nuevo script.

La forma de utilizarlo es muy sencilla, por ejemplo para bajarse la charla de Jamie Oliver, simplemente en la linea de comandos escribes

python TEDSubs.py http://www.ted.com/talks/lang/eng/jamie_oliver.html

Y el te baja tanto los subtitulos como el vídeo. Si quisieras bajarte solo los subtitulos, bastaría con que añadieras la opción -s ó --only_subs, quedaría así:

python TEDSubs.py -s  http://www.ted.com/talks/lang/eng/jamie_oliver.html

Como ves es muy sencillo, solo tendrías que sustituir la dirección de la charla de Oliver por la que deseas bajar.

 

El código del script es el siguiente:

#!/usr/bin/env python
# -*- coding: utf8 -*-
 
"""
    TEDSubs.py: Downloads a TED Talk' subtitles and videos by it's url
"""
 
#===============================================================================
# This Script uses a TED Talk URL to download the talk's video and 
# subtitles.
#
# Este script emplea la url de una TED Talk y descarga el video y los
# subtitulos de la misma
#===============================================================================
 
#===============================================================================
#       Copyright 2010 joe di castro <joe@joedicastro.com>
#       
#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.
#
#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.
#
#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
#
#    Este programa es software libre: usted puede redistribuirlo y/o modificarlo
#    bajo los términos de la Licencia Publica General GNU publicada 
#    por la Fundación para el Software Libre, ya sea la versión 3 
#    de la Licencia, o (a su elección) cualquier versión posterior.
#
#    Este programa se distribuye con la esperanza de que sea útil, pero 
#    SIN GARANTIA ALGUNA; ni siquiera la garantía implícita 
#    MERCANTIL o de APTITUD PARA UN PROPOSITO DETERMINADO. 
#    Consulte los detalles de la Licencia Publica General GNU para obtener 
#    una información mas detallada. 
#
#    Deberla haber recibido una copia de la Licencia Publica General GNU 
#    junto a este programa. 
#    En caso contrario, consulte <http://www.gnu.org/licenses/>.
#
#===============================================================================
 
__author__ = "joe di castro - joe@joedicastro.com"
__license__ = "GNU General Public License version 3"
__date__ = "31/07/2010"
__version__ = "0.10"
 
try:
    import optparse
    import sys
    import json
    import urllib
    import re
except ImportError:
    # Checks the installation of the necessary python modules 
    # Comprueba si todos los módulos necesarios están instalados
    print ("""An error found importing one or more modules:
    \n{0}
    \nYou need to install this module\nQuitting...""").format(sys.exc_info()[1])
    sys.exit(-2)
 
def options():
    """Defines the command line arguments and options for the script
    Define los argumentos y las opciones de la linea de comandos del script"""
    usage = """usage: %prog [Options] TEDTalkURL
 
Where TEDTalkURL is the url of a TED Talk webpage
 
For example:
 
%prog -s  http://www.ted.com/talks/lang/eng/jamie_oliver.html
 
Downloads only the subs for the Jamie Oliver's TED Talk, if wants the video too
only needs to remove the "-s" option"""
    desc = "Downloads the subtitles and the video (optional) for a TED Talk."
    parser = optparse.OptionParser(usage=usage, version="%prog " + __version__,
                                   description=desc)
 
    parser.add_option("-s", "--only_subs", action='store_true', dest="no_video",
                      help="download only the subs, not the video ",
                      default=False)
 
    return parser
 
 
def get_sub(tt_id , tt_intro, lang):
    """Get TED Subtitle in JSON format & convert it to SRT Subtitle
    Obtiene el subtitulo de TED en formato JSON y lo convierte al formato SRT"""
 
    def srt_time(tst):
        """Format Time from TED Subtitles format to SRT time Format
        Convierte el formato de tiempo del subtitulo TED al formato de SRT"""
        secs, mins, hours = ((tst / 1000) % 60), (tst / 60000), (tst / 3600000)
        right_srt_time = "{0:02d}:{1:02d}:{2:02d},000".format(hours, mins, secs)
        return right_srt_time
 
    srt_content = ''
    tt_url = 'http://www.ted.com/talks'
    sub_url = '{0}/subtitles/id/{1}/lang/{2}'.format(tt_url, tt_id, lang)
    json_object = json.loads(urllib.urlopen(sub_url).read()) ## Get JSON sub
    if 'captions' in json_object:
        caption_idx = 1
        for caption in json_object['captions'] :
            start = tt_intro + caption['startTime']
            end = start + caption['duration']
            idx_line = '{0}'.format(caption_idx)
            time_line = '{0} --> {1}'.format(srt_time(start), srt_time(end))
            text_line = '{0}'.format(caption['content'].encode("utf-8"))
            srt_content += '\n'.join([idx_line, time_line, text_line, '\n'])
            caption_idx += 1
    return srt_content
 
 
def check_subs(tt_id, tt_intro, tt_video):
    """Check if the subtitles for the talk exists and try to get them. Checks it
    for english and spanish languages.
    Comprueba si los subtitulos para la charla existen e intenta obtenerlos. Lo 
    comprueba para los idiomas español e ingles"""
    ## Get the names for the subtitles (for english and spanish languages) only 
    # if they not are already downloaded
    subs = ("{0}.{1}.srt".format(tt_video[:-4], lang) for lang in
            ('eng', 'spa'))
    for sub in subs:
        subtitle = get_sub(tt_id, tt_intro, sub.split('.')[1])
        if subtitle:
            with open(sub, 'w') as srt_file:
                srt_file.write(subtitle)
            print "Subtitle {0} downloaded".format(sub)
    return
 
def get_video(vid_name):
    """Gets the TED Talk video
    Obtiene el video de la TED Talk"""
    root_url = 'http://video.ted.com/talks/podcast/'
    print "Donwloading video..."
    urllib.urlretrieve('{0}{1}'.format(root_url, vid_name),
                       '{0}'.format(vid_name))
    print "Video {0} downloaded".format(vid_name)
    return
 
def main():
    """main section"""
    # first, parse the options & arguments
    (opts, args) = options().parse_args()
 
    if not args:
        options().print_help()
    else:
        tedtalk_webpage = args[0]
        ## Reads the talk web page, to search the talk's values
        ttalk_webpage = urllib.urlopen(tedtalk_webpage).read()
        ttalk_intro = int(re.search("introDuration:(\d+),",
                                    ttalk_webpage).group(1))
        ttalk_id = int(re.search("talkID = (\d+);", ttalk_webpage).group(1))
        ttalk_vid = re.search('hs:"(?:\w+:)?talks/dynamic/(.*)-high.\w+"',
                              ttalk_webpage).group(1) + '_480.mp4'
 
        #@ Get subs (and video)
        check_subs(ttalk_id, ttalk_intro, ttalk_vid)
        if not opts.no_video:
            get_video(ttalk_vid)
 
 
if __name__ == "__main__":
    main()

Espero que te sirva.

Saludos

TED

Estimado muy bueno lo que haces, me parecen excelentes los videos y me gustaría contar con ellos. ¿Donde corro el script?¿podrias subirmelos con subtitulos a algun gestor o ftp?

 

Muchas gracias

Imagen de joe di castro

Vamos por partes...

Vamos por partes...

Los scripts los ejecutas en tu ordenador, lo único necesario es el lenguaje de programación Python y una conexión a Internet. Si tu maquina corre en linux, el python lo tienes instalado por defecto en casi todas las distribuciones. Si corre en Windows o Mac, lo puedes descargar en Python.org

Para correr los scripts, en la linea de comandos solo necesitas ejecutar estas lineas de comando:

python TEDTalks.py

para el primer script o las lineas de comando ya comentadas anteriormente para el segundo script.

Para descargarlos, puedes o bien copiar y pegar el código tal y como aparece en el articulo, o bien descargarlos:

TEDTalks.py & TEDSubs.py

o bien vas directamente al mi repositorio en bitbucket

Eso si, hay que tener en cuenta que en el caso del primer script, este solo se baja el vídeo del dia anterior en su primera ejecución o bien el más reciente no descargado en caso de ejecuciones sucesivas. Y como la gente de TED parece que se ha tomado un descanso en Agosto (el último vídeo es del 30 de Julio), este no descargara nada, porque de momento no hay nada que descargar. Hasta que no retornen la publicación de nuevas charlas, el primer script no bajara nuevos contenidos, igual que los tradicionales lectores RSS o el mismo Miro.

Saludos

Enviar un comentario nuevo

El contenido de este campo se mantiene privado y no se mostrará públicamente.
  • Las direcciones de las páginas web y las de correo se convierten en enlaces automáticamente.
  • Etiquetas HTML permitidas: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <p> <br>

Más información sobre opciones de formato