Parser and analytics tools for WhatsApp group chats
Project description
whatstk
Parse, analyze, and visualize WhatsApp chats with Python
Features
- 📱 Parse WhatsApp exports from Android and iOS (including zip files)
- 🐼 Convert to pandas DataFrames for easy analysis
- 📊 Interactive visualizations powered by Plotly
- 🔧 Command-line tools for quick CSV conversions
- 🌍 Multi-language support for various WhatsApp date formats
- 🚀 Fast and efficient processing of large chat histories
Installation
pip install whatstk
Requirements: Python 3.11+
Install development version
pip install git+https://github.com/lucasrodes/whatstk.git@develop
Quick Start
Export your WhatsApp chat
Follow the export instructions for your device.
Load and analyze
from whatstk import df_from_whatsapp
# Load chat into a DataFrame
df = df_from_whatsapp("path/to/chat.txt")
# Or directly from iOS zip export
df = df_from_whatsapp("path/to/chat.zip")
# Now use pandas to analyze
print(df.head())
Convert to CSV
whatstk-to-csv input_chat.txt output.csv
Visualize
from whatstk.graph import plot_user_message_count
# Interactive message count chart
fig = plot_user_message_count(df)
fig.show()
Documentation
Full documentation available at whatstk.readthedocs.io
Contributing
We welcome contributions! See our contribution guide to get started.
License
This project is licensed under the GPL-3.0 License.
Citation
If you use whatstk in your research or project, please cite:
@software{whatstk,
author = {Rodés-Guirao, Lucas},
title = {whatstk: WhatsApp analysis and parsing toolkit},
url = {https://github.com/lucasrodes/whatstk},
year = {2025}
}
or as
Lucas Rodés-Guirao. "whatstk, WhatsApp analysis and parsing toolkit", https://github.com/lucasrodes/whatstk
Featured Projects
- Your WhatsApp Chat History in Cool Graphs by @batmanscode
- WhatsAppening to the news by @enric1994
- Summary Analysis of My WhatsApp Chats by N.M. Danial
- From Chat to Insights: Analyzing WhatsApp Group Conversations by Erland Sada
- Building a Chatbot: Fine-Tune LLMs with WhatsApp Data by Daniel Pleus
[!NOTE] If you have created a project using whatstk, I'd love to know that and add it this list! Thanks a lot!
⭐ Star this repo if you find it useful!
Made with ❤️ by Lucas Rodés-Guirao
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 whatstk-0.8.1.tar.gz.
File metadata
- Download URL: whatstk-0.8.1.tar.gz
- Upload date:
- Size: 17.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7181aa07d76903d78fd0a6f6da6b2d81028c8b57018f692cbb66b443c6607f0a
|
|
| MD5 |
3668ad7db640df798ba5f0669d63e651
|
|
| BLAKE2b-256 |
0d9ae4ba0684a93a3184c0be76bce3bef9787a329149f4050a6ec45d0d025579
|
Provenance
The following attestation bundles were made for whatstk-0.8.1.tar.gz:
Publisher:
release.yml on lucasrodes/whatstk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whatstk-0.8.1.tar.gz -
Subject digest:
7181aa07d76903d78fd0a6f6da6b2d81028c8b57018f692cbb66b443c6607f0a - Sigstore transparency entry: 719401484
- Sigstore integration time:
-
Permalink:
lucasrodes/whatstk@ba408401490e6dd3ded77e95fa335a510b374518 -
Branch / Tag:
refs/tags/v0.8.1 - Owner: https://github.com/lucasrodes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ba408401490e6dd3ded77e95fa335a510b374518 -
Trigger Event:
release
-
Statement type:
File details
Details for the file whatstk-0.8.1-py3-none-any.whl.
File metadata
- Download URL: whatstk-0.8.1-py3-none-any.whl
- Upload date:
- Size: 54.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f35a9fc64a3a56432de503cbaece08d1425366b8e4c69b57ac895f72a9ac8c66
|
|
| MD5 |
fd310f9e56cbcea74d90d32973d4c7c9
|
|
| BLAKE2b-256 |
83d073e43441153e320fb0a042a41e09cfc04819940ed7ca10b17263a838a300
|
Provenance
The following attestation bundles were made for whatstk-0.8.1-py3-none-any.whl:
Publisher:
release.yml on lucasrodes/whatstk
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
whatstk-0.8.1-py3-none-any.whl -
Subject digest:
f35a9fc64a3a56432de503cbaece08d1425366b8e4c69b57ac895f72a9ac8c66 - Sigstore transparency entry: 719401489
- Sigstore integration time:
-
Permalink:
lucasrodes/whatstk@ba408401490e6dd3ded77e95fa335a510b374518 -
Branch / Tag:
refs/tags/v0.8.1 - Owner: https://github.com/lucasrodes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ba408401490e6dd3ded77e95fa335a510b374518 -
Trigger Event:
release
-
Statement type: