Add metadata to your subtitles with Sublogue

Sublogue inserts story context into your subtitle files using OMDb, TMDb, and TVMaze. It can also clean out ad blocks like YTS promo text while preserving timing, so every subtitle reads cleanly.

SRT safe Multi-source Batch scans Web UI

Overview

Sublogue scans your subtitle folders, pulls metadata from OMDb, TMDb, and TVMaze, then injects plots, ratings, and credits directly into SRT files without touching timing.

  • Preserve original subtitle timing while enriching content.
  • Remove ad text and promo lines from SRT files (YTS and similar).
  • Choose preferred metadata sources per scan.
  • Monitor integration usage and cache clearing in settings.

Quickstart

Launch the container, point Sublogue at your media folder, then open the UI and run a scan.

Docker CLI

docker run -d \
  --name sublogue \
  -p 5000:5000 \
  -e TZ=Etc/UTC \
  -e PUID=1000 -e PGID=1000 \
  -v ./data:/config \
  -v ./media:/media \
  ponzischeme89/sublogue:latest

Open UI

http://localhost:5000

Head to Settings -> Integrations to add your metadata providers and start scanning.

Install

🐳 Docker Compose

Ideal for Portainer, Synology, or homelab setups.

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"

🧰 Unraid

Use the bundled template and map volumes into /config and /media.

/mnt/user/appdata/sublogue -> /config

/mnt/user/media -> /media

🐲 Komodo

Paste a stack template and attach the NPM network.

version: "3.9"
services:
  sublogue:
    image: ponzischeme89/sublogue:latest
    container_name: sublogue
    environment:
      - TZ=Etc/UTC
    ports:
      - "5000:5000"
    volumes:
      - /volume1/Docker/sublogue/data:/config
      - /volume1/Media:/media
    restart: unless-stopped
    networks:
      - npm_network
networks:
  npm_network:
    external: true

Clean SRTs

Remove ad blocks like YTS and other promo lines without touching timing. Sublogue keeps subtitle order intact while cleaning the text.

Before

YTS
1
00:00:01,000 --> 00:00:04,000
Visit YTS.mx for more movies

2
00:00:05,000 --> 00:00:07,200
Grab the latest releases

After

Clean
1
00:00:08,000 --> 00:00:10,200
You are early.

Ad-only blocks are removed, while the rest of the subtitle content remains untouched.

Metadata Examples

Sublogue can insert plots, runtimes, directors, and ratings right into the subtitle header for quick context before the dialogue begins.

Plot + Runtime

Injected Header

Plot

A retired detective returns for one last case and uncovers a hidden network in the city.

Runtime: 112 min

Director + Cast

Injected Header

Director

Ava Solomon

Cast

J. Harper, L. Chen, M. Brooks

Ratings

Injected Header

IMDb 7.8 RT 94%
Sublogue Sublogue metadata branding

Integrations

Start with zero providers enabled. Add OMDb, TMDb, or TVMaze when you have keys ready. Each scan can choose its preferred source.

OMDb - Fast movie metadata
TMDb - Rich cast and ratings
TVMaze - Series and episodes

API Notes

Sublogue expects your media folders to be readable by the container. Large scans stream results to the UI while the API continues processing in the background.

Volumes

Map /config for settings and /media for subtitle files.

Status

Scan progress appears in the UI with streaming rows as files are processed.

Settings

Integrations remain disabled until you add keys in the Settings tab.

Join the Community

Jump into the ponzischeme89 Discord and visit #sublogue-support for help, updates, and feature requests.

#sublogue-support