Show HN: Chatistics – Turn Telegram, WhatsApp, Messenger Chatlogs to DataFrames
masterscrat.github.io
masterscrat.github.io
I got the idea when I downloaded a chat history of a 5 year old group chat of my friend group, and kinda just winged it from there.
If you're at all looking to collaborate, shoot me a message. I'll definitely keep an eye on your project.
I haven't started many personal projects (and finished even less), but again, this is a super weird experience for me haha. Good job man!
I started this project years ago just to create word clouds - but it turned out it to be useful for many more things!
If you are interested in support for other platforms (Discord, Slack...), just create or subscribe to the relevant issue, we'll use them as a simple voting system: https://github.com/MasterScrat/Chatistics/issues
Some related links:
- https://github.com/fabianonline/telegram_backup : tool for incremental Telegram exports into sqlite database, I've been using it for several years with no issues. From a quick glance, code in chatistics isn't incremental and going to require redownloading everything? Perhaps it makes sense to adapt telegram_backup output database to chatistics and benefit from existing tools.
- https://github.com/karlicoss/fbmessengerexport : my own script for incremental FB Messenger exports, also outputs in an sqlite database
Email, sms, WhatsApp, discord, messenger, some obscure website chat platform whathaveyou...
The ability to cross link profiles and truly manage contact lists across all those platforms as a single object. So Emma on Discord is the same contact in the app as Emma on Messenger, and on SMS, etc.
All this can easily be stored in Google contacts as metadata and would allow the user to backup and index their chat conversations, and quickly search through previous messages across all platforms. And backup all photos and files sent through those platforms as a single stream.
Cannot infer own-name from less than {min_conversations} conversations. Please provide your username manually with the --own-name argument.')
Exception: Cannot infer own-name from less than 2 conversations. Please provide your username manually with the --own-name argument.This is because for fields such as `conversationWithName`, it needs to know which of the parties is "you" vs who is an interlocutor.
In general, this is easy enough to figure out: look at multiple conversations, and find out who is always part of them. However if you export a single discussion, then this can't be inferred!
In that situation as eecom pointed out (and as indicated by the script output) you need to specify your username using the `--own-name` argument, using the precise same name that appears in your WhatsApp account.
Telegram Desktop can export to JSON so it just a matter of importing these JSON files. It does slow down when needed but can export 1k chats in minutes if you don't export media.
> The other way is actually risking your account being taken down for flooding the API.
Have you heard about such problems? Are there published API limits?
I don't use Telegram so much, but for what it's worth I know people who used Chatistics to export 10s of thousands of messages without a problem.