Minimalistic EXIF Editor.
Go to file
ge afc59d6223 upd 2023-05-04 21:53:10 +03:00
.gitignore init 2023-04-21 21:59:06 +03:00
COPYING add license 2023-04-22 04:44:07 +03:00 implement Mee as class 2023-04-22 04:42:41 +03:00 upd 2023-05-04 21:53:10 +03:00
poetry.lock init 2023-04-21 21:59:06 +03:00
pyproject.toml bump version 2023-04-22 04:56:37 +03:00


Minimalistic EXIF Editor.

MEE allows you to get, remove and change EXIF tags in images.

In addition to this, support for custom tags is implemented here. Custom tags are written in JSON format to the UserComment tag (why). MEE can operate with them in the same way as with ordinary tags. Be aware of the 64 kilobytes limit for the UserComment tag.

Custom tags entered there can only be interpreted manually or with MEE.

EXIF libraries support:

  • exif (only JPEG)
  • piexif (JPEG, WebP, TIFF)
  • pillow (JPEG, WebP, TIFF, PNG)
  • Wrap Perl exiftool?


No prebuilt package provided. Build it by yourself.

  1. Install poetry
  2. Clone repo and run poetry build
  3. Run pip install ./dist/*.tar.gz


Minimalistic EXIF Editor.

Commands overview:
    ls, get, set, del       operate with EXIF tags.
    cget, cset, cdel        operate with JSON in UserComment EXIF tag.

    mee ls [options] <file>
    mee get [options] [-k <key>] <file>
    mee set [options] -k <key> -v <value> <file> [-o <file>]
    mee del [options] (--all | -k <key>) <file> [-o <file>]
    mee cget [options] [-k <key>] <file>
    mee cset [options] -k <key> -v <value> <file> [-o <file>]
    mee cdel [options] -k <key> <file> [-o <file>]
    mee (--help | --version)

    -o, --output <file>     output file. Same as input file by default.
    -k, --key <key>         set EXIF/JSON key.
    -v, --value <value>     EXIF/JSON key value.
    -c, --custom            make 'get -c' alias for 'cget', etc.
    --json                  print JSON output if available.
    --all                   perform action with all EXIF tags.
    --debug                 enable debug messages.
    --help                  print this message and exit.
    --version               print version and exit.

    DEBUG                   enable debug messages.

Use MEE as library

Read sources and/or see help(Mee) for more info.

from mee import Mee

mee = Mee("image.jpg")
mee.tags  # current custom tags as dict
mee.set("is_nudes", True)  # add key with bool value, VARIANT 1
mee.tags["is_nudes"] = True  # add key with bool value, VARIANT 2
mee.commit()  # write new EXIF to file