Files
sublogue/README.md
T

132 lines
4.4 KiB
Markdown
Raw Normal View History

2026-01-17 23:47:52 +13:00
<div align="center">
2026-01-17 23:01:41 +13:00
<img src="https://github.com/ponzischeme89/Sublogue/blob/master/docs/sublogue_v2.png" height="256" width="456">
2026-01-17 23:01:41 +13:00
2026-01-17 23:47:52 +13:00
<h4>Your subtitles deserve metadata. Sublogue adds it.</h4>
2026-01-17 23:01:41 +13:00
2026-01-17 23:47:52 +13:00
</div>
2026-01-17 23:01:41 +13:00
2026-01-17 23:47:52 +13:00
Sublogue is a lightweight open-source tool for enriching SRT files. Pull metadata from OMDb, TMDB, or TVMaze and automatically append plot summaries, runtimes, directors, and cast details to the start or end of your subtitles.
2026-01-17 23:01:41 +13:00
2026-01-18 02:03:45 +13:00
Why? Because if the cast list and IMDb/RT rating show up in the first minute, my wife asks fewer questions and we actually get to watch the movie.
2026-01-18 00:13:29 +13:00
2026-01-18 01:49:34 +13:00
## Features
2026-01-18 01:53:58 +13:00
- Insert plot summaries into existing .srt files without shifting timings
- Fetch metadata (plot, runtime, director, cast, IMDb/RT ratings) using OMDb, TMDb, and TVMaze — add these integrations under Settings before scanning
2026-01-17 23:47:52 +13:00
- Preserve original dialogue and timing with safe insertion logic
- Folder Rules to have seperate logic for different folders (for example TV shows could have runtime but not actors, etc)
2026-01-18 01:53:58 +13:00
- Clean, fast web UI for scanning and batch processing built with Svelte + Python/Flask
- Three themes included: OLED, Ocean, and Dracula White
2026-01-18 00:20:02 +13:00
## Screenshots
<div align="center">
2026-01-18 02:24:25 +13:00
<img src="https://github.com/ponzischeme89/Sublogue/blob/master/docs/screenshots/screenshot_scan.png" height="256" width="456">
2026-01-18 00:20:02 +13:00
<img src="https://github.com/ponzischeme89/Sublogue/blob/master/docs/screenshots/screenshot_settings.png" height="256" width="456">
</div>
2026-01-17 23:47:52 +13:00
## Getting started
2026-01-18 01:45:04 +13:00
To get started installing Sublogue, expand on your posion below. Personally, I recommend Komodo. It's great.
2026-01-18 00:07:41 +13:00
<details>
<summary>⚓ Docker Compose</summary>
2026-01-17 23:05:02 +13:00
Create `data/` and `media/` folders next to the compose file, then run:
```yaml
version: "3.9"
services:
sublogue:
2026-01-18 00:05:44 +13:00
image: ghcr.io/ponzischeme89/sublogue:latest
2026-01-17 23:05:02 +13:00
container_name: sublogue
restart: unless-stopped
environment:
- TZ=Pacific/Auckland
2026-01-17 23:05:02 +13:00
volumes:
- ./data:/config
- ./media:/media
ports:
- "5000:5000"
```
2026-01-17 23:47:52 +13:00
Start the stack:
2026-01-17 23:05:02 +13:00
```bash
docker compose up -d
```
2026-01-17 23:47:52 +13:00
Open `http://localhost:5000`.
2026-01-18 00:07:41 +13:00
</details>
2026-01-18 00:05:44 +13:00
<details>
<summary>🧡 Unraid</summary>
2026-01-17 23:47:52 +13:00
Use the included template at `unraid-sublogue.xml`.
2026-01-17 23:05:02 +13:00
- `/mnt/user/appdata/sublogue` -> `/config`
- `/mnt/user/appdata/sublogue/media` -> `/media`
Start the container and open `http://<UNRAID-IP>:5000`.
2026-01-18 00:05:44 +13:00
</details>
2026-01-17 23:10:36 +13:00
2026-01-18 00:05:44 +13:00
<details>
<summary>🦎 Komodo</summary>
2026-01-17 23:10:36 +13:00
2026-01-17 23:47:52 +13:00
Create a new stack and paste a Komodo template like this:
2026-01-17 23:10:36 +13:00
```yaml
version: "3.9"
services:
2026-01-17 23:47:52 +13:00
sublogue:
2026-01-18 00:05:44 +13:00
image: ghcr.io/ponzischeme89/sublogue:latest
2026-01-17 23:10:36 +13:00
container_name: sublogue
ports:
2026-01-17 23:47:52 +13:00
- "5000:5000"
2026-01-17 23:10:36 +13:00
environment:
2026-01-17 23:47:52 +13:00
- TZ=Etc/UTC
- PUID=1000
- PGID=1000
2026-01-17 23:10:36 +13:00
volumes:
2026-01-17 23:47:52 +13:00
- /volume1/Docker/sublogue/data:/config
- /volume1/Media:/media
2026-01-17 23:10:36 +13:00
restart: unless-stopped
networks:
- npm_network
networks:
npm_network:
external: true
```
2026-01-18 00:05:44 +13:00
</details>
2026-01-18 00:09:02 +13:00
## Limitations
- API rate limits: OMDb is tight, TMDb is better, TVMaze is polite-but-limited. Heavy scans may hit caps.
- Metadata gaps: If providers dont have it, Sublogue wont either. Ratings/plots can be missing or stale.
- Localisation: Only TMDb supports proper language/region data. OMDb/TVMaze are mostly English-only.
- Long plots: Big summaries go in as-is. Your TV may split them across multiple screens.
- Formats: Only .srt is supported. No WebVTT, ASS/SSA, or embedded subs yet.
- Duplicate inserts: Reprocessing the same file will stack multiple plot blocks.
- Offline use: Requires internet for metadata lookups — no offline mode.
- File access: Read-only or locked files cannot be processed.
## Roadmap
- [x] TVMaze integration
- [ ] More UI themes (OLED variants, Ocean+, and high-contrast)
- [ ] Poster + backdrop previews in results
- [ ] Smart duplicate-detection (dont re-insert plot blocks)
- [ ] Automatic rate-limit backoff + retry logic
- [ ] Optional “short plot mode” for long summaries
- [ ] Expanded localisation using TMDb (title, plot, cast where available)
- [ ] Multi-format subtitle support (WebVTT, ASS/SSA)
- [ ] Offline caching of recent metadata lookups
- [ ] Per-scan analytics: success/fail counts, rate-limit warnings
- [ ] CLI mode for batch operations
2026-01-18 02:06:36 +13:00
2026-01-18 00:09:02 +13:00
## Support
- Help spread the word about Sublogue by telling your friends about this repo
- Give the repo a star (This really helps)
2026-01-18 10:42:49 +13:00
- Check out my other project, which is an open source renamer tool (with a very poor naming choice, but i'll likely change this in future)