mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-10-22 05:01:24 -07:00
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:
105 files changed
+2297
-623
No files matched your search
+2
-10
@@ -20,7 +20,7 @@ import type {
|
||||
YomitanConfig,
|
||||
YoutubeConfig,
|
||||
YoutubeMediaCacheMode,
|
||||
YoutubeSubgenConfig,
|
||||
YoutubeSubtitleSource,
|
||||
} from './integrations';
|
||||
import type {
|
||||
ControllerButtonIndicesConfig,
|
||||
@@ -174,7 +174,6 @@ export interface Config {
|
||||
discordPresence?: DiscordPresenceConfig;
|
||||
ai?: AiConfig;
|
||||
youtube?: YoutubeConfig;
|
||||
youtubeSubgen?: YoutubeSubgenConfig;
|
||||
immersionTracking?: ImmersionTrackingConfig;
|
||||
stats?: StatsConfig;
|
||||
updates?: UpdatesConfig;
|
||||
@@ -394,19 +393,12 @@ export interface ResolvedConfig {
|
||||
};
|
||||
youtube: YoutubeConfig & {
|
||||
primarySubLanguages: string[];
|
||||
subtitleSource: YoutubeSubtitleSource;
|
||||
mediaCache: {
|
||||
mode: YoutubeMediaCacheMode;
|
||||
maxHeight: number;
|
||||
};
|
||||
};
|
||||
youtubeSubgen: YoutubeSubgenConfig & {
|
||||
whisperBin: string;
|
||||
whisperModel: string;
|
||||
whisperVadModel: string;
|
||||
whisperThreads: number;
|
||||
fixWithAi: boolean;
|
||||
ai: AiFeatureConfig;
|
||||
};
|
||||
immersionTracking: {
|
||||
enabled: boolean;
|
||||
dbPath?: string;
|
||||
|
||||
@@ -124,6 +124,9 @@ export interface AiConfig {
|
||||
|
||||
export type YoutubeMediaCacheMode = 'direct' | 'background';
|
||||
|
||||
/** Where primary YouTube subtitles come from: YouTube's captions, or Whisper on the audio. */
|
||||
export type YoutubeSubtitleSource = 'youtube' | 'whisper';
|
||||
|
||||
export interface YoutubeMediaCacheConfig {
|
||||
mode?: YoutubeMediaCacheMode;
|
||||
maxHeight?: number;
|
||||
@@ -131,18 +134,10 @@ export interface YoutubeMediaCacheConfig {
|
||||
|
||||
export interface YoutubeConfig {
|
||||
primarySubLanguages?: string[];
|
||||
subtitleSource?: YoutubeSubtitleSource;
|
||||
mediaCache?: YoutubeMediaCacheConfig;
|
||||
}
|
||||
|
||||
export interface YoutubeSubgenConfig {
|
||||
whisperBin?: string;
|
||||
whisperModel?: string;
|
||||
whisperVadModel?: string;
|
||||
whisperThreads?: number;
|
||||
fixWithAi?: boolean;
|
||||
ai?: AiFeatureConfig;
|
||||
}
|
||||
|
||||
export interface StatsConfig {
|
||||
toggleKey?: string;
|
||||
markWatchedKey?: string;
|
||||
|
||||
Reference in new issue
Block a user