Skip to main content

Image viewer and tagger

Project description

metapho

Icon for metapho: a noodle bowl with chopsticks pulling out a string of images

An app for viewing, tagging and organizing large numbers of photos efficiently.

Metapho is intended as a lightweight, flexible way of organizing large numbers of photos. It uses text files, not a proprietary database, so you’re not locked down to one app or a proprietary database, and you can view your tags databases at any time, or edit them in a text editor.

This arose out of my Pho image viewer (Pho on GitHub), which was starting to get unwieldy as I added ever more tagging features to what was intended as just a fast, light image viewer. Metapho will replace pho: the new Tk version of metapho includes a pho image viewer script that’s roughly feature-compatible with the old pho.

Screenshot of metapho Screenshot of metapho showing the info dialog

Run metapho on a directory of images you’ve just uploaded:

metapho *.jpg

and enter your tags. When you exit, it creates a file named Tags.

Metapho can be driven entirely from the keyboard: you should be able to do everything you need without moving your hands to the mouse, though you can use the mouse if you find that easier.

pho

Metapho also includes a basic image view called pho. Pho is optimized for viewing a large number of images quickly and making quick numeric tags, like keeping track of which images you want to share right now. It’s also useful for giving photo-based presentations. Like metapho, it’s intended to be keyboard driven.

Command-line Scripts

Installing also gets you three command-line scripts:

notags:

Examine the current directory recursively and tell you about files and directories that still need to be tagged. Run it at the root of an image directory that might have untagged subdirectories. Documentation.

fotogr:

Search for files with particular tags. For instance, fotogr flower will print the names of all files you’ve tagged with “flower”. It has lots of options: you can search for combinations of tags, and limit the search to particular directories. See fotogr -h or the man page for details.

photoshare:

Manage files tagged with “share” or “wallpaper”. See photoshare -h or the man page for more info.

A Note about GTK versus Tk

In the past, metapho was built on GTK (most recently GTK3), though it never needed Gnome or any other desktop services. But after trying to port it to GTK4, I concluded it would be easier to rewrite it in Tk, plus it would be easier for people on non-Linux OSes. So metapho 2.0 will be Tk based, without a GTK dependency.

I’ve been using the Tk versions of pho and tkmetapho since January 2025 and they’ve been working well. I have now made them the default; the GTK versions are now obsolete. Metapho now also includes a Tk-based image viewer called pho, replacing my old GTK-based pho image viewer.

Currently what metapho installs is:

  • metapho: TkInter-based metapho tagging app

  • tkmetapho: TkInter-based metapho tagging app

  • tkpho: TkInter-based pho image viewer

  • gmetapho: GTK3-based metapho tagging app

  • gmpiv: GTK MetaPho image viewer

plus several helper scripts.

The default metapho and pho are now the TkInter versions. On Debian, you’ll need packages: python3-tk python3-pil python3-pil.imagetk

If you still want to use gmetapho, you’ll need GTK3 libraries. If you have trouble installing them, this may help: PyGObject: Getting Started

How to Install

Metapho is available on PyPi, so you can install it as pip install metapho (though of course the PyPI version won’t always have the very latest features and bug fixes).

To install from the source directory, use pip install .

Documentation

The Metapho Documentation on ReadTheDocs has more information on both the app and the API of the classes inside it. It was out of date for a while because of a tools issue, but it’s updated now.

There are also man pages that you can install on Linux/Unix. Unfortunately, Python pip doesn’t have a way to install man pages; but you can build them with

make man

in the docs directory, which produces files in build/man that you can install to anywhere you keep section 1 man pages. Or just read them fvia the links above.

Testing

To run the automated tests:

python3 -m unittest discover -s test

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metapho-1.9.1.tar.gz (109.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

metapho-1.9.1-py3-none-any.whl (105.4 kB view details)

Uploaded Python 3

File details

Details for the file metapho-1.9.1.tar.gz.

File metadata

  • Download URL: metapho-1.9.1.tar.gz
  • Upload date:
  • Size: 109.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for metapho-1.9.1.tar.gz
Algorithm Hash digest
SHA256 69012d9988740bdca87fff6555923c2e73b4507d2098100396b63acef4c777a0
MD5 76a1218f966081659137d69f2ce19aae
BLAKE2b-256 1f5ab52de73ec197173c02f66c76e592f22f7d5d92e525618b9b89f334af1c14

See more details on using hashes here.

File details

Details for the file metapho-1.9.1-py3-none-any.whl.

File metadata

  • Download URL: metapho-1.9.1-py3-none-any.whl
  • Upload date:
  • Size: 105.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for metapho-1.9.1-py3-none-any.whl
Algorithm Hash digest
SHA256 801e4d6c1f5f75aaf2d88cedc2206ee04869a9f30b2cdb27a24e7ae3b972d6e8
MD5 dce5c3044fd4ecd4a13393a9cce44c37
BLAKE2b-256 b451f89769b387e5804e5fb4bdb32ad7db700e2943264acf1b2181a4717d1fb8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page