feat(youtube): add YouTube browser window and Whisper subtitles

- Add `subminer youtube`/`yt` and tray Browse YouTube window with persistent login; clicks play or queue in mpv
- Add `youtube.subtitleSource` (youtube | whisper) to transcribe YouTube audio via subtitle generation settings
- Drop legacy launcher whisper/AI subgen args and `--youtube-mode`
- Fix YouTube HTTP 429 on machine-translated Japanese tracks with yt-dlp fallback
- Keep Hyprland overlay mapped during fullscreen transitions
- Thin media timing review trim handles; cursor follows mpv time-pos
- Avoid EPIPE crash when the launching terminal is closed
- Bump undici to 7.29.1 and fast-uri to 3.1.7
- Update docs, config example, and changelog fragments
This commit is contained in:
2026-09-29 18:48:20 -07:00
122 changed files with 2718 additions and 850 deletions
+4
View File
@@ -0,0 +1,4 @@
type: fixed
area: app
- SubMiner no longer crashes with "write EPIPE" when the terminal command that started it is stopped with Ctrl+C.
+4
View File
@@ -0,0 +1,4 @@
type: fixed
area: overlay
- Keep the subtitle overlay mapped during fullscreen transitions on Hyprland, avoiding focus changes from repeated hide/show calls that can cancel mpv fullscreen entry. Preserve the hide/show refresh on Sway.
+4
View File
@@ -0,0 +1,4 @@
type: fixed
area: dependencies
- Updated Electron to 42.10.0 and undici to 7.29.1 to resolve the security advisories blocking CI.
+5
View File
@@ -0,0 +1,5 @@
type: fixed
area: overlay
- Media timing review trim handles are now thin lines centered on the clip edge, so it's clear where the clip starts and ends and less of the waveform is covered.
- Original subtitle boundaries use orange bars without text tags, leaving the waveform unobstructed.
+7
View File
@@ -0,0 +1,7 @@
type: added
area: youtube
- Added a YouTube browser window (`subminer youtube`/`subminer yt`, or tray **Browse YouTube**) that keeps your YouTube login across restarts.
- Clicking a video plays it in mpv instead of the page; middle-click, Shift/Ctrl-click, or the right-click menu queues it in mpv's playlist.
- Queued YouTube videos get the same Japanese subtitle setup when mpv reaches them.
- Closing the YouTube window quits a SubMiner started by `subminer youtube` (after mpv closes, if a video is still playing).
@@ -0,0 +1,4 @@
type: fixed
area: youtube
- YouTube Japanese subtitles no longer fail with "HTTP 429" on videos where YouTube also lists a machine-translated Japanese track; SubMiner now picks the real track and falls back to yt-dlp if a direct subtitle download is refused.
+7
View File
@@ -0,0 +1,7 @@
type: added
area: youtube
- Added `youtube.subtitleSource`: set it to `whisper` to transcribe YouTube videos with Whisper instead of downloading YouTube's captions. The default stays `youtube`.
- Whisper mode keeps the video paused while it transcribes, with progress in the subtitle generation modal; close the modal to keep watching, or cancel to continue without subtitles.
- The subtitle generation modal (`Ctrl+Shift+G`) now also works on YouTube videos, whatever `youtube.subtitleSource` is set to.
- Whisper mode downloads a small audio-only stream and deletes it once generation ends, or when you switch videos, close mpv, or quit.