EMBRACE Documentation
EMBRACE is a local-first recommendation and analytics engine built around your Emby library. The project ingests playback history and rich metadata so downstream models can reason about what each household actually watches.
Supported runtimes and tooling
- Python: The project requires Python 3.11 or newer (see
pyproject.toml). Development has primarily targeted CPython 3.11/3.12, so you do not need to upgrade to 3.13 unless you already run it. - Optional services:
- SQLite is bundled and created on demand under
sqlite_db/. - MySQL (via Docker) backs the optional IMDB ingest pipeline that powers the ML preprocessing step.
- MkDocs generates the static documentation in this directory (
mkdocs servefor live preview).
- SQLite is bundled and created on demand under
Quickstart (local Python environment)
-
Clone the repository
git clone https://github.com/bgrando24/EMBRACE.git cd EMBRACE -
Create a virtual environment and install dependencies
python3 -m venv .venv source .venv/bin/activate # Windows: .venv\Scripts\activate.bat pip install -r requirements.txt pip install -e . -
Configure environment variables
Populate both
.envfiles so the connectors can authenticate:cp .env.example .env cp scripts/mysql/.env.example scripts/mysql/.env # optional MySQL pipelineThe environment variables guide documents every setting and when it is required.
-
Run the application entry point
python3 src/main.pyThe default script demonstrates how to build genre embeddings from the IMDB dataset once the supporting databases are populated.
Docker usage
A simple Dockerfile is provided for packaging the core application. Build and run it with:
docker build -t embrace .
docker run --env-file .env embrace
For the optional IMDB + MySQL toolchain, see the dedicated MySQL database guide for docker-compose instructions.
Where to go next
- Architecture overview explains the major components and how the connectors interact.
- Environment variables clarifies which credentials are required for Emby, TMDB, and MySQL.
- Data ingestion workflows walks through library metadata ingestion, watch-history processing, and TMDB synchronisation.
- SQLite schema reference documents the operational data store created by
SQLiteConnector. - MySQL + IMDB reference covers the optional dataset that powers the ML preprocessing step.