/matrix-archive

Archive Matrix room messages

Primary LanguagePythonApache License 2.0Apache-2.0

matrix-archive

Archive Matrix room messages.

Creates a YAML log of all room messages, including media.

Installation

Note that at least Python 3.8+ is required.

  1. 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.

  2. Clone the repo and install dependencies

    git clone git@github.com:russelldavies/matrix-archive.git
    cd matrix-archive
    # Optional: create a virtualenv
    python -m venv venv && source venv/bin/activate
    pip install -r requirements.txt
    

Usage

  1. 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.

  2. Run with an optional directory to store output, e.g.: ./matrix-archive.py chats

  3. You'll be prompted to enter your homeserver, user credentials and the path to the room keys you downloaded in step 1.

  4. 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.

sso

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/ ```