A simple GUI tool to search movies on Il Corsaro Nero and start downloads via qBittorrent using magnet links. Traffic goes through Tor (SOCKS5) for scraping.
- Search for a film title and list results with seeders and size
- Start the download in qBittorrent, choosing a local download path or using a default
- Minimal dark-themed GUI built with CustomTkinter
- Python 3.10+
- Tor running locally with a SOCKS5 proxy (default 127.0.0.1:9050)
- qBittorrent running, with Web UI enabled
- Default Web UI URL: http://localhost:8080/
- Default credentials used by this project: admin/adminadmin (adjust via env vars)
- Dependencies: requests, beautifulsoup4, qbittorrent-api, customtkinter
You can install Python dependencies with:
pip install requests beautifulsoup4 qbittorrent-api customtkinterSet environment variables as needed. Defaults are shown in parentheses.
- TOR_PROXY (127.0.0.1)
- TOR_PORT (9050)
- QBIT_HOST (http://localhost:8080/)
- QBIT_USER (admin)
- QBIT_PASS (adminadmin)
- DEFAULT_DOWNLOAD_PATH (/home/enea/Downloads)
Example (temporary for the session):
export TOR_PROXY=127.0.0.1
export TOR_PORT=9050
export QBIT_HOST=http://localhost:8080/
export QBIT_USER=admin
export QBIT_PASS=adminadmin
export DEFAULT_DOWNLOAD_PATH=$HOME/Downloadsgui.py— GUI application with you can use the other functionsscraper.py— Scrapes Il Corsaro Nero via Tor, returns results and the magnet/torrent linktorrent_downloader.py— Connects to qBittorrent Web API and adds the torrent
- Start Tor locally so SOCKS5 is available.
- Start qBittorrent with Web UI enabled and note host, username, password.
- Set configuration env vars as needed.
- Run the GUI:
python gui.pySearch a film title, click a result to start the download. If the path input is left empty, the app uses DEFAULT_DOWNLOAD_PATH.
- Web UI login failed
- Check
QBIT_HOST,QBIT_USER,QBIT_PASS - Ensure qBittorrent Web UI is enabled and reachable
- Check
- No search results
- Confirm Tor is running and SOCKS5 is accessible on
TOR_PROXY:TOR_PORT - The target site may have changed layout or be down; inspect
scraper.pyselectors
- Confirm Tor is running and SOCKS5 is accessible on
- Download does not start
- Check that the magnet/torrent link resolves and qBittorrent accepts it
- Look for duplicate torrent message due to same infohash
- Docker Compose problem
- Because it is a gui application docker needs permission to use the display via the command
xhost +local:docker
- Because it is a gui application docker needs permission to use the display via the command