Meta inquiry middleware for distributed systems
Project description
jomiel
jomiel
is the meta inquiry middleware for distributed systems. It
returns meta data for content on video-sharing websites (e.g.
YouTube) and runs as a service responding to client inquiries.
Two core technologies serve as a basis for jomiel
:
- Protocol Buffers for platform-independent data serialization
- ZeroMQ as the messaging library
The client applications can be written in modern languages for most platforms.
jomiel
is a spiritual successor to (now defunct) libquvi.
Features
-
Language and platform neutral messaging using Protocol Buffers and ZeroMQ
-
A plugin architecture for extending video-sharing website support
-
Runs fully as a service
-
Highly configurable
Getting started
jomiel
requires Python 3.6+
To install from PyPI:
pip install jomiel # For the latest release
To run from the repository:
git clone https://github.com/guendto/jomiel.git
cd jomiel
pip install -e .
Once you have jomiel
running, you
can try sending inquiries with:
- examples - the demo programs written in most modern languages
- yomiel - the pretty printer for
jomiel
messages
Website coverage
To view the list of the supported video-sharing websites, type:
jomiel --plugin-list
The website coverage is still very limited.
- Additional support can be added by writing new plugins
- The plugin architechture is implemented in Python
- Python is a fun and easy language to learn
See the src/jomiel/plugin/
directory for the existing plugins.
When you are contributing new plugins
-
Make sure the website is not dedicated to copyright infringement (be that they host the media or the link to it)
-
Make sure the website is not NSFW
HOWTO
See docs/HOWTO.
License
jomiel
is licensed under the Apache License version 2.0.
Acknowledgements
jomiel
uses pre-commit and its many hooks to lint and format the
project files. See the .pre-commit-config.yaml file for details.
Subprojects (as git subtrees)
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.