sudacode 20f53c0b70 Switch known-word cache to incremental sync and doctor refresh
- Load persisted known-word cache on startup; reconcile adds/deletes/edits on timed sync
- Add `knownWords.addMinedWordsImmediately` (default `true`) for immediate mined-word updates
- Route full rebuild to explicit `subminer doctor --refresh-known-words` and expand tests/docs
2026-03-19 19:29:58 -07:00
2026-03-19 18:04:02 -07:00
2026-03-19 18:04:02 -07:00

SubMiner logo

SubMiner

Sentence-mine from mpv — look up words, one-key Anki export, immersion tracking.

License: GPL v3 Linux Docs AUR


SubMiner is an Electron overlay for mpv that turns video into a sentence-mining workstation. Look up any word with Yomitan, mine it to Anki with one key, and track your immersion over time.

SubMiner demo (Animated preview)

Features

Dictionary lookups — Yomitan runs inside the overlay. Hover or navigate to any word for full dictionary popups without leaving mpv.

One-key Anki mining — Press one key to create a card with the sentence, audio clip, screenshot, and machine translation from the exact playback moment.

Yomitan popup with dictionary entry and mine button over annotated subtitles in mpv

Reading annotations — Real-time subtitle annotations with N+1 targeting, frequency highlighting, JLPT tags, and a character name dictionary. Grammar-only tokens render as plain text.

Annotated subtitles with frequency highlighting, JLPT underlines, known words, and N+1 targets

Immersion dashboard — Local stats dashboard with watch time, anime progress, vocabulary growth, mining throughput, and session history.

Stats dashboard with watch time, cards mined, streaks, and tracking snapshot

Integrations — AniList episode tracking, Jellyfin remote playback, Jimaku subtitle downloads, alass/ffsubsync, and an annotated websocket feed for external clients.

Texthooker page with annotated subtitle lines and frequency highlighting

Quick Start

Install

Arch Linux (AUR)
paru -S subminer-bin

Or manually:

git clone https://aur.archlinux.org/subminer-bin.git && cd subminer-bin && makepkg -si
Linux (AppImage)
wget https://github.com/ksyasuda/SubMiner/releases/latest/download/SubMiner.AppImage -O ~/.local/bin/SubMiner.AppImage \
	&& chmod +x ~/.local/bin/SubMiner.AppImage
wget https://github.com/ksyasuda/SubMiner/releases/latest/download/subminer -O ~/.local/bin/subminer \
	&& chmod +x ~/.local/bin/subminer

Note

The subminer wrapper uses a Bun shebang. Make sure bun is on your PATH.

macOS / Windows / From source

macOS — Download the latest DMG/ZIP from GitHub Releases and drag SubMiner.app into /Applications.

Windows — Download the latest installer or portable .zip from GitHub Releases. Keep mpv on PATH.

From source — See docs.subminer.moe/installation#from-source.

First Launch

Run SubMiner.AppImage (Linux), SubMiner.app (macOS), or SubMiner.exe (Windows). On first launch, SubMiner starts in the tray, creates a default config, and opens a setup popup where you can install the mpv plugin and configure Yomitan dictionaries.

Mine

subminer video.mkv          # auto-starts overlay + resumes playback
subminer --start video.mkv  # explicit overlay start (if plugin auto_start=no)
subminer stats              # open the immersion dashboard
subminer stats -b           # keep the stats daemon running in background
subminer stats -s           # stop the dedicated stats daemon
subminer stats cleanup      # repair/prune stored stats vocabulary rows

Requirements

Required Optional
mpv with IPC socket yt-dlp
ffmpeg guessit (AniSkip detection)
mecab + mecab-ipadic fzf / rofi
bun (source builds, Linux wrapper) chafa, ffmpegthumbnailer
Linux: hyprctl or xdotool + xwininfo
macOS: Accessibility permission

Windows uses native window tracking and does not need the Linux compositor tools.

Documentation

Full guides on configuration, Anki, Jellyfin, immersion tracking, and more at docs.subminer.moe.

Acknowledgments

Built on GameSentenceMiner, Renji's Texthooker Page, Anacreon-Script, and Bee's Character Dictionary. Subtitles from Jimaku.cc. Lookups via Yomitan. JLPT tags from yomitan-jlpt-vocab.

License

GNU General Public License v3.0

Languages
TypeScript 94.9%
Lua 2.2%
CSS 1%
Shell 0.8%
JavaScript 0.3%
Other 0.6%