Warning
Do not use this for stalking purposes. Trust me, you're better off moving on. Time will heal all wounds.
This tool is intended for educational and personal use only. It should not be used for stalking, harassment, or any other activities that violate the privacy rights of individuals. Please respect the privacy of others and use this tool responsibly.
This tool starts up a Chrome (driver) instance and goes to WhatsApp Web. You don't want to authenticate every time, and since each chromedriver reboot resets the browser, you need to create a Chrome profile. Do so by running google-chrome --user-data-dir=/path/to/your/new/profile
in the root of the project. Navigate to WhatsApp, authenticate, and optionally install extensions like WhatsApp Plus to hide blue checkmarks.
Note
This project is no longer actively maintained. Feel free to fork and adapt for your needs. Works on my machine which is PopOS (ubuntu) with these versions.
pop-os% chromedriver --v ; python3 --version ; pip --version
ChromeDriver 130.0.6723.0 (ed44bc873f9ef776a2ef1ccb90252a6de5666cd6-refs/branch-heads/6723@{#1})
Python 3.10.12
pip 22.0.2 from /usr/lib/python3/dist-packages/pip (python 3.10)
glhf
pip install -r requirements.txt
# or pip3. If having issues, look into app.py, copy the imports into chatgpt and ask for pip installs
Then you should be able to run the app with python app.py
or ./start.sh
which then serves a server on localhost:5000
.
- Real-time online/offline status tracking
- Visual timeline of activity
- Daily pattern analysis
- Detailed statistics
- Historical data tracking
- Data export functionality
- Responsive web interface
The application requires specific versions of Chrome and ChromeDriver that match. Here's how to set them up correctly:
-
Check your Chrome version:
- Open Chrome
- Click the three dots (⋮) in the top-right corner
- Go to Help > About Google Chrome
- Note down the version number (e.g., 130.0.6723.91)
-
Install ChromeDriver:
# Method 1: Using ChromeDriver Manager (Recommended)
pip install webdriver-manager
# Method 2: Manual Installation
# 1. Go to https://googlechromelabs.github.io/chrome-for-testing/
# 2. Download the ChromeDriver version matching your Chrome version
# 3. Extract the zip file
# 4. Add the ChromeDriver location to your PATH:
# - Right-click 'This PC' > Properties > Advanced system settings
# - Click 'Environment Variables'
# - Under 'System variables', find and select 'Path'
# - Click 'Edit' > 'New'
# - Add the path to your ChromeDriver folder
# - Click 'OK' on all windows
- Verify ChromeDriver installation:
chromedriver --version
# Should output something like: ChromeDriver 130.0.6723.0
- Check Chrome version:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --version
- Install ChromeDriver:
# Method 1: Using Homebrew (Recommended)
brew install --cask chromedriver
# Method 2: Using ChromeDriver Manager
pip install webdriver-manager
# Method 3: Manual Installation
# 1. Visit https://googlechromelabs.github.io/chrome-for-testing/
# 2. Download matching ChromeDriver version
# 3. Extract the zip file
# 4. Move ChromeDriver to /usr/local/bin:
sudo mv chromedriver /usr/local/bin/
sudo xattr -d com.apple.quarantine /usr/local/bin/chromedriver
- Verify installation:
chromedriver --version
SessionNotCreatedException: Message: session not created: This version of ChromeDriver only supports Chrome version XX
Solution:
# 1. Uninstall existing ChromeDriver
pip uninstall webdriver-manager
rm -f /usr/local/bin/chromedriver # macOS
del chromedriver.exe # Windows
# 2. Update Chrome to latest version
# 3. Reinstall ChromeDriver
pip install webdriver-manager
WebDriverException: Message: 'chromedriver' executable needs to be in PATH
Solution:
# Windows - Add to PATH manually:
setx PATH "%PATH%;C:\path\to\chromedriver"
# macOS - Create symlink:
sudo ln -s /path/to/chromedriver /usr/local/bin/chromedriver
OSError: [Errno 13] Permission denied: 'chromedriver'
Solution:
# Fix permissions
sudo chmod +x /usr/local/bin/chromedriver
sudo xattr -d com.apple.quarantine /usr/local/bin/chromedriver
OSError: [Errno 8] Exec format error: '.../THIRD_PARTY_NOTICES.chromedriver'
Solution:
# 1. Remove the webdriver-manager cache:
rm -rf ~/.wdm/drivers/chromedriver/ # macOS/Linux
rd /s /q %USERPROFILE%\.wdm\drivers\chromedriver # Windows
# 2. Manually download ChromeDriver and specify path in app.py:
driver_path = "/absolute/path/to/chromedriver" # Update in app.py
- Install Python from the official website:
# Download Python from https://www.python.org/downloads/windows/
# During installation, check "Add Python to PATH"
- Clone or download the repository:
git clone https://github.com/remcostoeten/whatsapp-online-status-tracker.git whatsapp-tracker
cd whatsapp-tracker
- Install dependencies:
pip install -r requirements.txt
# or pip3. If having issues, look into app.py, copy the imports into chatgpt and ask for pip installs
- Create and activate virtual environment:
python -m venv venv
.\venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Install Homebrew (if not installed):
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- Install Python and Chrome:
brew install python
brew install --cask google-chrome
- Clone or download the repository:
git clone https://github.com/remcostoeten/whatsapp-online-status-tracker.git
cd whatsapp-online-status-tracker
- Create and activate virtual environment:
python3 -m venv venv
source venv/bin/activate
- Install dependencies:
pip install -r requirements.txt
- Start the application:
python app.py
## or
./start.sh
- Open your web browser and navigate to:
http://localhost:5000
- Steps to track a contact:
- Open WhatsApp Web and scan the QR code
- Enter the exact contact name as it appears in WhatsApp
- Click "Start Tracking"
- The application will begin monitoring the contact's online status
whatsapp-tracker/
├── app.py # Main application file
├── requirements.txt # Python dependencies
├── README.md # Documentation
└── templates/ # HTML templates
├── error.html # Error page template
├── index.html # Main application interface
└── result.html # Results display template
You can modify the ChromeDriver options in app.py
:
chrome_options = Options()
chrome_options.add_argument("--no-sandbox")
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--disable-gpu") # Needed for some Windows setups
chrome_options.add_argument("--remote-debugging-port=9222") # For debugging
# For headless mode (no GUI):
# chrome_options.add_argument("--headless")
Create a .env
file in your project root:
CHROME_DRIVER_PATH=/path/to/chromedriver
FLASK_ENV=development
DEBUG_MODE=True
The application stores data in:
- Windows:
%APPDATA%/whatsapp-tracker/
- macOS:
~/Library/Application Support/whatsapp-tracker/
You can modify this in app.py
:
data_dir = os.path.expanduser("~/whatsapp-tracker-data")
os.makedirs(data_dir, exist_ok=True)
Contributions were welcome, but as this project is no longer maintained, consider forking the repository for your own modifications.
- Flask framework
- Selenium WebDriver
- Chart.js
- Tailwind CSS
For historical reference only - no active support is provided.