mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-06-10 03:13:32 -07:00
52 lines
2.3 KiB
Markdown
52 lines
2.3 KiB
Markdown
# AniSkip Integration
|
|
|
|
SubMiner integrates with [AniSkip](https://aniskip.com) to automatically detect anime intro intervals and let you skip them with a single key press.
|
|
|
|
Intro detection runs in the SubMiner app over the mpv IPC socket. It is available whenever the overlay is connected to mpv - not just at launch - and covers every local file loaded during an mpv session, including playlist advances.
|
|
|
|
## Setup
|
|
|
|
AniSkip is opt-in. Enable it in your config:
|
|
|
|
```jsonc
|
|
{
|
|
"mpv": {
|
|
"aniskipEnabled": true,
|
|
"aniskipButtonKey": "TAB",
|
|
},
|
|
}
|
|
```
|
|
|
|
Both settings hot-reload: changing them in your config takes effect immediately without restarting playback or mpv.
|
|
|
|
For best title and episode detection, install [`guessit`](https://github.com/guessit-io/guessit):
|
|
|
|
```bash
|
|
python3 -m pip install --user guessit
|
|
```
|
|
|
|
Without `guessit`, SubMiner falls back to an internal filename parser which handles most common naming conventions but may miss unusual formats.
|
|
|
|
## How It Works
|
|
|
|
On each local file load:
|
|
|
|
1. SubMiner infers the anime title, season, and episode number from the filename and path (using `guessit` if available, otherwise the built-in parser). Remote URLs are skipped entirely.
|
|
2. The title is matched against MyAnimeList to resolve a MAL id.
|
|
3. SubMiner queries the AniSkip API for an OP skip interval for that MAL id and episode.
|
|
4. If an interval is found, SubMiner adds `AniSkip Intro Start` and `AniSkip Intro End` chapter markers to the current file and binds the skip key (`mpv.aniskipButtonKey`, default `TAB`).
|
|
5. At the start of the intro, an OSD prompt appears for 3 seconds: `You can skip by pressing TAB` (reflects your configured key). Pressing the key at any point during the intro seeks to the intro end.
|
|
|
|
Results are cached per file for the app session. Reload detection is also handled: if mpv reloads the same file, SubMiner re-applies the chapter markers without a new API lookup.
|
|
|
|
## Triggering from mpv
|
|
|
|
You can trigger AniSkip actions from mpv script-messages:
|
|
|
|
| Command | Effect |
|
|
| ------- | ------ |
|
|
| `script-message subminer-skip-intro` | Skip to the intro end immediately (same as pressing the key) |
|
|
| `script-message subminer-aniskip-refresh` | Force a fresh lookup for the current file, discarding any cached result |
|
|
|
|
These are handled by the SubMiner app over the IPC socket.
|