add no-closed-captions flag

This commit is contained in:
kralverde 2024-01-28 16:40:26 -05:00
parent 7cf7a8e71c
commit dffaa883c6
2 changed files with 13 additions and 0 deletions

View file

@ -114,6 +114,10 @@ pub struct Archive {
#[arg(long)] #[arg(long)]
pub(crate) include_fonts: bool, pub(crate) include_fonts: bool,
#[arg(help = "Omit closed caption subtitles in the downloaded file")]
#[arg(long, default_value_t = false)]
pub(crate) no_closed_caption: bool,
#[arg(help = "Skip files which are already existing")] #[arg(help = "Skip files which are already existing")]
#[arg(long, default_value_t = false)] #[arg(long, default_value_t = false)]
pub(crate) skip_existing: bool, pub(crate) skip_existing: bool,
@ -213,6 +217,7 @@ impl Execute for Archive {
.output_format(Some("matroska".to_string())) .output_format(Some("matroska".to_string()))
.audio_sort(Some(self.audio.clone())) .audio_sort(Some(self.audio.clone()))
.subtitle_sort(Some(self.subtitle.clone())) .subtitle_sort(Some(self.subtitle.clone()))
.no_closed_caption(self.no_closed_caption)
.threads(self.threads); .threads(self.threads);
for single_formats in single_format_collection.into_iter() { for single_formats in single_format_collection.into_iter() {

View file

@ -58,6 +58,7 @@ pub struct DownloadBuilder {
subtitle_sort: Option<Vec<Locale>>, subtitle_sort: Option<Vec<Locale>>,
force_hardsub: bool, force_hardsub: bool,
download_fonts: bool, download_fonts: bool,
no_closed_caption: bool,
threads: usize, threads: usize,
ffmpeg_threads: Option<usize>, ffmpeg_threads: Option<usize>,
} }
@ -74,6 +75,7 @@ impl DownloadBuilder {
subtitle_sort: None, subtitle_sort: None,
force_hardsub: false, force_hardsub: false,
download_fonts: false, download_fonts: false,
no_closed_caption: false,
threads: num_cpus::get(), threads: num_cpus::get(),
ffmpeg_threads: None, ffmpeg_threads: None,
} }
@ -91,6 +93,7 @@ impl DownloadBuilder {
force_hardsub: self.force_hardsub, force_hardsub: self.force_hardsub,
download_fonts: self.download_fonts, download_fonts: self.download_fonts,
no_closed_caption: self.no_closed_caption,
download_threads: self.threads, download_threads: self.threads,
ffmpeg_threads: self.ffmpeg_threads, ffmpeg_threads: self.ffmpeg_threads,
@ -124,6 +127,7 @@ pub struct Downloader {
force_hardsub: bool, force_hardsub: bool,
download_fonts: bool, download_fonts: bool,
no_closed_caption: bool,
download_threads: usize, download_threads: usize,
ffmpeg_threads: Option<usize>, ffmpeg_threads: Option<usize>,
@ -266,6 +270,10 @@ impl Downloader {
}; };
for (subtitle, not_cc) in format.subtitles.iter() { for (subtitle, not_cc) in format.subtitles.iter() {
if !not_cc && self.no_closed_caption {
continue;
}
if let Some(pb) = &progress_spinner { if let Some(pb) = &progress_spinner {
let mut progress_message = pb.message(); let mut progress_message = pb.message();
if !progress_message.is_empty() { if !progress_message.is_empty() {