An automated Python script that connects to various Windscribe VPN servers using different protocols, runs a full speed test (Ping, Download, Upload), and exports the results into an Excel spreadsheet.
Navigating heavily restricted network environments, such as the internet in Iran, often requires Windscribe subscribers to constantly test various servers across different countries, protocols, and ports to establish a stable and fast connection. Manually checking these combinations is a tedious and time-consuming process. This automated script was developed precisely to address this need. It systematically iterates through predefined Windscribe configurations, testing ping, download, and upload speeds for each, allowing users to effortlessly identify the optimal settings for their network conditions.
- Automatically connects and disconnects to a predefined list of Windscribe servers.
- Tests multiple connection protocols (e.g.,
ikev2:500,udp:443). - Runs speed tests via the command line using
speedtest-cli. - Implements strict timeouts to prevent the script from hanging on bad connections.
- Automatically exports all results to a neatly formatted Excel file (
.xlsx).
To run this script, you need to have the following installed on your system:
- Python 3.x
- Windscribe Desktop Application (Logged in to your account).
- Git (Optional, for cloning).
For this script to work, the windscribe-cli command must be recognizable by your command prompt. You need to add the Windscribe installation folder to your system's PATH Environment Variable.
- Find where Windscribe is installed (usually
C:\Program Files\WindscribeorC:\Program Files (x86)\Windscribe). - Open Windows Search and type "Environment Variables" -> Click "Edit the system environment variables".
- Click on Environment Variables... at the bottom.
- Under System variables, find the
Pathvariable, select it, and click Edit. - Click New and paste the path to your Windscribe folder.
- Click OK on all windows and restart your computer (or VS Code / Command Prompt).
- Clone this repository or download the source code:
git clone https://github.com/HojjatSabzali/Windscribe-Auto-Speedtester.git
cd Windscribe-Auto-Speedtester- (Optional but recommended) Create a virtual environment:
python -m venv venv
venv\Scripts\activate- Install the required Python packages:
pip install -r requirements.txtSimply run the script. Make sure your Windscribe application is running in the background but currently disconnected.
python main.py(Note: Change main.py to whatever you named the script file).
The script will begin testing the servers. You can see the live progress in your terminal. Once finished, a file named windscribe_speedtest_results.xlsx will be generated in the same directory.
You can easily modify the script to fit your needs by changing the variables at the top of the Python file:
servers: Add or remove Windscribe server locations.protocols: Change the connection protocols.do_download,do_upload,do_ping: Set toFalseif you want to skip specific tests.test_timeout: Adjust the maximum time allowed for a single test.
In the spirit of full transparency, please note that the core Python codebase of this application was generated using Gemini 3.1 Pro. My primary role in this project was focused on high-level system design, logic orchestration via detailed prompting, and rigorous debugging during the execution phases.
This project is not affiliated with, maintained, authorized, endorsed, or sponsored by Windscribe. It is an independent automation tool created for personal use and testing purposes.