mat2 is a metadata removal tool, supporting a wide range of commonly used file formats, written in python3: at its core, it's a library, used by an eponymous command-line interface, and a nautilus extension.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
jvoisin f1ceed13b5 Bump the changelog 3 years ago
data Change mat2's logo 3 years ago
doc Bump the changelog 3 years ago
libmat2 Don't break office files for MS Office 3 years ago
nautilus Second pass of minor formatting 3 years ago
tests Remove file left behind by the testsuite 3 years ago
.gitignore gitignore: exclude all hidden files from being committed 3 years ago
.gitlab-ci.yml Run the testsuite exclusively on Whitewhale for now 3 years ago
.mailmap Add a .mailmap file 3 years ago
.pylintrc Add pylint3 to the ci 3 years ago Bump the changelog 3 years ago Update the file wrt. to the previous commit 3 years ago Add a link to the gentoo overlay 3 years ago
LICENSE Add LICENSE 4 years ago Bump the changelog 3 years ago
mat2 Bump the changelog 3 years ago Bump the changelog 3 years ago

 _____ _____ _____ ___
|     |  _  |_   _|_  |  Keep your data,
| | | |     | | | |  _|     trash your meta!
|_|_|_|__|__| |_| |___|

This software is currently in beta, please don't use it for anything critical.

Metadata and privacy

Metadata consist of information that characterizes data. Metadata are used to provide documentation for data products. In essence, metadata answer who, what, when, where, why, and how about every facet of the data that are being documented.

Metadata within a file can tell a lot about you. Cameras record data about when a picture was taken and what camera was used. Office documents like PDF or Office automatically adds author and company information to documents and spreadsheets. Maybe you don't want to disclose those information on the web.

This is precisely the job of MAT2: getting rid, as much as possible, of metadata.


  • python3-mutagen for audio support
  • python3-gi-cairo and gir1.2-poppler-0.18 for PDF support
  • gir1.2-gdkpixbuf-2.0 for images support
  • libimage-exiftool-perl for everything else

Please note that MAT2 requires at least Python3.5, meaning that it doesn't run on Debian Jessie,

Running the test suite

$ python3 -m unittest discover -v

How to use MAT2

usage: mat2 [-h] [-v] [-l] [--check-dependencies] [-V]
            [--unknown-members policy] [-s | -L]
            [files [files ...]]

Metadata anonymisation toolkit 2

positional arguments:
  files                 the files to process

optional arguments:
  -h, --help            show this help message and exit
  -v, --version         show program's version number and exit
  -l, --list            list all supported fileformats
  --check-dependencies  check if MAT2 has all the dependencies it needs
  -V, --verbose         show more verbose status information
  --unknown-members policy
                        how to handle unknown members of archive-style files
                        (policy should be one of: abort, omit, keep)
  -s, --show            list harmful metadata detectable by MAT2 without
                        removing them
  -L, --lightweight     remove SOME metadata

Note that MAT2 will not clean files in-place, but will produce, for example, with a file named "myfile.png" a cleaned version named "myfile.cleaned.png".

Notes about detecting metadata

While MAT2 is doing its very best to display metadata when the --show flag is passed, it doesn't mean that a file is clean from any metadata if MAT2 doesn't show any. There is no reliable way to detect every single possible metadata for complex file formats.

This is why you shouldn't rely on metadata's presence to decide if your file must be cleaned or not.

Related software


If possible, use the issues system or the mailing list Should a more private contact be needed (eg. for reporting security issues), you can email Julien (jvoisin) Voisin at, using the gpg key 9FCDEE9E1A381F311EA62A7404D041E8171901CC.


This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see

Copyright 2018 Julien (jvoisin) Voisin Copyright 2016 Marie Rose for MAT2's logo


MAT2 wouldn't exist without:

Many thanks to them!