Discover who uses WhatsApp and Extract
Project description
WhatsChecker
🕵️♂️ A powerful multi-threaded CLI tool to check WhatsApp number validity via WhatsApp Web.
🌟 Features
- ✅ Detect Active/Inactive WhatsApp Numbers
- 🧠 Intelligent Login Handling (QR scan and session reuse)
- 🔀 Concurrent Multi-Account Checking
- 🛡️ Proxy Support (optional, per account)
- 🗃️ Persistent Profiles – saves WhatsApp login sessions
- 🕶️ Headless Mode – optional
- 🕓 Customizable Delays – mimic human-like behavior
- 📂 Custom Config Support (
whatschecker.config.json) - 📈 Built with Selenium + Undetected ChromeDriver
- 💥 Auto dependency installs on first run
- 📇 Extracts valid WhatsApp numbers from saved contacts on the device
🚀 Usage
1. 📦 Installation
git clone https://github.com/bitbytelab/WhatsChecker.git
cd WhatsChecker
chmod +x whatschecker.py
2. 🧪 First-time Setup (Scan QR)
./whatschecker.py --add-account
Scan the QR code to save your WhatsApp session. You can add multiple accounts this way.
3. 📤 Checking Numbers
Prepare an input file (e.g., numbers.txt) with one number per line:
+12025550123
+447911123456
+8801711123456
Run the checker:
./whatschecker.py --input numbers.txt --valid active.txt --invalid inactive.txt
You can also run in headless mode:
./whatschecker.py --input numbers.txt --valid active.txt --invalid inactive.txt --headless
4. 📇 Contacts Extraction
To extract valid WhatsApp numbers from your saved contacts:
python -m whatschecker --input contacts
This will:
- Launch WhatsApp Web and log you in.
- Open the "New Chat" sidebar to access all device contacts.
- Incrementally scroll through the list and extract each visible contact.
- Save valid WhatsApp numbers along with name, about, and avatar info to a CSV.
The generated CSV will be saved as:
valid_whatsapp_contacts_YYYY_mm_dd_HH_MM.csv
📁 Example output preview:
| name | about | user_avatar |
|---|---|---|
| 019xxxxxxxxx | Always learning | https://media.whatsapp.net/... |
| 018xxxxxxxxx | Big brother watching you 😊 | default |
📝 Note: Contact names must be saved as numbers (i.e., "017xxxxxxx") to work properly with this feature.
5. 🧩 Optional Arguments
| Flag | Description |
|---|---|
--input |
Input file with numbers |
--valid |
Output file for active numbers |
--invalid |
Output file for inactive numbers |
--delay |
Base delay in seconds between number checks |
--proxies |
List of proxies (e.g., http://ip:port) |
--headless |
Run Chrome in headless mode |
--add-account |
Launch new profile and scan QR to add account |
6. ⚙️ Config File Support
You can also define your settings in a whatschecker.config.json file:
{
"input": "numbers.txt",
"valid": "active.txt",
"invalid": "inactive.txt",
"delay": 8,
"proxies": ["http://127.0.0.1:8000", null]
}
Then just run:
./whatschecker.py
🔐 Session Management
Saved WhatsApp sessions are stored in:
./Profiles/account1
./Profiles/account2
...
Remove a folder to reset that session.
🧰 Dependencies
- Python
3.9+ - undetected-chromedriver
- selenium
📦 Auto-installs on first run if not found!
❓ FAQ
Q: Will my WhatsApp account get banned?
A: This script mimics human behavior using real browser sessions and delays. Use proxies and multiple accounts to reduce risk. No API violations.
Q: Is this open source?
A: Yes! MIT licensed. Use it responsibly and contribute back.
👨💻 Author
Made with ❤️ by BitByteLab
📧 Contact: bbytelab@gmail.com
📄 License
MIT License – see LICENSE file for details.
⭐️ Star this project
If you find this useful, please consider starring the repo!
👉 github.com/bitbytelab/WhatsChecker
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 whatschecker-0.1.0.tar.gz.
File metadata
- Download URL: whatschecker-0.1.0.tar.gz
- Upload date:
- Size: 12.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
12fbe2bce1119e465f55b62ca37dcaf10d18772d0c78c81b77e7132279f0cf6d
|
|
| MD5 |
9065d2846295cfdbe951f43b1a273124
|
|
| BLAKE2b-256 |
5091ab886f950fbb5ddf171b3c6cb00ca6f6eabd97e13606a39d7719f1dd7987
|
File details
Details for the file whatschecker-0.1.0-py3-none-any.whl.
File metadata
- Download URL: whatschecker-0.1.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e59305394917fd0957b90eeb2717bf404bf71f0012f4e0a906cdac756336279a
|
|
| MD5 |
46eae1f427955dc2ca8c6fdc9b681336
|
|
| BLAKE2b-256 |
491f76b22609b7d74fec0e724bc409721f7e07951360abc657a59b809c913dab
|