mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-08-16 01:55:51 -07:00
fix(anime): keep browser state in sync and alias HLS segments
- Toggle the player Anime Browser without losing its state - Share active playback state and support rotating fake segment extensions
This commit is contained in:
+13
-10
@@ -7,16 +7,18 @@ Open it with `subminer anime`, with `SubMiner.AppImage --anime`, or from
|
||||
**Browse Anime** in the tray menu. The window stays open while you watch, so you
|
||||
can queue the next episode without reopening it.
|
||||
|
||||
During playback, `Ctrl+Alt+A` opens the same browser as a modal inside the mpv
|
||||
During playback, `Ctrl+Alt+A` toggles the same browser as a modal inside the mpv
|
||||
player bounds. It uses a dedicated modal surface, so it stays above fullscreen
|
||||
playback and closes like the other in-player tools. The standalone window and
|
||||
the modal keep their own search, selected source, tab, and scroll state, so using
|
||||
one does not replace or cancel what you were doing in the other.
|
||||
playback and closes like the other in-player tools. Toggling it off keeps its
|
||||
current page and scroll position ready for the next toggle. The standalone
|
||||
window and the modal keep their own search, selected source, tab, and scroll
|
||||
state, so using one does not replace or cancel what you were doing in the other.
|
||||
|
||||
Both surfaces use the same playback queue, source configuration, and stats
|
||||
history. Queue changes appear in both immediately, and watched marks come from
|
||||
the same history that playback and the stats window update. Closing and reopening
|
||||
the modal therefore picks up progress made from either browser surface.
|
||||
history. Queue changes and the currently playing episode appear in both
|
||||
immediately, and watched marks come from the same history that playback and the
|
||||
stats window update. Closing and reopening the modal therefore picks up progress
|
||||
made from either browser surface.
|
||||
|
||||
While the window is open, SubMiner shows a tray icon and — on macOS — appears
|
||||
in the Cmd+Tab switcher and the Dock (macOS ties the two together), so you can
|
||||
@@ -257,9 +259,10 @@ probes the segment as a picture and playback dies with "no audio or video data
|
||||
played". The proxy scans each segment for the first genuine MPEG-TS packet run
|
||||
and drops whatever junk sits in front of it. Segments that are not TS (fMP4,
|
||||
subtitles, encryption keys) pass through untouched, and direct-file streams
|
||||
skip the proxy entirely. Disguised `.image` segment URLs are exposed locally
|
||||
with a `.ts` suffix so current ffmpeg releases accept them when Anki extracts
|
||||
audio, screenshots, or animated images from the playing stream.
|
||||
skip the proxy entirely. Segment URLs disguised behind fake extensions
|
||||
(`.image`, `.jpg`, `.css`, and friends) are exposed locally with a `.ts`
|
||||
suffix so current ffmpeg releases accept them when Anki extracts audio,
|
||||
screenshots, or animated images from the playing stream.
|
||||
|
||||
"Playing" in the status bar means playing: after handing mpv the stream,
|
||||
SubMiner waits until mpv actually configures a video output before reporting
|
||||
|
||||
@@ -593,7 +593,7 @@ See `config.example.jsonc` for detailed configuration options and more examples.
|
||||
| `KeyJ` | `["cycle", "sid"]` | Cycle primary subtitle track |
|
||||
| `Shift+KeyJ` | `["cycle", "secondary-sid"]` | Cycle secondary subtitle track |
|
||||
| `Ctrl+Alt+KeyP` | `["__playlist-browser-open"]` | Open playlist browser |
|
||||
| `Ctrl+Alt+KeyA` | `["__anime-browser-open"]` | Open Anime Browser in the player |
|
||||
| `Ctrl+Alt+KeyA` | `["__anime-browser-open"]` | Toggle Anime Browser in the player |
|
||||
| `Ctrl+Alt+KeyC` | `["__youtube-picker-open"]` | Open the manual YouTube subtitle picker |
|
||||
| `ArrowRight` | `["seek", 5]` | Seek forward 5 seconds |
|
||||
| `ArrowLeft` | `["seek", -5]` | Seek backward 5 seconds |
|
||||
|
||||
@@ -49,7 +49,7 @@ These control playback and subtitle display. They require overlay window focus.
|
||||
| `J` | Cycle primary subtitle track |
|
||||
| `Shift+J` | Cycle secondary subtitle track |
|
||||
| `Ctrl+Alt+P` | Open playlist browser for current directory + queue |
|
||||
| `Ctrl+Alt+A` | Open Anime Browser inside the player |
|
||||
| `Ctrl+Alt+A` | Toggle Anime Browser inside the player |
|
||||
| `ArrowRight` | Seek forward 5 seconds |
|
||||
| `ArrowLeft` | Seek backward 5 seconds |
|
||||
| `ArrowUp` | Seek forward 60 seconds |
|
||||
@@ -68,7 +68,7 @@ These control playback and subtitle display. They require overlay window focus.
|
||||
| `Right-click` | Toggle pause (outside subtitle area) |
|
||||
| `Right-click + drag` | Reposition subtitles (on subtitle area) |
|
||||
|
||||
The mpv-command rows above (`Space`, `F`, `J`, `Shift+J`, the seek/sub-seek/sub-step/sub-delay keys, replay/play-next, and quit) are merged from the `keybindings` config array and can be remapped or disabled there. `V` and the mouse actions are built-in overlay behaviors and are not part of the `keybindings` array. The playlist browser opens a split overlay modal with sibling video files on the left and the live mpv playlist on the right. The Anime Browser shortcut opens a dedicated overlay modal bounded to the player; the standalone Anime Browser window remains independent.
|
||||
The mpv-command rows above (`Space`, `F`, `J`, `Shift+J`, the seek/sub-seek/sub-step/sub-delay keys, replay/play-next, and quit) are merged from the `keybindings` config array and can be remapped or disabled there. `V` and the mouse actions are built-in overlay behaviors and are not part of the `keybindings` array. The playlist browser opens a split overlay modal with sibling video files on the left and the live mpv playlist on the right. The Anime Browser shortcut toggles a dedicated overlay modal bounded to the player; the standalone Anime Browser window remains independent, while active playback is shared.
|
||||
|
||||
On macOS managed playback, SubMiner disables mpv's menu-bar shortcuts so configured SubMiner shortcuts like `Cmd+Shift+O` reach the mpv plugin instead of opening native mpv menu actions.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user