FORUMS
Remove All Ads from XDA
Post Reply Email Thread
Have you ever wanted to
- have a useful backup of your whatsapp chats?
- be able to read your whatsapp chats again using a backup file?
- delete the grown-too-big message history of whatsapp without losing the possibility to read the old conversations?
- read older messages without the need of endlessly pressing the annoying "load older messages" button?
- be able to search old messages?
- ...?

Here is a little Tool to display whatsapp chats on your computer, using the database files from your android installation of whatsapp.

It's called WhatsApp Xtract and was created by Fabio Sangiacomo and me.

Preview of the result:


So here is WhatsApp Xtract v2.3
Released on April 25th, 2018

Tested with Whatsapp (Android) 2.18.46
Tested with Whatsapp (iPhone) 2.5.1

CHANGELOG:

v2.3 (updated by ztedd - Apr 25, 2018)
- fixed image preview to work with new Whatsapp database format
- some minor fixes

v2.2 (updated by ztedd - Nov 17, 2012)
- now supports new emoji smileys
- (Android Version) hotfix for TypeError in b64encode
- (Android Version) decoded file won't be deleted even if it can't be opened

v2.1 (updated by Fabio Sangiacomo and ztedd - May 7th, 2012)
- improved install pyCrypto.bat
- added easy drag and drop possibility with whatsapp_xtract_drag'n'drop_database(s)_here.bat
- (Android Version) added support to fix corrupted android whatsapp database (needs sqlite3, for windows sqlite3.exe is contained in the archive)
- (Android Version) removed wrong extraction of owner in android version
- (Iphone Version) information from Z_METADATA table will be printed to shell
- (Iphone Version) fixed bug in support of older Iphone whatsapp databases

V2.0 (updated by Fabio Sangiacomo and ztedd - Apr 28, 2012)
- supports WhatsApp DBs coming from both Android and iPhone platforms
- (Android Version) wa.db is optional
- (Android Version) now also crypted msgstore.db.crypt from the SD card can be imported
- chat list is sorted by the last sent message
- fixed some bugs (e.g. that the script didn't work with python 3)


------------------------
Wish list:
Feel free to take the code and improve it. So maybe we could include some code from this different version which is able to export separate htmls for each chat:
https://github.com/BurakDev/hotoloti/issues/10

------------------------

How to use:
(instrucciones en español / deutsche Anleitung - old)
  1. You need a copy of the whatsapp database and (if no root) get your key.

    a) if your Android phone is rooted:

    get these files:
    /data/data/com.whatsapp/databases/msgstore.db and wa.db
    (for this you need root access. detailed instructions in the bottom of this file.
    The advantage of having wa.db is that the corresponding contact names of phone numbers will be displayed.)

    b) if you have a normal Android (not rooted):

    you need this to get the key:
    [Tool] WhatsApp Key/DB Extractor | CRYPT6-12 | NON-ROOT
    https://forum.xda-developers.com/sho....php?t=2770982

    then you need the .crypt12 database from /sdcard/WhatsApp/Databases/

    then you need a tool like Whatsapp Viewer to decrypt the database file:
    Whatsapp Viewer
    http://andreas-mausch.de/whatsapp-viewer/
    https://forum.xda-developers.com/sho....php?t=2719741

    The decrypted database can already be viewed in Whatsapp Viewer. If you want the output style from Whatsapp xtract then you can continue with the decrypted file.

    c) On IPhone, get this file (don't know if it still works in 2018):

    net.whatsapp.WhatsApp/Documents/ChatStorage.sqlite
    (You can use an Iphone Backup Tool to get the file, e.g. I-Twin or Iphone Backup Extractor. Make sure to create an unencrypted backup with Itunes, as these tools can't handle encrypted backups. Another possibility are forensic tools like UFED Physical Analyzer.)

  2. Extract this archive (Whatsapp_Xtract....zip) to a certain folder on your computer, e.g. C:\WhatsApp.

  3. Copy the database(s) to e.g. C:\WhatsApp (on Android, you simply copy the whole folder WhatsApp on SD card to your computer e.g. to C:\WhatsApp and then copy the database file from C:\WhatsApp\Databases to C:\WhatsApp)

  4. You need Python

    https://www.python.org/downloads/

    It's available for Windows, Linux and Mac. However in my HowTo, I focus on Windows.

  5. Now run whatsapp_xtract_android.bat or whatsapp_xtract_iphone.bat

    OR simply drag and drop the database file(s) to whatsapp_xtract_drag'n'drop_database(s)_here.bat

    OR whatsapp_xtract_console.bat and then manually specify the input file with one of these commands:

    COMMAND LINE OPTIONS:

    Quote:

    For Android DB:
    python whatsapp_xtract.py msgstore.db -w wa.db
    OR (if wa.db is unavailable)
    python whatsapp_xtract.py msgstore.db

    For iPhone DB: (-w option is ignored)
    python whatsapp_xtract.py ChatStorage.sqlite

    Once finished, your browser will open and show the chats.
    The resulting file size of the .html file will be slightly bigger than the size of the original .db.crypt12 database.

Attachment:

Whatsapp Xtract 2.3 2018-04-25 (~ 1,8 MB)
contains:
!README.txt
bplist.py
convert_smileys_python_2.py
SetEnv.exe
sqlite3.exe
whatsapp_xtract.py
whatsapp_xtract_android.bat
whatsapp_xtract_iphone.bat
whatsapp_xtract_console.bat
whatsapp_xtract_drag'n'drop_database(s)_here.bat
folder: data
samples of needed input files and Media folder


also available here:

https://www.xup.in/dl,18324514/Whats...018-04-25.zip/

IF SOMETHING DOESN'T WORK:

1. First check if you already have the newest download (check full name of the .zip file: is it the same as in mentioned in this thread?). Maybe your error already has been fixed.
2. Read the post Some additional information and read the last pages of this thread to see if your problem is already being discussed.
Use the Search inside this thread function!
3. If not or if it doesn't help, post your error with a detailed description (and error message) in the thread.
Attached Thumbnails
Click image for larger version

Name:	Whatsapp_Xtract_v2.0.jpg
Views:	2720723
Size:	36.5 KB
ID:	1028161  
Attached Files
File Type: zip Whatsapp Xtract 2.3 2018-04-25.zip - [Click for QR Code] (1.84 MB, 17150 views)
The Following 178 Users Say Thank You to ztedd For This Useful Post: [ View ] Gift ztedd Ad-Free
5th April 2012, 10:04 PM |#2  
OP Senior Member
Thanks Meter: 290
 
More
Changelog, Recent Bugfixes, Feature Requests
CHANGELOG:

v2.3 (updated by ztedd - Apr 25, 2018)
- fixed image preview to work with new Whatsapp database format
- updated Readme, refering to Whatsapp Viewer (which is able to decrypt the .crypt12 files)
- some minor fixes

v2.2 (updated by ztedd - Nov 17, 2012)
- now supports new emoji smileys
- (Android Version) hotfix for TypeError in b64encode
- (Android Version) decoded file won't be deleted even if it can't be opened

v2.1-bugsfixed-4 (2012-05-16)
- fixed .bat files again to support script execution from each external directory
- fixed .bat files if error "python" not found occurs (if you get that error, run !install pyCrypto.bat first; rightclick on it and choose "run as administrator")
- updated compatibility for newer android whatsapp versions to show media files with thumbnails correctly

v2.1 (updated by Fabio Sangiacomo and ztedd - May 7th, 2012)
- improved install pyCrypto.bat
- added easy drag and drop possibility with whatsapp_xtract_drag'n'drop_database(s)_here.bat
- (Android Version) added support to fix corrupted android whatsapp database (needs sqlite3, for windows sqlite3.exe is contained in the archive)
- (Android Version) removed wrong extraction of owner in android version
- (Iphone Version) information from Z_METADATA table will be printed to shell
- (Iphone Version) fixed bug in support of older Iphone whatsapp databases

v2.0-bugsfixed-10
file: Whatsapp_Xtract_V2.0_2012-05-02-3.zip
- On errors, now the window will not close but show you an error message
- Now installation of PyCrypto is indeed optional. You only need it if you want to import a crypted db.
- added some advanced instructions in the Readme on how to use this script with the command line (also added a .bat that will open the command prompt and show the help message of the script)
- changed error management to let the script continue on errors like these:
* 'NoneType' object is not subscriptable in line 1028
* 'NoneType' object is not subscriptable in line 1126
The errors will be displayed in the message table and in the DOS Box, but the script will go on
- fixed syntax error in line 216
- fixed error that it tries to name output file "N/A" which is not possible because of the "/"
- fixed error of handling timestamps in Iphone database
- fixed " AttributeError: 'int' object has no attribute 'split' "
- changed parsing of sqlite databases, columns are now accessed by name and not by number (e.g., msgs["ZTEXT"] instead of msgs[10])
- included Iphone support for images, videos, vcard and (beta) gps. Fixed bug of opening a wrong output file in browser.
- changed install pyCrypto.bat

V2.0 (updated by Fabio Sangiacomo and ztedd - Apr 28, 2012)
- supports WhatsApp DBs coming from both Android and iPhone platforms
- (Android Version) wa.db is optional
- (Android Version) now also crypted msgstore.db.crypt from the SD card can be imported
- chat list is sorted by the last sent message
- fixed some bugs (e.g. that the script didn't work with python 3)

V1.3 (updated by ztedd - Apr 17, 2012)
- corrected linking of offline files (now linking according to media file size)

V1.2 (updated by ztedd - Apr 5, 2012)
- media files also linked to offline files
- corrected hyperlinks

V1.1 (updated by ztedd - Apr 5, 2012)
- changed database structure, Android only
- show contact names
- show smileys
- show images
- link / popup for images, video, audio, gps
- clickable links

V1.0 (created by Fabio Sangiacomo - Dec 10, 2011)
- first release, iPhone only:
it takes in input the file "ChatStorage.sqlite",
extracts chat sessions and the bare text
- sortable js allows table sorting to make chat sessions easily readable


FEATURE REQUESTS:

These features below are quite outdated. For example, conversion/migration from Iphone / Windows Phone to Android was made possible by paid apps (Wazzapmigrator / WinWazzapmigrator).

Anyway, if you want to contribute, please take my source file, put a repo on github and go on!

- Blackberry Support: Step 1 - How is it possible to get the unencrypted messagestore.db file from Blackberry Whatsapp? (valek07); Step 2 - get a sample db file (see how to create sample db) and include Blackberry support
- Nokia Support: Step 1 - How to get the database file from Nokia? (oscargpes) Step 2 - Get a sample db file (see how to create sample db) and include Nokia support
- Windows Phone Support (beastie_carrion): Step 1 - How to get the database file from Windows Phone? Step 2 - Get a sample db file (see how to create sample db) Step 3 - include Windows Phone support
- create an android app for this, ideally offering "export to googlemail" function as in SMS Backup + (nomad4ever)
/ conversion of whatsapp to sms xml (ofmb)
- conversion between Android and Iphone database:
-- Android -> Iphone: ark0n3 is working on a Java tool called WhatsAppMigrator, here you can download WhatsAppMigrator
-- Iphone -> Android: no solution yet
- merge multiple backup files (darKpoiSonend) (you can use the tool SQLite Compare as a workaround, see howto in this post by ztedd)
- extract deleted messages (sometimes deleted messages remain in the database file but can't be accessed with normal Sqlite commands anymore) (Rauken)
- include Iphone support for audio, gps, gps of a place (like a restaurant), group messages and change of group name -> we would need an Iphone sample database containing these message types!
The Following 19 Users Say Thank You to ztedd For This Useful Post: [ View ] Gift ztedd Ad-Free
13th March 2013, 04:15 PM |#3  
Member
Thanks Meter: 7
 
More
Quote:
Originally Posted by ztedd


- conversion between Android and Iphone database:
-- Android -> Iphone: ark0n3 is working on a Java tool called WhatsAppMigrator, here you can download WhatsAppMigrator
-- Iphone -> Android: no solution yet

Is it the other way around?
I mean it is Android -> Iphone where there is no solution yet, am I right?
Thank you.
14th March 2013, 01:21 AM |#4  
Member
Thanks Meter: 10
 
More
Hi there,

Just wanted to post my "unofficial" (as in - I needed extra features for my own usage of this tool, so I coded them, but I am not a part of the official dev team) version 2.5 of this tool.

This version can now automatically handle malformed databases (that received the "database disk image is malformed" error).

--------------

CHANGELOG:

v2.5 (updated by Alon Diamant - Mar 14, 2013)
- Improved encrypted Android database detection and decryption code
- Can now repair malformed Android databases (depends on availability of sqlite3 executable)

v2.4 (updated by Alon Diamant - Mar 06, 2013)
- Generates media index file - but crappily, we should set this up better..

v2.3 (updated by Alon Diamant - Mar 05, 2013)
- now generates separate file for each contact
- fixed file search to search for image files in days prior to date given (to fix a bug where because of timezone differences the image file exists but is not found)
- fixed message counts for contacts
- does not list contacts with 0 messages
- now writes version number in generated files
- (Android Version) displays WhatsApp name (server based) if no display name is found for a contact
- (Android Version) Supports Python 2.6

--------------

How to use:

After doing step 2 of the original post, and before doing step 3 - extract attached archive (Whatsapp_Xtract_Py_2_5.zip) to the same folder selected in step 2. Continue to step 3 normally.

Good luck

Make sure you click the "Thanks" button beneath this post if you like this!

--------------

Original poster: feel free to merge this into your code base, if you feel like it, or contact me to take it down, if you don't like it.
Attached Files
File Type: zip Whatsapp_Xtract_Py_2_5.zip - [Click for QR Code] (20.7 KB, 493 views)
The Following User Says Thank You to advance512 For This Useful Post: [ View ] Gift advance512 Ad-Free
14th March 2013, 09:46 AM |#5  
Junior Member
Thanks Meter: 0
 
More
Quote:
Originally Posted by advance512

Hi there,

Just wanted to post my "unofficial" (as in - I needed extra features for my own usage of this tool, so I coded them, but I am not a part of the official dev team) version 2.5 of this tool.

This version can now automatically handle malformed databases (that received the "database disk image is malformed" error).

--------------

CHANGELOG:

v2.5 (updated by Alon Diamant - Mar 14, 2013)
- Improved encrypted Android database detection and decryption code
- Can now repair malformed Android databases (depends on availability of sqlite3 executable)

v2.4 (updated by Alon Diamant - Mar 06, 2013)
- Generates media index file - but crappily, we should set this up better..

v2.3 (updated by Alon Diamant - Mar 05, 2013)
- now generates separate file for each contact
- fixed file search to search for image files in days prior to date given (to fix a bug where because of timezone differences the image file exists but is not found)
- fixed message counts for contacts
- does not list contacts with 0 messages
- now writes version number in generated files
- (Android Version) displays WhatsApp name (server based) if no display name is found for a contact
- (Android Version) Supports Python 2.6

--------------

How to use:

After doing step 2 of the original post, and before doing step 3 - extract attached archive (Whatsapp_Xtract_Py_2_5.zip) to the same folder selected in step 2. Continue to step 3 normally.

Good luck

Make sure you click the "Thanks" button beneath this post if you like this!

--------------

Original poster: feel free to merge this into your code base, if you feel like it, or contact me to take it down, if you don't like it.


Hello advance512

I tried your tool exactly how you wrote to, hoping it would solve my problem. But unfortunately it didn't work at all and I get the error attached when trying to use whatsapp_xtract_android_crypted.bat after having unpacked your tool.

Could you please help?

Thank you!

Liz
Attached Thumbnails
Click image for larger version

Name:	Bild1.jpg
Views:	361
Size:	22.9 KB
ID:	1803996  
15th March 2013, 12:49 AM |#6  
Member
Thanks Meter: 10
 
More
Okay, so a quick fix to 2.5.

I forgot test it on Python 3 (silly me programming late at night), but now I did.

--------------

CHANGELOG:

v2.51 (updated by Alon Diamant - Mar 15, 2013)
- v2.5 was now tested with Python 3 as well. :S

v2.5 (updated by Alon Diamant - Mar 14, 2013)
- Improved encrypted Android database detection and decryption code
- Can now repair malformed Android databases (depends on availability of sqlite3 executable)

v2.4 (updated by Alon Diamant - Mar 06, 2013)
- Generates media index file - but crappily, we should set this up better..

v2.3 (updated by Alon Diamant - Mar 05, 2013)
- now generates separate file for each contact
- fixed file search to search for image files in days prior to date given (to fix a bug where because of timezone differences the image file exists but is not found)
- fixed message counts for contacts
- does not list contacts with 0 messages
- now writes version number in generated files
- (Android Version) displays WhatsApp name (server based) if no display name is found for a contact
- (Android Version) Supports Python 2.6

--------------

How to use:

After doing step 2 of the original post, and before doing step 3 - extract attached archive (Whatsapp_Xtract_Py_2_51.zip) to the same folder selected in step 2. Continue to step 3 normally.

Good luck

Make sure you click the "Thanks" button beneath this post if you like this!

--------------

Original poster: feel free to merge this into your code base, if you feel like it, or contact me to take it down, if you don't like it.
Attached Files
File Type: zip Whatsapp_Xtract_Py_2_51.zip - [Click for QR Code] (20.9 KB, 773 views)
The Following 4 Users Say Thank You to advance512 For This Useful Post: [ View ] Gift advance512 Ad-Free
18th April 2013, 10:07 PM |#7  
Junior Member
Thanks Meter: 0
 
More
Phone Where to find Nokia Symbian 60 Version 5 (s60v5) database file
Quote:
Originally Posted by ztedd

FEATURE REQUESTS:

These features are requested but are not supported, at least now. Everyone who can help to include them may post information on how to do this.

(...)

- Nokia Support: Step 1 - How to get the database file from Nokia? (oscargpes) Step 2 - Get a sample db file (see how to create sample db) and include Nokia support.

(...)


The db file can be found at root folder of the phone memory (WhatsApp is always installed on phone memory, never on SD card). This arquive named as "MsgStore.bak" - when exists just one - can be found at "wa" folder which one is situated on root directory as I said before. If there are other backups they receive these following titles: "MsgStore.bak.1", "MsgStore.bak.2" and "MsgStore.bak.3" (I've seen just 3 of them simultaneously at most).

Please, develop a compatible software to extract Nokia Symbian SMS backups. Because I'm about to buy an Windows Phone and really want to keep old messages, important messages!!
Thanks!


PS: I can even send a db sample, but not now 'cause I'm hurry. Please also confirm if this is really needed. I will be glad to help you help me...
27th December 2013, 07:29 PM |#8  
Junior Member
Thanks Meter: 0
 
More
Angry works great thnku
awesome man it works
28th December 2013, 07:20 AM |#9  
Junior Member
Thanks Meter: 1
 
More
I've successfully merged 2 plain db files. Edited the chat_list to make it work, however I run into the same problem as a guy on the beginning of this thread.
When I open the messages that contain copied thumbnails of pictures or videos my whatsapp force closes.
When I delete the records that contain the picture or video everything works fine.
I've read that it had something to do with copying BLOB that's not really working as it should.
Does anyone have a solution for this yet?
7th April 2012, 07:20 PM |#10  
OP Senior Member
Thanks Meter: 290
 
More
Some Additional Information
General advice on how to backup Whatsapp

Some general advice on how to backup Whatsapp and get the database file:

Android:
- In Whatsapp go to settings - more - Backup Chats
- Copy the folder "Whatsapp" on the SD card to your backup location (e.g., PC)
- (ideally also) use the app Titanium Backup to backup the full whatsapp application together with its data, copy the backup from the folder "TitaniumBackup" on the SD card to your backup location (e.g., PC)
- Use this tool Whatsapp Backup Extractor (download in this thread) to show the chats in a friendly readable format. The necessary files "wa.db" and "msgstore.db" you will find inside the Titanium Backup archive "com.whatsapp-[Date]-[some digits].tar.gz", alternatively (without Titanium Backup) you can use the msgstore.db.crypt file from the folder Whatsapp/Databases on the SD card.

Iphone:
- use Itunes to create an unencrypted Backup
- use an Iphone Backup Tool to get the file net.whatsapp.WhatsApp/Documents/ChatStorage.sqlite, e.g. I-Twin or Iphone Backup Extractor. Make sure to create an unencrypted backup with Itunes, as these tools can't handle encrypted backups. Another possibility are forensic tools like UFED Physical Analyzer.)

Blackberry:
- sync your blackberry with desktop manager and then copy the messagestore.db file from SD
- however, it seems that this file is encrypted? Currently we don't know how to get the unencrypted messagestore.db file
- Blackberry not supported yet!

Nokia:
- not known yet
- Nokia not supported yet!

CHECK IF DATABASE FILE CAN BE OPENED / EDIT CHAT MESSAGES INSIDE DATABASE

You may want to open the decrypted whatsapp database (ChatStorage.sqlite, msgstore.db or msgstore.plain.db) without this tool, e.g. if something goes wrong to check if it can be opened at all or to edit chat messages.
For this use SQLite Database Browser ( http://sqlitebrowser.sourceforge.net/ ).
However it is much more confusing and the messages are ordered by date, not by conversations. Also you won't see the smileys and media files...

IF DATABASE CAN'T BE OPENED: REPAIR DATABASE

Update: This function is now included in Whatsap Xtract 2.1.
If you get an error like this: Error: file is encrypted or is not a database and you tried to open the unencrypted database with SQLite Database Browser but it can't be opened with it, then try the following:
Open the database with Editor, can you see it starts with "SQLite format 3"? Then you may try to repair the database.
Thanks to hape70 for the instructions on how to repair (I translated it from German to English):
Quote:

- download sqlite3.exe from http://www.sqlite.org/download.html
- start whatsapp_xtract_console.bat and then type:
- echo .dump | sqlite3.exe msgstore.db > Temp.sql
- echo .quit | sqlite3.exe -init Temp.sql msgstore_new.db
- python whatsapp_xtract.py msgstore_new.db
(make sure to replace the underlined msgstore.db with the name of the database that is unencrypted but can't be opened, sometimes it will be msgstore.plain.db)

MEDIA FILES

If you want to watch the videos, audios and images, you can click on the thumbnails and media links. Popups should open displaying the media.
However, online media files are available only for the last ~ 3 weeks.
But you still can open the offline media files, they are linked as well.
For this it is necessary to at first copy the folder "Media" from /sdcard/Whatsapp (Android) or net.whatsapp.WhatsApp (Iphone) to the certain folder of your computer where this tool is installed. Then run the script. Now the media files should be correctly linked.

HOW TO MERGE MULTIPLE DATABASE FILES WITH SQLite Compare

Merging of multiple backup files is still on the feature request list, but you can use the tool SQLite Compare as a workaround, see howto in this post by ztedd.
The Following 13 Users Say Thank You to ztedd For This Useful Post: [ View ] Gift ztedd Ad-Free
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes