# Sublogue

# 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 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