diff --git a/app/src/components/Videos.js b/app/src/components/Videos.js index 60e3c2bf..5b7d782a 100644 --- a/app/src/components/Videos.js +++ b/app/src/components/Videos.js @@ -50,6 +50,7 @@ import { fetchBrowserProfiles, fetchVideoDownloaderConfig, postVideoFileFormat, + previewBatchReorganization, updateVideoDownloaderConfig } from "../api"; import {Media, QueryContext, ThemeContext} from "../contexts/contexts"; @@ -58,7 +59,6 @@ import {defaultFileOrder, defaultSearchOrder, HELP_VIEWER_URI} from "./Vars"; import {InputForm, ToggleForm, useForm} from "../hooks/useForm"; import {VideoResolutionSelectorForm} from "./Download"; import {BatchReorganizeModal} from "./collections/BatchReorganizeModal"; -import {previewBatchReorganization} from "../api"; export function VideoWrapper() { const {videoId} = useParams(); @@ -322,6 +322,7 @@ function VideosSettingsPage() { always_use_browser_profile: false, yt_dlp_extra_args: '', browser_profile: '', + download_missing_video_comments: false, }; const configSubmitter = async () => { @@ -342,13 +343,21 @@ function VideosSettingsPage() { let tempProfiles = []; let localBrowserProfiles = await fetchBrowserProfiles(); - const chromiumProfiles = localBrowserProfiles['chromium_profiles']; - for (const value of Object.values(chromiumProfiles)) { - tempProfiles.push({value: value, text: value}); - } - const firefoxProfiles = localBrowserProfiles['firefox_profiles']; - for (const value of Object.values(firefoxProfiles)) { - tempProfiles.push({value: value, text: value}); + for (const [browserKey, profilePaths] of Object.entries(localBrowserProfiles)) { + if (!profilePaths || profilePaths.length === 0) continue; + + // Extract browser display name from key (e.g., "chromium_profiles" -> "Chromium") + const browserName = browserKey.replace('_profiles', '') + .replace(/_/g, ' ') + .replace(/\b\w/g, c => c.toUpperCase()); + + for (const profilePath of profilePaths) { + const profileName = profilePath.split('/').pop(); + tempProfiles.push({ + value: profilePath, + text: `${browserName}: ${profileName}`, + }); + } } if (_.isEmpty(tempProfiles)) { @@ -367,106 +376,119 @@ function VideosSettingsPage() { headerContent='Always Use Browser Profile' popupContent='Always download videos with the selected browser profile. This is risky, and therefore discouraged.' />; + const downloadMissingVideoCommentsLabel = ; return <>
Video Downloader Config
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - Save - - - - + + + Save + + +
+
@@ -479,7 +501,7 @@ function VideosSettingsPage() { {channelsNeedingReorg > 0 ? ' have files that do not match the current file name format.' : '. All channels are organized correctly.'} - + }