« back to projects source on github license: GPL-2.0-or-later Open Source

Fabella

Minimal, elegant video library browser and player.
fabella in action. Please excuse the limited quality of the screen capture.

Note: Fabella is very much in the "v0.1" stage. It does the basics, for me, on my system, but it's nowhere near a finished product. That said, here it is, and here is even a preliminary readme:

About

Fabella is a video library browser and viewer, focusing on a minimal but elegant user interface.

It simply exposes the directory structure of the library root.

Files can be in any of the states seen (no emblem), new (star emblem), or watching ("play" emblem). Additionally, it can be tagged (red triangle emblem). Playing a video will change it from new to watching. Finishing the video will change it to seen. States propagate up to folders.

Clerk service

For performance, directory contents, cover images, and video file states are compiled into indices in .fabella/ within each folder. These indices are not maintained by Fabella itself, but by a separate service called Clerk. Clerk watches the library for changes, and updates the index files accordingly. Without Clerk, these indices are not updated, and Fabella will display stale content/state.

Fabella is designed such that Fabella and Clerk can run on separate systems, with the video library shared as a network mount. This is in fact the intended setup, with Clerk running on a NAS / server with the storage, and one or more Fabella "clients" that use the video library via a network mount (using sshfs in my case).

Requirements

Fabella requires:

Clerk requires:

Installation

Probably something like:

virtualenv --python=python3 venv
source venv/bin/activate
pip install glfw PyOpenGL pillow pycairo PyGObject
./fabella.py /path/to/videos

For Clerk:

virtualenv --python=python3 venv
source venv/bin/activate
pip install watchdog
./clerk.py /path/to/videos

You can have a look at config.py to tweak some of Fabella's behaviour. No documentation yet, sorry.

Keys

This is a probably incomplete list of key bindings. Perhaps look in fabella.py for all keys.

In menu:

In player: