- Added hover-revealed ↗ button on SessionRow that navigates to the
anime media-detail view for the session's videoId
- Added `sessions` origin type to MediaDetailOrigin and
openSessionsMediaDetail() / closeMediaDetail() handling so the
back button returns correctly to the Sessions tab ("Back to Sessions")
- Wired onNavigateToMediaDetail down through SessionsTab → SessionRow
- Excluded tokens with MeCab POS3 = 助動詞語幹 (e.g. そうだ grammar tails)
from subtitle annotation metadata so frequency, JLPT, and N+1 styling
no longer apply to grammar-tail tokens
- Added annotation-stage unit test and end-to-end tokenizeSubtitle test
for the そうだ exclusion path
- Updated docs-site changelog, immersion-tracking, and
subtitle-annotations pages to reflect both changes
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.
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.
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.
Immersion dashboard — Local stats dashboard with watch time, anime progress, vocabulary growth, mining throughput, and session history.
Integrations — AniList episode tracking, Jellyfin remote playback, Jimaku subtitle downloads, alass/ffsubsync, and an annotated websocket feed for external clients.
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)
mkdir -p ~/.local/bin
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
subminerwrapper uses a Bun shebang. Make surebunis on yourPATH.
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.





