[DESARROLLO] PyDD, alternativa a Jdownloader y Tucan

PyDD, gestor de descargas

Vídeos:




Lo primero de todo, ¿qué me mueve a desarrollar otro gestor de descargas para enlaces de descarga directa, si ya existe Jdownloader y Tucan, junto otras alternativas? El motivo que me mueve es que el primero se encuentra en Java, lo cual se traduce en un alto consumo de recursos, y que el segundo depende de GTK+. Estos no son los únicos motivos que me han hecho tomar la iniciativa, sino además una serie de ideas de lo que consideraría el gestor de descargas perfecto, y que me gustaría aplicar en mi propio gestor.

Independiente de la interfaz.
En mi opinión, un gestor de descargas debe ser ajeno de la interfaz que lo manipula, para así dejar a decisión del usuario cómo desea interactuar con la aplicación.

Se añade opción de interfaz Web.
Sin encontrarse el usuario obligado a ello, la interfaz por defecto sería una interfaz web. ¿Qué beneficios traería esto? Primero, el proceso podría correr en segundo plano sin consumir muchos recursos, mirando solo cuando sea necesario la interfaz. Segundo, sería posible tener el gestor de descargas en otro ordenador de casa, y controlar el servidor desde otro ordenador, ¡e incluso desde fuera de casa!

Agrupamiento por elementos parecidos.
En mi caso, mi directorio de descargas es un desorden total, con todos los archivos en el mismo directorio y de cualquier manera. Es por ello que he pensado que en vez de tener que ordenarlos después los archivos tras descargarlos, cuando el daño ya está hecho, sería muchísimo mejor ordenarlos antes, y que este proceso sea automático :) Es por ello que quiero que el gestor de descargas agrupe los elementos parecidos, para descargarlos en un directorio individual con el nombre de la serie (de ser una serie) e incluso en un directorio "series", tras detectar que el contenido se trata de una serie.

Búsqueda en el historial.
Tener un historial de descargas completo puede ser muy útil, y es más, otros usuarios me lo han pedido. Es por ello que creo que es una característica esencial :)

Modularidad y ampliable.
Tener una, ninguna o varias interfaces debería ser opcional. Es por ello que me gustaría que fuese muy ampliable, e incluso poder tener de varias interfaces. Así, se podría tener tanto una interfaz Qt4, como una interfaz web además de una de signals por dbus.

¿Y todo esto para qué?
Se necesitan beta-testers y desarrolladores con conocimientos de Python, PIL, XML, JSON, XHTML, CSS, Canvas, Javascript+Jquery.


¿Por qué no puedo descargar el programa?
El programa aún no es funcional, de momento solo comprueba enlaces, y falta terminar la gestión de velocidad e hilos de descargas, y solo se publicará una release cuando el programa esté medianamente maduro.
Me parece genial la iniciativa a ver si se convierte en una verdadera competencia tanto de Jdownloader como de Mipony, mucha suerte con el proyecto!, si necesitas beta-testers cuenta con migo.
Un saludo
Si consigues superar a mipony, aquí uno que lo usara si o si animo XD
Muy interesante , apúntame como developer , tengo conocimientos de python.
¿Tienes repositorio montado ? para echarle un vistazo a lo que tienes hecho .
Yo algo de python se, pero de tiempo ando fatal... de todas formas me parece una gran idea, y python una buena elección (por fin alguien se anima a algún proyecto de desarrollo por aquí, puede ser muy interesante seguirlo).
¿La parte del reconocimiento de captchas la has pensado implementar o será exclusivo de cuentas premium?

Te digo lo mismo que el kiler2k, si tienes montado algún repositorio, podrías ponerlo y quien quiera que le eche un vistazo.
Hace años que no programo, así que solo podría ayudar de beta-tester y me sobra el tiempo estos días xD
capitanquartz mucha suerte en tu iniciativa, al menos yo, solo por ser una iniciativa de alguien del foro le daré una oportunidad, y si ya consigue desbancar al mipony...

Saludos.
Bueno por mi parte miraré el hacer un módulo de descarga de premium para megaupload , a ver si consigo pillar como gestiona las cookies python .
kiler2k escribió:Bueno por mi parte miraré el hacer un módulo de descarga de premium para megaupload , a ver si consigo pillar como gestiona las cookies python .

Esa parte ya la tengo implementada, aunque gracias ;-)

PD: Yo hago esto para tener retrocompatibilidad con Python 2.x:

import sys

if sys.version_info < (3,0):
    import urllib as request
    parse = request
    import urllib2
    for method in dir(urllib2):
        setattr(request, method, getattr(urllib2, method))
    import cookielib as cookiejar
   
else:
    from http import cookiejar
    from urllib import parse, request
¿Cómo tienes implementado el módulo de descarga ?¿Multisegmento?
kiler2k escribió:¿Cómo tienes implementado el módulo de descarga ?¿Multisegmento?

Tengo pensado implementar descarga por segmentos para las cuentas premium (ya que son las únicas que permiten pedir a partir de qué parte descargar). El módulo que utilizo es urllib (en Python2 como urllib2) y aún estoy programando la regulación de velocidad, la cual va a consistir en sleeps calculados en el callback del retrieve de urllib. Mi idea es que sea compatible tanto con Python2 como con Python3, aunque tengo un pequeño problema en esto: El módulo PIL todavía no está disponible para Python3, que es mediante el cual se suelen romper los Captchas. Es por ello que en un principio solo será para Python2.6+, aunque estará hecho de manera que el salto a Python3 sea apenas sin dificultades (cuando ya estén los módulos que falten).

Saludos.
Igual ni te hace falta PIL , si hay ruta de la imagen puedes pasarlo a tesseract para que lo pase a cadena .
¿Tienes algún repositorio con control de versiones montado?.
Uhm , estoy mirando y parece que ni MU, RS , HF , Uploading ... usan captchas en free.
kiler2k escribió:Igual ni te hace falta PIL , si hay ruta de la imagen puedes pasarlo a tesseract para que lo pase a cadena .
¿Tienes algún repositorio con control de versiones montado?.
Uhm , estoy mirando y parece que ni MU, RS , HF , Uploading ... usan captchas en free.

Esa es la impresión que me daba, últimamente no hay Captcha en Megaupload... en el caso de esos servidores, sí se podría usar Python3.

El repositorio todavía no lo he hecho, pero seguramente sea un mercurial en Google Code. Eso sí, antes quiero tener algo un poco usable y un mínimo de documentación. Además tengo que reestructurar todo el código Javascript porque he hecho un código espagueti horroroso, y con el sistema de agrupación de links por filtros también.

Adelantar que el programa tiene ya una dependencia fuera del Core: lxml. Afortunadamente suele estar en todas las distros, y el uso de esta biblioteca hará más versátil la programación de plugins de servidores y ofrecerá una mayor velocidad al parsear.

Para los archivos de configuración he decidido usar JSON debido a que toda la información de la configuración se utiliza y es rápido de parsear. Para los links se utiliza SQLite, en el cual deberé hacer algunos arreglos porque el programa usa varios hilos y esta base de datos no recomienda el uso de hilos.

Para el servidor HTTP estoy usando BaseHTTPServer unido con ThreadingMixIn. Para la sincronización servidor-cliente utilizo Comet. Para Javascript utilizo el framework Jquery junto con Jquery UI.

Saludos.
Pinta de lujo, sobre todo lo de la interfaz web, el historial y que sea tan modulable como dices (y como deberían ser más programas).

Aunque tengo algo de idea con Python dudo que sea de utilidad, así que al menos upeo el hilo y me ofrezco como beta-tester en cuanto lo tengas disponible.

Mucha suerte con el proyecto.
que tal llevas el proyecto?
14 respuestas