diff --git a/crunchy-cli-core/src/archive/command.rs b/crunchy-cli-core/src/archive/command.rs index a048685..a09c1a3 100644 --- a/crunchy-cli-core/src/archive/command.rs +++ b/crunchy-cli-core/src/archive/command.rs @@ -250,7 +250,14 @@ async fn get_format( .subtitles .get(s) .cloned() - .map(|l| (l, single_format.audio == Locale::ja_JP)) + // the subtitle is probably not cc if the audio is japanese or more than one + // subtitle exists for this stream + .map(|l| { + ( + l, + single_format.audio == Locale::ja_JP || stream.subtitles.len() > 1, + ) + }) }) .collect(); diff --git a/crunchy-cli-core/src/download/command.rs b/crunchy-cli-core/src/download/command.rs index 142bf9c..c1388f1 100644 --- a/crunchy-cli-core/src/download/command.rs +++ b/crunchy-cli-core/src/download/command.rs @@ -205,12 +205,12 @@ async fn get_format( audios: vec![(audio, single_format.audio.clone())], subtitles: subtitle .clone() - .map_or(vec![], |s| vec![(s, single_format.audio == Locale::ja_JP)]), + .map_or(vec![], |s| vec![(s, single_format.audio == Locale::ja_JP || stream.subtitles.len() > 1)]), }; let format = Format::from_single_formats(vec![( single_format.clone(), video, - subtitle.map_or(vec![], |s| vec![(s, single_format.audio == Locale::ja_JP)]), + subtitle.map_or(vec![], |s| vec![(s, single_format.audio == Locale::ja_JP || stream.subtitles.len() > 1)]), )]); Ok((download_format, format))