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

This commit is contained in:
sudacode authored and GitHub committed 2026-09-28 20:35:47 -07:00
1 parent c68b73c8c1
commit 07b32626a6
101 files changed
+2269 -726

No files matched your search

+2 -10
View File
@@ -20,7 +20,7 @@ import type {
YomitanConfig,
YoutubeConfig,
YoutubeMediaCacheMode,
YoutubeSubgenConfig,
YoutubeSubtitleSource,
} from './integrations';
import type {
ControllerButtonIndicesConfig,
@@ -170,7 +170,6 @@ export interface Config {
discordPresence?: DiscordPresenceConfig;
ai?: AiConfig;
youtube?: YoutubeConfig;
youtubeSubgen?: YoutubeSubgenConfig;
immersionTracking?: ImmersionTrackingConfig;
stats?: StatsConfig;
updates?: UpdatesConfig;
@@ -388,19 +387,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;
+4 -9
View File
@@ -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;