2026-01-17 23:01:41 +13:00
# Sublogue
2026-01-17 23:05:02 +13:00
Sublogue is a lightweight tool for adding plot summaries and metadata to subtitle files.
2026-01-17 23:01:41 +13:00
2026-01-17 23:05:02 +13:00
It takes an existing .srt, pulls data from OMDb, TMDb, and TVMaze, and inserts a short plot block at the start of the file — without altering any existing timings or dialogue.
2026-01-17 23:01:41 +13:00
2026-01-17 23:05:02 +13:00
If you’ ve ever opened a movie or episode and thought “wait… what was this again?”, Sublogue quietly solves that.
2026-01-17 23:01:41 +13:00
## Features
- Inserts a plot summary at the beginning of an existing `.srt`
- Automatically fetches metadata (OMDb, TMDb, TVMaze fallback)
- Never alters existing dialogue timing
- Handles long plots without breaking readability
- Clean web UI (Svelte + Vite)
- Fast Python backend (Flask + aiohttp)
- Docker image available through GHCR
2026-01-17 23:05:02 +13:00
## Docker Compose
Create `data/` and `media/` folders next to the compose file, then run:
``` yaml
version : "3.9"
services :
sublogue :
image : ponzischeme89/sublogue:latest
container_name : sublogue
restart : unless-stopped
environment :
- TZ=Etc/UTC
- PUID=1000
- PGID=1000
volumes :
- ./data:/config
- ./media:/media
ports :
- "5000:5000"
```
Then start it with:
``` bash
docker compose up -d
```
## Unraid
Sublogue includes an Unraid template at `unraid-sublogue.xml` . Import it in Unraid's Docker UI, then map:
- `/mnt/user/appdata/sublogue` -> `/config`
- `/mnt/user/appdata/sublogue/media` -> `/media`
Start the container and open `http://<UNRAID-IP>:5000` .
## Acknowledgements
- Svelte for the frontend UI.
- Flask for the backend API.
- asyncio for async metadata fetching.