diff --git a/frontend/src/pages/ChannelAbout.tsx b/frontend/src/pages/ChannelAbout.tsx index 80a8d1ba..e829c76f 100644 --- a/frontend/src/pages/ChannelAbout.tsx +++ b/frontend/src/pages/ChannelAbout.tsx @@ -48,8 +48,8 @@ const ChannelAbout = () => { const [downloadFormat, setDownloadFormat] = useState(null); const [downloadContainer, setDownloadContainer] = useState<'mp4' | 'mkv' | null>(null); - const [audioMultistream, setAudioMultistream] = useState(null); - const [audioMultistreamWarning, setAudioMultistreamWarning] = useState(null); + const [audioMultistreams, setAudioMultistreams] = useState(null); + const [audioMultistreamsWarning, setAudioMultistreamsWarning] = useState(null); const [audioLanguages, setAudioLanguages] = useState(null); const [autoDeleteAfter, setAutoDeleteAfter] = useState(null); const [indexPlaylists, setIndexPlaylists] = useState(false); @@ -73,10 +73,10 @@ const ChannelAbout = () => { setDownloadContainer( channelResponseData?.channel_overwrites?.download_container ?? null, ); - setAudioMultistream( + setAudioMultistreams( channelResponseData?.channel_overwrites?.audio_multistream ?? null, ); - setAudioMultistreamWarning(null); + setAudioMultistreamsWarning(null); setAudioLanguages(channelResponseData?.channel_overwrites?.audio_languages ?? null); setAutoDeleteAfter(channelResponseData?.channel_overwrites?.autodelete_days ?? null); setIndexPlaylists(channelResponseData?.channel_overwrites?.index_playlists ?? false); @@ -105,12 +105,12 @@ const ChannelAbout = () => { if (!channel) return; const response = await updateChannelOverwrites(channel.channel_id, configKey, configValue); if (response?.error?.error) { - setAudioMultistreamWarning(response.error.error); + setAudioMultistreamsWarning(response.error.error); return; } - setAudioMultistreamWarning(null); + setAudioMultistreamsWarning(null); if (configKey === 'audio_multistream') { - setAudioMultistream(configValue === null ? null : Boolean(configValue)); + setAudioMultistreams(configValue === null ? null : Boolean(configValue)); } setRefresh(true); }; @@ -322,21 +322,21 @@ const ChannelAbout = () => { const value = event.target.value as 'mp4' | 'mkv' | ''; if (value === '') { - if (audioMultistream) { + if (audioMultistreams) { // Always clear channel multistream FIRST when switching to global container. // This avoids stale global-container state causing persistent override drift. await handleUpdateConfig('audio_multistream', null); - setAudioMultistream(null); + setAudioMultistreams(null); } await handleUpdateConfig('download_container', null); setDownloadContainer(null); return; } - if (value !== 'mkv' && audioMultistream) { + if (value !== 'mkv' && audioMultistreams) { // Clear multistream first when switching to single-audio container preference. await handleUpdateConfig('audio_multistream', null); - setAudioMultistream(null); + setAudioMultistreams(null); } await handleUpdateConfig('download_container', value); @@ -355,23 +355,23 @@ const ChannelAbout = () => { { handleUpdateConfig('audio_multistream', null); - setAudioMultistream(null); + setAudioMultistreams(null); }} /> - {audioMultistreamWarning && ( -

{audioMultistreamWarning}

+ {audioMultistreamsWarning && ( +

{audioMultistreamsWarning}

)} - {audioMultistream && ( + {audioMultistreams && (

Audio Languages

diff --git a/frontend/src/pages/SettingsApplication.tsx b/frontend/src/pages/SettingsApplication.tsx index 9b2ab908..5fd70ef4 100644 --- a/frontend/src/pages/SettingsApplication.tsx +++ b/frontend/src/pages/SettingsApplication.tsx @@ -56,10 +56,10 @@ const SettingsApplication = () => { const [downloadsFormatSort, setDownloadsFormatSort] = useState(null); const [downloadsExtractorLang, setDownloadsExtractorLang] = useState(null); const [embedMetadata, setEmbedMetadata] = useState(false); - const [audioMultistream, setAudioMultistream] = useState(false); + const [audioMultistreams, setAudioMultistreams] = useState(false); const [downloadContainer, setDownloadContainer] = useState<'mp4' | 'mkv'>('mp4'); const [audioLanguages, setAudioLanguages] = useState(null); - const [audioMultistreamWarning, setAudioMultistreamWarning] = useState(null); + const [audioMultistreamsWarning, setAudioMultistreamsWarning] = useState(null); // Subtitles const [subtitleLang, setSubtitleLang] = useState(null); @@ -116,10 +116,10 @@ const SettingsApplication = () => { setDownloadsFormatSort(appSettingsConfigData?.downloads.format_sort || null); setDownloadsExtractorLang(appSettingsConfigData?.downloads.extractor_lang || null); setEmbedMetadata(appSettingsConfigData?.downloads.add_metadata || false); - setAudioMultistream(appSettingsConfigData?.downloads.audio_multistream || false); + setAudioMultistreams(appSettingsConfigData?.downloads.audio_multistream || false); setAudioLanguages(appSettingsConfigData?.downloads.audio_languages || null); setDownloadContainer(appSettingsConfigData?.downloads.container || 'mp4'); - setAudioMultistreamWarning(null); + setAudioMultistreamsWarning(null); // Subtitles setSubtitleLang(appSettingsConfigData?.downloads.subtitle || null); @@ -157,10 +157,10 @@ const SettingsApplication = () => { const updatedConfig = { [group]: { [key]: configValue } } as Partial; const response = await updateAppsettingsConfig(updatedConfig); if (response?.error?.error) { - setAudioMultistreamWarning(response.error.error); + setAudioMultistreamsWarning(response.error.error); return; } - setAudioMultistreamWarning(null); + setAudioMultistreamsWarning(null); setRefresh(true); }; @@ -476,12 +476,17 @@ const SettingsApplication = () => {
  • - Embedding metadata adds additional metadata and thumbnails directly to the mp4 - file. + Download container sets the default file type: mp4 is most browser-friendly, + while mkv is better for multi-audio tracks.
  • - Enable multistream audio to download all available audio languages (maps to - --audio-multistream). This can increase file size. + Embedding metadata adds additional metadata and thumbnails directly to mp4 + files. Mkv downloads are not embedded by this option. +
  • +
  • + Enable multistream audio to download multiple audio languages (maps to{' '} + --audio-multistreams). This increases file size and may use mkv when + multiple tracks are selected.
  • @@ -560,19 +565,19 @@ const SettingsApplication = () => {
    - {audioMultistreamWarning && ( -

    {audioMultistreamWarning}

    + {audioMultistreamsWarning && ( +

    {audioMultistreamsWarning}

    )} - {audioMultistream && ( + {audioMultistreams && (

    Audio languages