# whatsapp-chat-analyze
Command line tool to analyze WhatsApp exported chat data (accepts .txt and .zip) and plot pretty interactive charts.
- [whatsapp-chat-analyze](#whatsapp-chat-analyze)
- [Demo](#demo)
- [Features](#features)
- [Installation](#installation)
- [pipx](#pipx)
- [pip](#pip)
- [Usage](#usage)
- [Develop](#develop)
- [Limitations](#limitations)
## Demo
![](https://github.com/cli/cli/assets/45612704/08026ab5-24c0-4ec1-8afe-903d57654e15)
For more plots and interactity, check out the blog post: https://teddysc.me/blog/whatsapp-chat-analyze .
## Features
- Simple to install and use, no cloning involved, supports modern Python versions
- Extracts chat data from .txt or .zip files
- Export to csv (`-c`)
- Pretty interactive charts with plotly and save them to HTML files
- 6 different plots, see [demo](#demo)
- Anonymize sender names to `A`, `B`, `C`, etc. (`-a`)
## Installation
Python>=3.10 required.
### pipx
This is the recommended installation method.
```
$ pipx install whatsapp-chat-analyze
```
### [pip](https://pypi.org/project/whatsapp-chat-analyze/)
```
$ pip install whatsapp-chat-analyze
```
## Usage
```plain
$ whatsapp-chat-analyze --help
usage: whatsapp-chat-analyze [-h] [-n name] [-o base] [-d] [-E] [-c] [-a] file
Analyze Whatsapp Exported .txt or .zip (will be automatically extracted) chat file
positional arguments:
file Chat file (_chat.txt or *.zip) to analyze
options:
-h, --help show this help message and exit
-n name, --chat-name name
Name of the chat (default: Chat)
-o base, --output-base-name base
Output base name for the plots (default: whatsapp-chat)
-d, --by-day-only Plot messages per day only (default: False)
-E, --extract-only Extract the chat and exit (default: False)
-c, --to-csv-only Convert chat to csv and exit (default: False)
-a, --anonymize Anonymize the chat by replacing author names with generic names (default: False)
```
## Develop
```
$ git clone https://github.com/tddschn/whatsapp-chat-analyze.git
$ cd whatsapp-chat-analyze
$ poetry install
```
## Limitations
- Parsing of chat data uses simple regex, and author names in non-latin languages may not be parsed correctly
Raw data
{
"_id": null,
"home_page": "https://github.com/tddschn/whatsapp-chat-analyze",
"name": "whatsapp-chat-analyze",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.10",
"maintainer_email": null,
"keywords": "cli, utility, whatsapp, chat, analyze, visualization",
"author": "Teddy Xinyuan Chen",
"author_email": "45612704+tddschn@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/30/6d/9e7a98ccdc488144b6c80d4547aa2319971b7d09c59075055b988c221c26/whatsapp_chat_analyze-0.1.7.tar.gz",
"platform": null,
"description": "# whatsapp-chat-analyze\n\nCommand line tool to analyze WhatsApp exported chat data (accepts .txt and .zip) and plot pretty interactive charts.\n\n- [whatsapp-chat-analyze](#whatsapp-chat-analyze)\n - [Demo](#demo)\n - [Features](#features)\n - [Installation](#installation)\n - [pipx](#pipx)\n - [pip](#pip)\n - [Usage](#usage)\n - [Develop](#develop)\n - [Limitations](#limitations)\n\n## Demo\n\n![](https://github.com/cli/cli/assets/45612704/08026ab5-24c0-4ec1-8afe-903d57654e15)\n\nFor more plots and interactity, check out the blog post: https://teddysc.me/blog/whatsapp-chat-analyze .\n\n## Features\n\n- Simple to install and use, no cloning involved, supports modern Python versions \n- Extracts chat data from .txt or .zip files\n- Export to csv (`-c`)\n- Pretty interactive charts with plotly and save them to HTML files\n- 6 different plots, see [demo](#demo)\n- Anonymize sender names to `A`, `B`, `C`, etc. (`-a`)\n\n## Installation\n\nPython>=3.10 required.\n\n### pipx\n\nThis is the recommended installation method.\n\n```\n$ pipx install whatsapp-chat-analyze\n```\n\n### [pip](https://pypi.org/project/whatsapp-chat-analyze/)\n\n```\n$ pip install whatsapp-chat-analyze\n```\n\n## Usage\n\n```plain\n$ whatsapp-chat-analyze --help\n\nusage: whatsapp-chat-analyze [-h] [-n name] [-o base] [-d] [-E] [-c] [-a] file\n\nAnalyze Whatsapp Exported .txt or .zip (will be automatically extracted) chat file\n\npositional arguments:\n file Chat file (_chat.txt or *.zip) to analyze\n\noptions:\n -h, --help show this help message and exit\n -n name, --chat-name name\n Name of the chat (default: Chat)\n -o base, --output-base-name base\n Output base name for the plots (default: whatsapp-chat)\n -d, --by-day-only Plot messages per day only (default: False)\n -E, --extract-only Extract the chat and exit (default: False)\n -c, --to-csv-only Convert chat to csv and exit (default: False)\n -a, --anonymize Anonymize the chat by replacing author names with generic names (default: False)\n\n```\n\n## Develop\n\n```\n$ git clone https://github.com/tddschn/whatsapp-chat-analyze.git\n$ cd whatsapp-chat-analyze\n$ poetry install\n```\n\n## Limitations\n\n- Parsing of chat data uses simple regex, and author names in non-latin languages may not be parsed correctly",
"bugtrack_url": null,
"license": "MIT",
"summary": "Ingest and analyze WhatsApp chat data, and plot beautiful visualizations.",
"version": "0.1.7",
"project_urls": {
"Bug Tracker": "https://github.com/tddschn/whatsapp-chat-analyze/issues",
"Homepage": "https://github.com/tddschn/whatsapp-chat-analyze",
"Repository": "https://github.com/tddschn/whatsapp-chat-analyze"
},
"split_keywords": [
"cli",
" utility",
" whatsapp",
" chat",
" analyze",
" visualization"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5152c636e6c95884c2a5832dd1eb29869467778067e36bae676001ead287e23b",
"md5": "9342adf37159f4d9e0d4e275336361d1",
"sha256": "7eb51ad9efcd50b1a894c66d9d7c8c0a80cdfe8d3b034e593329c0abc2b36831"
},
"downloads": -1,
"filename": "whatsapp_chat_analyze-0.1.7-py3-none-any.whl",
"has_sig": false,
"md5_digest": "9342adf37159f4d9e0d4e275336361d1",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.10",
"size": 6425,
"upload_time": "2024-05-07T03:34:55",
"upload_time_iso_8601": "2024-05-07T03:34:55.760375Z",
"url": "https://files.pythonhosted.org/packages/51/52/c636e6c95884c2a5832dd1eb29869467778067e36bae676001ead287e23b/whatsapp_chat_analyze-0.1.7-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "306d9e7a98ccdc488144b6c80d4547aa2319971b7d09c59075055b988c221c26",
"md5": "8ed2a949bf86e95c6f9dd4ef94e03e2b",
"sha256": "ec3d5a2292a4af1bd0752de5d45dc60c57c5c163306c8a966ed59b2759f4a3f0"
},
"downloads": -1,
"filename": "whatsapp_chat_analyze-0.1.7.tar.gz",
"has_sig": false,
"md5_digest": "8ed2a949bf86e95c6f9dd4ef94e03e2b",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.10",
"size": 5491,
"upload_time": "2024-05-07T03:34:57",
"upload_time_iso_8601": "2024-05-07T03:34:57.169765Z",
"url": "https://files.pythonhosted.org/packages/30/6d/9e7a98ccdc488144b6c80d4547aa2319971b7d09c59075055b988c221c26/whatsapp_chat_analyze-0.1.7.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-07 03:34:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "tddschn",
"github_project": "whatsapp-chat-analyze",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "whatsapp-chat-analyze"
}