Skip to main content

HTTP/FTP Folder Downloader GUI with browser and SOCKS5/HTTP proxy support

Project description

Ganjirs

A powerful HTTP/FTP Folder Downloader GUI with built-in browser and SOCKS5/HTTP proxy support.

Created by RAKIB

PyPI version Python Versions License: MIT


✨ Features

  • Recursive Directory Downloading — Recursively download entire HTTP/FTP directory trees with a single click
  • Built-in Browser — Navigate HTTP/FTP servers with a full-featured browser including bookmarks, history, and tab management
  • SOCKS5 / HTTP Proxy Support — Route all traffic through SOCKS5 or HTTP proxies, with optional authentication
  • YAML Proxy Configuration — Load proxy lists from YAML files and rotate them automatically
  • Multi-threaded Downloads — Download multiple files in parallel with configurable concurrency
  • Resume Support — Resume interrupted downloads automatically
  • Progress Tracking — Real-time progress bars and download speed display
  • Filter & Sort — Filter directory listings by name, sort by name, date, or size
  • Download Queue — Queue and manage multiple download jobs
  • Retry Failed Downloads — Automatically retry failed downloads with a single click
  • Aria2 / wget Integration — Optionally use aria2c or wget as the download backend for maximum performance
  • Stop / Cancel — Stop any download in progress at any time

📦 Installation

pip install ganjirs

Optional dependencies for full proxy support:

pip install ganjirs[full]

Dependencies

Package Purpose
requests HTTP requests and downloading
beautifulsoup4 HTML parsing for directory listings
PySocks SOCKS4/SOCKS5 proxy support
PyYAML Loading proxy configs from YAML files

Note: tkinter is required and ships with Python by default. On Linux, install it with: sudo apt install python3-tk


🚀 Usage

Launch the GUI

After installing, run from anywhere in your terminal:

ganjirs

Or:

ganjirs-gui

Use as a Python module

from ganjirs import main
main()

Or integrate directly:

import tkinter as tk
from ganjirs import HttpDownloaderGUI

root = tk.Tk()
app = HttpDownloaderGUI(root)
root.mainloop()

🖥️ Screenshots

Downloader Tab

Enter a URL, configure your proxy, set thread count, and start downloading. The progress panel shows live stats for each file.

Browser Tab

Navigate HTTP directory listings with the built-in browser. Double-click folders to explore, click files to download. Use the sidebar for bookmarks and history.


⚙️ Configuration

Proxy Setup

Via the GUI:

  1. Open the Proxy tab
  2. Select proxy type: SOCKS5, SOCKS4, or HTTP
  3. Enter server, port, and optional credentials
  4. Click Apply

Via YAML file:

Create a proxies.yaml:

proxies:
  - type: SOCKS5
    server: 127.0.0.1
    port: 1080
    username: user      # optional
    password: pass      # optional
  - type: HTTP
    server: proxy.example.com
    port: 8080

Then load it in the GUI via File → Load Proxy File.


🔧 Advanced: Using aria2 Backend

If aria2c is installed and available in your PATH, Ganjirs can use it as the download backend for much faster multi-connection downloads:

  1. Install aria2: https://aria2.github.io/
  2. In the GUI, go to Settings → Download Engine → aria2

📋 Requirements

  • Python 3.8+
  • Windows, macOS, or Linux
  • tkinter (ships with standard Python installations; on some Linux distros install python3-tk)

🤝 Contributing

Contributions are welcome! Please open an issue or pull request on GitHub.


📄 License

This project is licensed under the MIT License. See LICENSE for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ganjirs-1.1.0.tar.gz (36.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ganjirs-1.1.0-py3-none-any.whl (34.5 kB view details)

Uploaded Python 3

File details

Details for the file ganjirs-1.1.0.tar.gz.

File metadata

  • Download URL: ganjirs-1.1.0.tar.gz
  • Upload date:
  • Size: 36.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for ganjirs-1.1.0.tar.gz
Algorithm Hash digest
SHA256 91728cca6ea98e89e21944335de0569a35dede93d727720d454083b171c11d95
MD5 97c451bfd5677b0a0c7b968a506e4214
BLAKE2b-256 cfeb0690c381991422291784e2c1e01b12242693c993b014953da1b6c519345b

See more details on using hashes here.

File details

Details for the file ganjirs-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: ganjirs-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 34.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.3

File hashes

Hashes for ganjirs-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6c85cf171fffbf4a770968b807e493d6ca5887757a812073b87dfff49981d8bc
MD5 33aecdb684a91857773879a017296581
BLAKE2b-256 fe3d407e0cbd375785ce811b72a33fd681308a0f64ff338f98d124255be44264

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page