Bitácora: Desarrollo de un gestor de descargas desde cero similar a Jdownloader añadiendo Torrents (Código Abierto)

  • Autor Autor Prothone
  • Fecha de inicio Fecha de inicio
Prothone

Prothone

No recomendado
Verificación en dos pasos activada
Verificado por Whatsapp
Verificado por Binance
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
Bien, esta es una sección que me gusta estar no lo negare. Actualmente veo que muchos hacen bitácoras para ganar dinero, no lo veo mal, pero yo quiero hacer algo un poco distinto.

Bien como ya leyeron en el titulo me hare la tarea de desarrollar una herramienta que quizás ayude a muchos que se dedican a descargar cosas (en su gran mayoría) descargas por lotes., queriendo dar un enfoque transparente en el código y dándolo para que cualquiera pueda verlo, modificarlo, pero usando la licencia Apache 2.0 que especifica que el proyecto se deberá mantener a código abierto siempre.

Mi beneficio de esto es simple hacerme un pequeño espacio y dar algo que beneficie a todos.

A muchos les gusta las historias, no me extenderé, me gusta como funcionan los gestores de descargas como jdownloader que permite descargas simultaneas detectando el link directamente, pero algo que me choca es que no exista algo similar para torrents y descargas normales juntas, incluso rechazándolo directamente. Un proyecto que sí que lo hace, pero a decir verdad su descarga de Torrents es bastante pobre es el Free Download Manager, es gratis, pero es de código cerrado, que vamos todos sabemos lo que quiere decir, "si no te cobran el producto, tú eres el producto".

Ahora se preguntará... ¿Como sé que no harás lo mismo?, es simple valoro mucho la privacidad de las personas y que mejor que saber que estas instalando, mi enfoque al hacerlo a código abierto es hacerlo totalmente transparente que cualquiera pueda verlo e incluso mejorarlo.

Bueno he expresado un poco mis pensamientos antes de empezar lo técnico jaja:

Bien algunas cosas a tener en cuenta de cómo estará desarrollado el proyecto y que tecnología estaré usando (esto siempre estará sujeto a cambios).

Bien lo principal es usar Python 3.X, es un lenguaje fácil de entender por muchos, y usaremos dependencias tales como:
  • Módulo tkinter para la GUI.
  • Módulo requests para manejar solicitudes HTTP.
  • threading para gestionar múltiples hilos de descarga.

Con eso dicho dejare el link de GitHub para que puedan mirarlo, aunque ya les digo está en una etapa muy paleolítica.

Me propondré a actualizar el código una vez cada semana y dar algunos avances aquí, dependiendo de que tan lleno este de trabajo puesto que esto lo hare más como hobby

sin más gracias por leerme hasta aquí dejo el enlace de GitHub:


STATUS: Alfa (Puede contener errores serios aun)

PD: estoy abierto a contribuciones al código, por favor si lo considera lea el apartado "Contributing" para añadir las contribuciones


ACTUALIZACION (03-06-2024):

Primero que nada he agregado otra GUI usando una libreria tkinter

en mi caso me decante por Sun Valley me parece bonita y adecuada

dejo el proyecto aqui para el que lo quiera usar:

https://github.com/rdbende/Sun-Valley-ttk-theme

una vez aplicado me parece muy bonita dejo una captura de cómo se va viendo hasta ahora:


1717467133993.png


- 2da actualización es que corregí un bug algo importante al descargar, que guardaba el archivo descargado y borraba la extensión del mismo por una por defecto. ahora puedes especificar donde se guardará exactamente el archivo ya que te preguntara donde se va a guardar antes de de descargar.

/
1717467249604.png


- 3era actualizacion: Además de otra característica agregada es poder seleccionar en cuantas partes de dividirá la descarga, por ahora sigue necesitando la url directa de descarga para comenzar a descargar, en un futuro planeo hacerlo más friendly en ese aspecto.

1717467642230.png


- 4ta actualización: Al terminar una descarga ahora te da un aviso que avisa cuando está completa además de que la GUI ahora se muestra cuando está descargando aún falta pulir varios detalles aun como el hecho del cálculo de la velocidad, arreglar el bug del progreso y que cambie el status cuando se cumplas patrones tales como (Descargando - Completo - Cancelado - Pausado).

Aun no detecta la web estoy pensando hacer esto con una extensión de navegador, aunque tengo que pensarlo mejor el cómo llevarlo de manera eficiente y que detecte las descargas para mandarlas al cliente, lo vere mejor en un futuro.

Sin más estas fueron algunas de las actualizaciones que le hice de fecha (04/06/24), recordándoles que acepto cualquier ayuda que quieran, es un proyecto que es abierto y que iré actualizando cuando tenga tiempo, ademas que lo llevo en ratos libres.

Un saludo a todos nos vemos en otra actualización
 
Última edición:
Me parece una bitacora interesante de seguir. No muchos les gusta contribuir al open source y mucho menos de este tipo de proyectos! Sera interesante ver el desarrollo, problablemente me anime a contribuir en una etapa mas adelante
 
Me parece una bitacora interesante de seguir. No muchos les gusta contribuir al open source y mucho menos de este tipo de proyectos! Sera interesante ver el desarrollo, problablemente me anime a contribuir en una etapa mas adelante
Muchas gracias por tus palabras de animo, si gustas contribuir seria lo maximo!.

Y si entiendo de que muchos no les guste contribuir mucho al opensource, pero muchos deben recordar que grandes cosas que usamos hoy en dia nacen del opensource, el mejor ejemplo que puedo dar es el proyecto Chromium, un proyecto abierto a que cualquiera pueda replicarlo y mejorarlo siempre que el proyecto este abierto.

¡Espero lograr que gente logre inspirarse en desarrollar mejores soluciones para muchos de los que estamos! 🙂
 
No tengo tanta experiencia en python como con otros lenguajes, solo se lo necesario para scrapear. Revise el GH, y por la disposición de las carpetas, mi pregunta es: estas usando algún patrón de arquitectura?
 
No tengo tanta experiencia en python como con otros lenguajes, solo se lo necesario para scrapear. Revise el GH, y por la disposición de las carpetas, mi pregunta es: estas usando algún patrón de de arquitectura?
Estoy trabajando un enfoque Modular, que es dividir el trabajo a varios archivos separados, asi si se llega a tener errores el enfoque para encontrar dicho error se hara mas facil de solucionar.

Para hacerla simple es la manera mas facil de hacerle mejoras al codigo constantemente, se hace mas facil el manteniminto y la lectura del codigo.

De igual manera planeo hacer una wiki sencilla para explicar que abra en cada carpeta, y que hace cada archivo (aunque el código lo estaré comentando)
 
Interesante proyecto. Lo sigo de una.

Si te sirve, PyLoad es un gestor de descargas, tal vez quieras echarle un ojo.


Y para la gui, Uhmm sería mejor (y más bonito jejeje) wxwidgets (wxPython).

Suerte!
Oh lo mirare con mucho ojo, quizas pueda ayudar a mejorar la experiencia de uso y la GUI le dare un ojo a la libreria, la busque en google y no se ve nada mal (mucho mejor), me recuerda mucho al windows 98
 
Bitacoras de las que me parecen muy interesantes para mi gusto. Por acá estaré al tanto de tus avances y que genial por lo de Open Source.
 
Ánimo con la bitácora. Yo estoy también pensando en hacer proyectos similares (no expecíficamente de descargas) y estaba dudando entre python y java.

Estaré al tanto de tu aporte, a ver qué tal te va y qué pros y contras ves durante el proceso
 
Atrás
Arriba