# 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