An open API service indexing awesome lists of open source software.

https://github.com/giacomoferretti/whatsapp-backup-downloader-decryptor

A tool to download encrypted WhatsApp backups from Google Drive and decrypt them locally.
https://github.com/giacomoferretti/whatsapp-backup-downloader-decryptor

android crypt15 google-drive google-drive-backup mcrypt1 mcrypt1-metadata python whatsapp whatsapp-backup

Last synced: 2 months ago
JSON representation

A tool to download encrypted WhatsApp backups from Google Drive and decrypt them locally.

Awesome Lists containing this project

README

          

# WhatsApp Backup Google Drive Downloader Decryptor

[![PyPI - Version](https://img.shields.io/pypi/v/wabdd?color=green)](https://pypi.org/project/wabdd)

## Prerequisites

- End-to-end encrypted backups on Google Drive
- 64-digit encryption key (**PASSWORD IS NOT SUPPORTED**)

## Usage

### Using PyPi

1. Install the `wabdd` package

```shell
pip install wabdd
```

or by using `pipx`

```shell
pipx install wabdd
```

2. Get token (change with your Google account email used in WhatsApp backup settings)

```shell
wabdd token YOUR_GOOGLE@EMAIL.ADDRESS
```

- If you need additional information, check [the guide](#getting-the-oauth_token)

3. Download backup

```shell
wabdd download --token-file /tokens/YOUR_GOOGLE_EMAIL_ADDRESS_token.txt
```

or with filters (e.g. excluding videos)

```shell
wabdd download --exclude "Media/WhatsApp Video/*" --token-file /tokens/YOUR_GOOGLE_EMAIL_ADDRESS_token.txt

4. Decrypt backup (only if end-to-end encryption is enabled)

```shell
wabdd decrypt --key-file keys/PHONE_NUMBER_decryption.key dump backups/PHONE_NUMBER_DATE
```

### Getting the 64-digit encryption key

#### Creating a new backup

1. Under `Settings > Chats > Chat backup > End-to-end encrypted backup`
2. Tap on `Turn on`
3. Choose `Use 64-digit encryption key instead`

64-Digit Key Step 1

4. Generate your 64-digit key
5. Copy the value into a text file (e.g. in this case `bf902e3b590af0ba781b75134c08026614ef6af12b754ee0139ebbd25f58481c`)

64-Digit Key Step 2

#### Using root access

1. Copy the `/data/data/com.whatsapp/encrypted_backup.key` to your pc
2. Run the following script

```python
with open("encrypted_backup.key", "rb") as f:
print(f.read()[-32:].hex())
```

3. Copy paste the output string into a new file

### Getting the `oauth_token`

1. Visit
2. Login using the Google account associated in the WhatsApp backup settings.
3. You will get the following screen

OAuth Step 1

4. Now click on "I agree", the form will load indefinitely.

OAuth Step 2

5. Open the Developer Tools using `F12`, `CTRL+SHIFT+I` or by right-cliking the page > Inspect
6. Now go to the Application tab, under Cookies select `https://accounts.google.com`
7. Copy the value of the `oauth_token` cookie

OAuth Step 3

## Frequently Asked Question

### Does this tool support normal backups (`.crypt14`)?

No, this tool only supports end-to-end encrypted backups `.crypt15`. Follow #18 for more.

### I made the backup using a password instead of the 64-digit encryption key. Can I use this tool?

No, this tool only supports end-to-end encrypted backups that use the 64-digit encryption key. Follow #14 for more.

## 💖 Support My Work

If you find my projects useful, consider supporting me:

[![Donate on Liberapay](https://img.shields.io/badge/Liberapay-giacomoferretti-F6C915.svg?style=flat-square&logo=liberapay)](https://liberapay.com/giacomoferretti)
[![Support me on Ko-fi](https://img.shields.io/badge/Ko--fi-giacomoferretti-ff5f5f?style=flat-square&logo=ko-fi)](https://ko-fi.com/giacomoferretti)
[![Donate via PayPal](https://img.shields.io/badge/PayPal-hexile0-0070ba?style=flat-square&logo=paypal)](https://www.paypal.me/hexile0)

Your support helps me continue improving these tools and creating new ones. Thank you! 🙌

If you can't donate, I also appreciate **stars** ⭐ on my repositories!