# WhatsApp HTML Archive
This tool extracts WhatsApp chats from an unencrypted iOS backup and generates a browsable HTML archive of all conversations with media support.
## Features
- Creates a complete HTML archive of all WhatsApp chats
- Preserves all media (images, videos, audio files)
- Supports group chats and direct messages
- Archives data cumulatively across multiple backups
- Preserves message history when run multiple times
- Easy to browse with a clean, WhatsApp-like interface
## Requirements
- Python 3.6+
- Unencrypted iOS backup
- WhatsApp data in the backup
## iOS Backup Structure
An iOS backup created by iTunes or Finder typically appears as a directory containing:
- A `Manifest.db` file which serves as an index of all files in the backup
- Numerous subdirectories with 2-character names (like `46`, `8d`, etc.)
- Files within these subdirectories that have no extensions but are identified by hash-like names
The tool navigates this complex structure automatically to extract the WhatsApp data. A backup path usually looks like:
`/path/to/backup/46de1f4ca4a30b155985910d009edaf586236798/`
### iOS Backup Storage Tipp:
Make a symlink from your `$HOME/Library/Application Support/MobileSync/Backup/` to a path in your external drive, if you don't have enough internal disk space on your Mac:
```
ln -s /Volume/ArchiveMedia/iphone-backup $HOME/Library/Application Support/MobileSync/Backup
```
## Usage
Run the exporter with your iOS backup path:
```
python3 whatsapp_exporter.py \
--backup-path="$HOME/Library/Application Support/MobileSync/Backup/ 46de1f4ca4a30b155985910d009edaf586236798/" \
--output-path="/Volume/ArchiveMedia/whatsapp-archive/data"
```
### Arguments
- `--backup-path`: Path to the iOS backup directory (containing Manifest.db)
- `--output-path`: Directory to save whatsapp archive (appends if exists)
## Archival Features
This tool acts as an archiver that:
- Accumulates data across multiple backup imports
- Preserves existing messages when importing new backups
- Never deletes old content when newer backups are imported
- Maintains a complete historical record of all chats
## Direct Database Usage
If you already have extracted WhatsApp database files, you can use them directly. However, it's not well tested:
```
python3 whatsapp_exporter.py /path/to/ChatStorage.sqlite /path/to/Media/ --output-path=./export/
```
## Limitations and Caveats
The WhatsApp HTML Archive tool has the following limitations:
- **Stickers are not displayed** - WhatsApp stickers appear as missing media
- **Status messages are not displayed** - Status updates and replies are excluded
- **Encrypted backups not supported** - Only unencrypted iOS backups can be processed
- **Some media files may require manual handling** - Certain media types may not render correctly
- **Live location sharing not supported** - Live locations appear as regular messages without map data
## Disclaimer
**USE AT YOUR OWN RISK**
This tool is provided "as is", without warranty of any kind, express or implied. The author/publisher is not responsible for any data loss, damage to software or hardware, loss of business profits, or any other damages resulting from the use or misuse of this software.
- Always create a backup of your data before using this tool
- The tool is designed to be non-destructive to source files, but unforeseen circumstances may occur
- This is not an official WhatsApp product and is not affiliated with WhatsApp Inc.
- Using this tool to extract and store WhatsApp messages may have privacy implications; ensure you have proper authorization to access and archive the messages