All Projects → KnugiHK → Whatsapp-Chat-Exporter

KnugiHK / Whatsapp-Chat-Exporter

Licence: MIT license
A customizable Android and iPhone WhatsApp database parser that will give you the history of your WhatsApp conversations in HTML and JSON. Android Backup Crypt12, Crypt14 and Crypt15 supported.

Programming Languages

python
139335 projects - #7 most used programming language
HTML
75241 projects

Projects that are alternatives of or similar to Whatsapp-Chat-Exporter

Watusi For Whatsapp
Your all-in-one tweak for WhatsApp Messenger!
Stars: ✭ 240 (+60%)
Mutual labels:  iphone, whatsapp
Ios
Tinodios: Tinode Messaging Client for iOS
Stars: ✭ 119 (-20.67%)
Mutual labels:  iphone, whatsapp
nativesapp
Simple WhatsApp clone just for training purposes - Course Angular Native at www.udemy.com/angular-native
Stars: ✭ 19 (-87.33%)
Mutual labels:  iphone, whatsapp
WhatSoup
A web scraper that exports your entire WhatsApp chat history.
Stars: ✭ 86 (-42.67%)
Mutual labels:  whatsapp, whatsapp-export
undox
⎌ Redux Implementation of Undo/Redo based on storing actions instead of states.
Stars: ✭ 25 (-83.33%)
Mutual labels:  history
heimdall
A highly customisable discord bot that assigns users roles based on different invite links
Stars: ✭ 19 (-87.33%)
Mutual labels:  customizable
parser-lang
A parser combinator library with declarative superpowers
Stars: ✭ 25 (-83.33%)
Mutual labels:  parsing
q-municate-web
Q-municate Web chat application
Stars: ✭ 66 (-56%)
Mutual labels:  whatsapp
DockController
Dock Controller - Control Your Dock
Stars: ✭ 18 (-88%)
Mutual labels:  iphone
whatsapp-telegram-bridge
A simple bridge to receive whatsapp chats on telegram.
Stars: ✭ 22 (-85.33%)
Mutual labels:  whatsapp
react-native-slider-intro
A simple and fully customizable React Native component that implements an intro slider for your app
Stars: ✭ 80 (-46.67%)
Mutual labels:  customizable
pypact
A Python package for parsing FISPACT-II output
Stars: ✭ 19 (-87.33%)
Mutual labels:  parsing
php-fast-xml-parser
Fast SAX XML parser for PHP.
Stars: ✭ 25 (-83.33%)
Mutual labels:  parsing
1History
All your history in one file.
Stars: ✭ 335 (+123.33%)
Mutual labels:  history
biaffine-ner
Named Entity Recognition as Dependency Parsing
Stars: ✭ 293 (+95.33%)
Mutual labels:  parsing
ChristmasSpiritBreaker-andNewYearsToo
Python script which automatically sends Christmas/New Year's messages from a custom messages list on Whatsapp, Facebook Messenger or via SMS in a given time range, to a custom contacts list. Time to work smart, not hard.
Stars: ✭ 81 (-46%)
Mutual labels:  whatsapp
wa-avd-docker
A Docker image based on Ubuntu Desktop with VNC and noVNC access, that runs a lightweight Android Virtual Device with WhatsApp pre-installed.
Stars: ✭ 113 (-24.67%)
Mutual labels:  whatsapp
FullFIX
A library for parsing FIX (Financial Information eXchange) protocol messages.
Stars: ✭ 60 (-60%)
Mutual labels:  parsing
Simple-Game-ERC-721-Token-Template
🔮 Very Simple ERC-721 Smart Contract Template to create your own ERC-721 Tokens on the Ethereum Blockchain, with many customizable Options 🔮
Stars: ✭ 83 (-44.67%)
Mutual labels:  customizable
NBT
A java implementation of the NBT protocol, including a way to implement custom tags.
Stars: ✭ 128 (-14.67%)
Mutual labels:  customizable

Whatsapp-Chat-Exporter

Latest in Pypi License MIT Python

A customizable Android and iPhone Whatsapp database parser that will give you the history of your Whatsapp conversations in HTML and JSON.
If you plan to uninstall WhatsApp or delete your WhatsApp account, please make a backup of your WhatsApp database. You may want to use this exporter again on the same database in the future as the exporter develops

Usage

Usage in README may be removed in the future. Check the usage in Wiki.

If you want to use the old release (< 0.5) of the exporter, please follow the old usage guide.

First, install the exporter by:

pip install whatsapp-chat-exporter
pip install whatsapp-chat-exporter[android_backup]  & :: Optional, if you want it to support decrypting Android WhatsApp backup.

Then, create a working directory in somewhere you want

mkdir working_wts
cd working_wts

Working with Android

Unencrypted WhatsApp database

Extract the WhatsApp database with whatever means, one possible means is to use the WhatsApp-Key-DB-Extractor

After you obtain your WhatsApp database, copy the WhatsApp database and media folder to the working directory. The database is called msgstore.db. If you also want the name of your contacts, get the contact database, which is called wa.db. And copy the WhatsApp (Media) directory from your phone directly.

And now, you should have something like this in the working directory.

Android folder structure

Extracting

Simply invoke the following command from shell.

wtsexporter -a

Encrypted Android WhatsApp Backup

In order to support the decryption, install pycryptodome if it is not installed

pip install pycryptodome # Or 
pip install whatsapp-chat-exporter["android_backup"] # install along with this software

Crypt12 or Crypt14

Place the decryption key file (key) and the encrypted WhatsApp Backup (msgstore.db.crypt14) in the working directory. If you also want the name of your contacts, get the contact database, which is called wa.db. And copy the WhatsApp (Media) directory from your phone directly.

And now, you should have something like this in the working directory.

Android folder structure with WhatsApp Backup

Extracting

Simply invoke the following command from shell.

wtsexporter -a -k key -b msgstore.db.crypt14

Crypt15 (End-to-End Encrypted Backup)

To support Crypt15 backup, install javaobj-py3 if it is not installed

pip install javaobj-py3 # Or 
pip install whatsapp-chat-exporter["crypt15"] # install along with this software

Place the encrypted WhatsApp Backup (msgstore.db.crypt15) in the working directory. If you also want the name of your contacts, get the contact database, which is called wa.db. And copy the WhatsApp (Media) directory from your phone directly.
If you do not have the 32 bytes hex key (64 hexdigits), place the decryption key file (encrypted_backup.key) extracted from Android. If you gave the 32 bytes hex key, simply put the key in the shell.

Now, you should have something like this in the working directory (if you do not have 32 bytes hex key).

Android folder structure with WhatsApp Crypt15 Backup

Extracting

If you do not have 32 bytes hex key but have the key file available, simply invoke the following command from shell.

wtsexporter -a -k encrypted_backup.key -b msgstore.db.crypt15

If you have the 32 bytes hex key, simply put the hex key in the -k option and invoke the command from shell like this:

wtsexporter -a -k 432435053b5204b08e5c3823423399aa30ff061435ab89bc4e6713969cdaa5a8 -b msgstore.db.crypt15

Working with iPhone

Do an iPhone Backup with iTunes first.

Encrypted iPhone Backup

If you are working on unencrypted iPhone backup, skip this

If you want to work on an encrypted iPhone Backup, you should install iphone_backup_decrypt from KnugiHK/iphone_backup_decrypt before you run the extract_iphone_media.py.

pip install git+https://github.com/KnugiHK/iphone_backup_decrypt

Extracting

Simply invoke the following command from shell, remember to replace the username and device id correspondingly in the command.

wtsexporter -i -b "C:\Users\[Username]\AppData\Roaming\Apple Computer\MobileSync\Backup\[device id]"

Results

After extracting, you will get these:

Private Message

Private Message

Group Message

Group Message

More options

Invoke the wtsexporter with --help option will show you all options available.

> wtsexporter --help
Usage: wtsexporter [options]

Options:
  --version             show program's version number and exit
  -h, --help            show this help message and exit
  -a, --android         Define the target as Android
  -i, --iphone          Define the target as iPhone
  -w WA, --wa=WA        Path to contact database
  -m MEDIA, --media=MEDIA
                        Path to WhatsApp media folder
  -b BACKUP, --backup=BACKUP
                        Path to Android (must be used together with -k)/iPhone
                        WhatsApp backup
  -o OUTPUT, --output=OUTPUT
                        Output to specific directory
  -j, --json            Save the result to a single JSON file
  -d DB, --db=DB        Path to database file
  -k KEY, --key=KEY     Path to key file
  -t TEMPLATE, --template=TEMPLATE
                        Path to custom HTML template

To do

  1. Reply in iPhone

Copyright

This is a MIT licensed project.

The Telegram Desktop's export is the reference for whatsapp.html in this repo

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].