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

https://github.com/greendoescode/signalmessagecounter

Signal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.
https://github.com/greendoescode/signalmessagecounter

Last synced: 7 months ago
JSON representation

Signal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.

Awesome Lists containing this project

README

          

# Signal Message Counter

Signal Message Counter is a tool for analyzing and visualizing messages from the Signal desktop application stored in an SQLite database.

## Getting Started

### 1. Obtain the SQLite Database

Depending on your operating system, locate the Signal SQLite database:
- **Linux**: `~/.config/Signal/sql/db.sqlite`
- **Mac**: `~/Library/Application Support/Signal/sql/db.sqlite`
- **Windows**: `C:\Users\\AppData\Roaming\Signal\sql\db.sqlite` (exact path may vary)

### 2. Decrypt and Convert SQLite Database to CSV

The Signal SQLite database is encrypted using SQLCipher. You need to decrypt it and convert it to CSV format using the following steps:

#### Prerequisites

Ensure you have the following installed:
- **sqlcipher**: A recent version (e.g., 3.31.0 or later) to decrypt the encrypted SQLite database.

#### Decrypt Script

Download the decryption script [sqlite-to-csv.sh](./scripts/sqlite-to-csv.sh) and follow these steps:

1. Save the script in a directory of your choice.
2. Make it executable: `chmod +x sqlite-to-csv.sh`.
3. Execute the script: `bash sqlite-to-csv.sh`.

This script decrypts the Signal SQLite database using the encryption key obtained from `config.json`, extracts message data in JSON format, and writes it to `backup-desktop.csv`.

To use this script on windows, either use WSL or transfer the files to a linux machine.

### Analyzing Messages

Once you have `backup-desktop.csv`, you can use this tool to parse and analyze the CSV file to extract insights such as message counts, timestamps, and message types (incoming/outgoing). You'll need to get your conversation id for this, which you can find by getting most recent message from your selected chat, doing CTRL-F in the CSV file and on the same line, finding the conversation id. It'll look something like `d37673ee-9d18-4294-be46-30e755a1406`

`Usage: signalmessagecounter `

### License

This project is licensed under the BSD 2-Clause License - see the [LICENSE](./LICENSE) file for details.