feat(youtube): add YouTube browser window and Whisper subtitle source

- Add `subminer youtube`/`yt` and tray "Browse YouTube" window that plays or queues picked videos in mpv
- Add `youtube.subtitleSource` (`youtube` | `whisper`) to transcribe YouTube audio via subtitle generation
- Allow the subtitle generation modal on YouTube videos
- Pick the real Japanese track over machine-translated ones and fall back to yt-dlp on HTTP 429
- Remove legacy launcher youtubeSubgen/whisper/AI args and `--youtube-mode`
- Fix EPIPE crash when the launching terminal is closed with Ctrl+C
- Thin media timing review handles with orange original-boundary bars
- Update docs and change fragments
This commit is contained in:
2026-09-28 20:46:11 -07:00
105 changed files with 2297 additions and 623 deletions
+9
View File
@@ -107,6 +107,15 @@ test('parseArgs maps settings command to settings window', () => {
assert.equal(parsed.configShow, false);
});
test('parseArgs maps youtube command and yt alias to the YouTube browser', () => {
assert.equal(parseArgs(['youtube'], 'subminer', {}).youtubeBrowser, true);
const alias = parseArgs(['yt', '--log-level', 'debug'], 'subminer', {});
assert.equal(alias.youtubeBrowser, true);
assert.equal(alias.logLevel, 'debug');
assert.equal(alias.target, '');
});
test('parseArgs maps config path action to config path output', () => {
const parsed = parseArgs(['config', 'path'], 'subminer', {});