示例#1
0
    def descargaVideoWindows(self, nombre=None):
        '''
            Procesa la descarga del vídeo llamanda a la función download de pyaxel para la mayoría de los
            vídeos en GNU/Linux y Mac OS X. Para sistemas win32, se llama a descargarVideoWindows() y tanto para
            GNU/Linux como para Mac OS X y Windows cuando el protocolo es mms:// se utiliza libmms (por ahora Windows no)
            y cuando el protocolo es rtmp:// se utiliza el binario rtmpdump que el user debe tener instalado.
        '''

        printt(u"")
        printt(u"DESCARGAR:")
        printt(
            u"----------------------------------------------------------------"
        )

        printt(u"[ URL DE DESCARGA FINAL ]", self.__URL)

        printt(u"[INFO] Presiona \"Ctrl + C\" para cancelar")
        printt(u"")

        def estadodescarga(bloque, tamano_bloque, tamano_total):
            '''
                función reporthook que representa en pantalla información mientras
                se realiza la descarga
            '''
            # En Megas
            try:
                cant_descargada = (
                    (bloque * tamano_bloque) / 1024.00) / 1024.00
                tamano_total = (tamano_total / 1024.00) / 1024.00
                porcentaje = cant_descargada / (tamano_total / 100.00)
                if porcentaje > 100.00:
                    porcentaje = 100.00
            except ZeroDivisionError:
                pass
                #print "[DEBUG] Error de divisiñon entre cero"
            # TODO: Agregar velocidad de descarga al progreso
            sys.stdout.write("\r[Descargando]: [ %.2f MiB / %.2f MiB ]\t\t[ %.1f%% ]" \
                            % (cant_descargada, tamano_total, porcentaje))

        #######
        try:
            printt(u"[Destino]", self.__TITULO)
            urllib.urlretrieve(self.__URL,
                               self.__TITULO,
                               reporthook=estadodescarga)
            print ""
        except KeyboardInterrupt:
            salir("\nCiao!")
示例#2
0
    def descargaVideoWindows(self, nombre=None):
        '''
            Procesa la descarga del vídeo llamanda a la función download de pyaxel para la mayoría de los
            vídeos en GNU/Linux y Mac OS X. Para sistemas win32, se llama a descargarVideoWindows() y tanto para
            GNU/Linux como para Mac OS X y Windows cuando el protocolo es mms:// se utiliza libmms (por ahora Windows no)
            y cuando el protocolo es rtmp:// se utiliza el binario rtmpdump que el user debe tener instalado.
        '''
        
        printt(u"")
        printt(u"DESCARGAR:")
        printt(u"----------------------------------------------------------------")

        printt(u"[ URL DE DESCARGA FINAL ]", self.__URL)
            
        printt(u"[INFO] Presiona \"Ctrl + C\" para cancelar")
        printt(u"")
        
        def estadodescarga(bloque, tamano_bloque, tamano_total):
            '''
                función reporthook que representa en pantalla información mientras
                se realiza la descarga
            '''
            # En Megas
            try:
                cant_descargada = ((bloque * tamano_bloque) / 1024.00) / 1024.00
                tamano_total = (tamano_total / 1024.00) / 1024.00
                porcentaje = cant_descargada / (tamano_total / 100.00)
                if porcentaje > 100.00:
                    porcentaje = 100.00
            except ZeroDivisionError:
                pass
                #print "[DEBUG] Error de divisiñon entre cero"
            # TODO: Agregar velocidad de descarga al progreso
            sys.stdout.write("\r[Descargando]: [ %.2f MiB / %.2f MiB ]\t\t[ %.1f%% ]" \
                            % (cant_descargada, tamano_total, porcentaje))
                            
        #######
        try:
            printt(u"[Destino]", self.__TITULO)
            urllib.urlretrieve(self.__URL, self.__TITULO, reporthook=estadodescarga)
            print ""
        except KeyboardInterrupt:
            salir("\nCiao!")
            
 def __getMMS(self):
     printt(u"")
     printt(u"DESCARGAR:")
     printt(u"----------------------------------------------------------------")
     printt(u"[ URL DE DESCARGA FINAL ]", self.__URL)
     printt(u"[   DESTINO   ]", self.__TITULO)
     
     
     if sys.platform == "win32":
         msg = '''Protocolo MMS aun no disponible en Windows.
         La URL FINAL DE DESCARGA que se muestra, es la localización final del archivo.
         Puedes descargar el archivo mediante esta URL a través de algún gestor de
         descargas que soporte la descarga a través del protocolo mms://
         '''
         printt(msg)
         return
     
     try:
         from pylibmms import core as libmmscore
     except ImportError, e:
         print e
         salir(u"[!!!] ERROR al importar libmms")
示例#4
0
    def __getMMS(self):
        printt(u"")
        printt(u"DESCARGAR:")
        printt(
            u"----------------------------------------------------------------"
        )
        printt(u"[ URL DE DESCARGA FINAL ]", self.__URL)
        printt(u"[   DESTINO   ]", self.__TITULO)

        if sys.platform == "win32":
            msg = '''Protocolo MMS aun no disponible en Windows.
            La URL FINAL DE DESCARGA que se muestra, es la localización final del archivo.
            Puedes descargar el archivo mediante esta URL a través de algún gestor de
            descargas que soporte la descarga a través del protocolo mms://
            '''
            printt(msg)
            return

        try:
            from pylibmms import core as libmmscore
        except ImportError, e:
            print e
            salir(u"[!!!] ERROR al importar libmms")
示例#5
0
 
 if not urls:
     uiUtiles.printt(u"[--->] Introduce las URL de los vídeos (separadas por espacios):")
     inPut = raw_input()
     urls = inPut.split(" ")
 
 vUrls = [url for url in urls if isURL(url)]
 iUrls = [url for url in urls if not isURL(url)]
 
 if iUrls:
     uiUtiles.printt(u"[!!!] Las siguientes urls no son válidas:")
     for url in iUrls: uiUtiles.printt(u"-> %s" % url)
     uiUtiles.printt()
 
 if not vUrls:
     uiUtiles.salir(u"[!!!] Ninguna url válida")
 else:
     for url in vUrls:
         ## CASOS ESPECIALES URL NO ASCCII
         #RTPA
         try: url = url.split("video:")[0] + "video:_" + url.split("_")[1]
         except: pass
         #END - RTPA
         ## END - CASOS ESPECIALES
         uiUtiles.printt(u"\n[ URL ] %s" % unicode(url))
         canal = qCanal(url, opcs)
         if not canal:
             uiUtiles.printt(u"ERROR: La URL \"%s\" no pertenece a ninguna Televisión soportada" % url)
             continue
         try:
             info = canal.getInfo()
示例#6
0
class Descargar(object):
    ''' Clase que se encarga de descargar con urllib2 '''

    std_headers = {
        'User-Agent': 'Mozilla/5.0 (Windows; U; Windows NT 6.1; '
        'en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6',
        'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.7',
        'Accept': 'text/xml,application/xml,application/xhtml+xml,'
        'text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5',
        'Accept-Language': 'en-us,en;q=0.5',
    }

    def __init__(self,
                 url=None,
                 titulo=None,
                 tipo=None,
                 rtmpd_cmd=None,
                 menco_cmd=None):
        self.__URL = url if url is not None else None
        self.__TITULO = titulo if titulo is not None else None
        self.__TIPO = self.__URL.split("://")[0] if tipo is None else tipo
        self.__COMANDO_RTMPD = rtmpd_cmd if rtmpd_cmd is not None else None
        self.__COMANDO_MENCO = menco_cmd if menco_cmd is not None else None

    def getURL(self):
        return self.__URL

    def setURL(self, url):
        self.__URL = url

    url = property(getURL, setURL)

    def getTITULO(self):
        return self.__TITULO

    def setTITULO(self, titulo):
        self.__TITULO = titulo

    titulo = property(getTITULO, setTITULO)

    def __getHTTP(self):
        if sys.platform == "win32": self.__descargaVideoWindows()
        else:
            printt(u"")
            printt(u"DESCARGAR:")
            printt(
                u"----------------------------------------------------------------"
            )
            printt(u"[ URL DE DESCARGA FINAL ]", self.__URL)
            printt(u"[INFO] Presiona \"Ctrl + C\" para cancelar")
            printt(u"")
            options = {
                "output_file": self.__TITULO,
                "verbose": True,
                "max_speed": None,
                "num_connections": 4
            }
            pyaxel.download(self.__URL, options)

    def __getRTMP(self):
        command = "rtmpdump"
        if sys.platform == "win32":
            command += ".exe"

        printt(u"")
        printt(u"DESCARGAR:")
        printt(
            u"----------------------------------------------------------------"
        )
        printt(
            u"[ COMANDO ]", self.__COMANDO_RTMPD
            if self.__COMANDO_RTMPD is not None else self.__COMANDO_MENCO)
        printt(u"[   DESTINO   ]", self.__TITULO)
        printt(u"\n[INFO] Presiona \"Ctrl + C\" para cancelar\n")

        # TODO: mejorar esto!
        args = self.__COMANDO_RTMPD.split(
        ) if self.__COMANDO_RTMPD is not None else self.__COMANDO_MENCO.split(
        )

        try:
            printt(u"\nLanzando rtmpdump...\n")
            out = subprocess.call(args)
            if out == 0:  # Descarga realizada con éxito
                printt(u"[OK] Descarga realizada con éxito")
            else:
                printt(u"[ERROR] Ha fallado la descarga")
        except OSError, e:
            printt(u"[!!!] ERROR. No se encuenta rtmpdump o mplayer:", e)
        except KeyboardInterrupt:
            salir(u"Bye!")
示例#7
0
            u"[--->] Introduce las URL de los vídeos (separadas por espacios):"
        )
        inPut = raw_input()
        urls = inPut.split(" ")

    vUrls = [url for url in urls if isURL(url)]
    iUrls = [url for url in urls if not isURL(url)]

    if iUrls:
        uiUtiles.printt(u"[!!!] Las siguientes urls no son válidas:")
        for url in iUrls:
            uiUtiles.printt(u"-> %s" % url)
        uiUtiles.printt()

    if not vUrls:
        uiUtiles.salir(u"[!!!] Ninguna url válida")
    else:
        for url in vUrls:
            ## CASOS ESPECIALES URL NO ASCCII
            #RTPA
            if url.find("rtpa.es") != -1:
                try:
                    url = url.split("video:")[0] + "video:_" + url.split(
                        "_")[1]
                except:
                    pass
            #END - RTPA
            ## END - CASOS ESPECIALES
            uiUtiles.printt(u"\n[ URL ] %s" % unicode(url))
            canal = qCanal(url, opcs)
            if not canal:
示例#8
0
            u"[--->] Introduce las URL de los vídeos (separadas por espacios):"
        )
        inPut = raw_input()
        urls = inPut.split(" ")

    vUrls = [url for url in urls if isURL(url)]
    iUrls = [url for url in urls if not isURL(url)]

    if iUrls:
        uiUtiles.printt(u"[!!!] Las siguientes urls no son válidas:")
        for url in iUrls:
            uiUtiles.printt(u"-> %s" % url)
        uiUtiles.printt()

    if not vUrls:
        uiUtiles.salir(u"[!!!] Ninguna url válida")
    else:
        for url in vUrls:
            ## CASOS ESPECIALES URL NO ASCCII
            #RTPA
            if url.find("rtpa.es") != -1:
                try:
                    url = url.split("video:")[0] + "video:_" + url.split(
                        "_")[1]
                except:
                    pass
            #END - RTPA
            ## END - CASOS ESPECIALES
            uiUtiles.printt(u"\n[ URL ] %s" % unicode(url))
            canal = qCanal(url, opcs)
            if not canal: