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
✨ 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:
tkinteris 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:
- Open the Proxy tab
- Select proxy type:
SOCKS5,SOCKS4, orHTTP - Enter server, port, and optional credentials
- 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:
- Install aria2: https://aria2.github.io/
- 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 installpython3-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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
91728cca6ea98e89e21944335de0569a35dede93d727720d454083b171c11d95
|
|
| MD5 |
97c451bfd5677b0a0c7b968a506e4214
|
|
| BLAKE2b-256 |
cfeb0690c381991422291784e2c1e01b12242693c993b014953da1b6c519345b
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6c85cf171fffbf4a770968b807e493d6ca5887757a812073b87dfff49981d8bc
|
|
| MD5 |
33aecdb684a91857773879a017296581
|
|
| BLAKE2b-256 |
fe3d407e0cbd375785ce811b72a33fd681308a0f64ff338f98d124255be44264
|