mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
edfe6640ac7c7ea2f41cef6387a1a1c367d3b437
Introduce Discord presence runtime support and continue composition-root decomposition by moving Jellyfin wiring into dedicated composer modules. This keeps main runtime orchestration thinner while preserving behavior and test coverage across config, runtime, and docs updates.
What it does
SubMiner is an Electron overlay that sits on top of mpv. It turns your video player into a full sentence-mining workstation:
- Hover to look up — Yomitan dictionary popups directly on subtitles
- One-key mining — Creates Anki cards with sentence, audio, screenshot, and translation
- N+1 highlighting — Marks known words from your Anki deck so unknown ones jump out
- Subtitle tools — Download from Jimaku, sync with alass/ffsubsync, all in-player
- Immersion tracking — SQLite-powered stats on your watch time and mining activity
- Texthooker page built in — WebSocket streaming to external tools, no extra setup
Quick start
1. Install
Linux (AppImage):
wget https://github.com/ksyasuda/SubMiner/releases/latest/download/SubMiner-0.1.0.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.
From source or macOS — see the installation guide.
2. Install the mpv plugin and configuration file
wget https://github.com/ksyasuda/SubMiner/releases/latest/download/subminer-assets-0.1.0.tar.gz -O /tmp/subminer-assets.tar.gz
tar -xzf /tmp/subminer-assets.tar.gz -C /tmp
cp /tmp/plugin/subminer.lua ~/.config/mpv/scripts/
cp /tmp/plugin/subminer.conf ~/.config/mpv/script-opts/
mkdir -p ~/.config/SubMiner && cp /tmp/config.example.jsonc ~/.config/SubMiner/config.jsonc
3. Set up Yomitan Dictionaries
subminer app --start --yomitan
4. Mine
subminer app --start --background
subminer video.mkv
Requirements
| Required | Optional |
|---|---|
mpv with IPC socket |
yt-dlp |
ffmpeg |
guessit (better AniSkip title/episode detection) |
mecab + mecab-ipadic |
fzf / rofi |
Linux: hyprctl or xdotool + xwininfo |
chafa, ffmpegthumbnailer |
| macOS: Accessibility permission |
Documentation
For full guides on configuration, Anki, Jellyfin, and more, see docs.subminer.moe.
Acknowledgments
Built on the shoulders of GameSentenceMiner, mpvacious, Anacreon-Script, and autosubsync-mpv. Subtitles powered by Jimaku.cc. Dictionary lookups via Yomitan.
License
Languages
TypeScript
94.8%
Lua
2.2%
Shell
1.2%
CSS
0.9%
HTML
0.4%
Other
0.5%

