Archive Matrix room messages.
Creates a YAML log of all room messages, including media.
Note that at least Python 3.8+ is required.
-
Install libolm 3.1+
-
Debian 11+ (testing/sid) or Ubuntu 19.10+:
sudo apt install libolm-dev
-
Archlinux based distribution can install the
libolm
package from the Community repository -
macOS
brew install libolm
-
Failing any of the above refer to the olm repo for build instructions.
-
-
Clone the repo and install dependencies
git clone [email protected]:russelldavies/matrix-archive.git cd matrix-archive # Optional: create a virtualenv python -m venv venv && source venv/bin/activate pip install -r requirements.txt
-
Download your E2E room keys: in the client Element you can do this by clicking on your profile icon, Security & privacy, Export E2E room keys.
-
Run with an optional directory to store output, e.g.:
./matrix-archive.py chats
-
You'll be prompted to enter your homeserver, user credentials and the path to the room keys you downloaded in step 1.
-
You'll be prompted to select which room you want to archive and a YAML file with a log of all messages will be written along with media and member avatars.
In case you are using a SSO infrastructure … you have to know the SSO redirectUrl for the service and may need to adjust the SSO login field names in get_sso_login_token()
--batch --all-rooms --sso <redirectUrl> --server <homeserver> --user <SSOUSER>
--userpass <SSOPASS> --keys element-keys.txt --keyspass <KEYSPASS> /tmp/test-archive/ ```