Compare commits

..

No commits in common. "master" and "v3.6.7" have entirely different histories.

2 changed files with 17 additions and 9 deletions

View file

@ -1,4 +1,6 @@
# This project has been sunset as Crunchyroll moved to a DRM-only system. See [#362](https://github.com/crunchy-labs/crunchy-cli/issues/362).
> ~~This project has been sunset as Crunchyroll moved to a DRM-only system. See [#362](https://github.com/crunchy-labs/crunchy-cli/issues/362).~~
>
> Well there is one endpoint which still has DRM-free streams, I guess I still have a bit time until (finally) everything is DRM-only.
# crunchy-cli

View file

@ -322,14 +322,20 @@ impl Downloader {
if let Some(offsets) = offsets {
let mut root_format_idx = 0;
let mut root_format_offset = u64::MAX;
let mut root_format_length = 0;
for (i, format) in self.formats.iter().enumerate() {
let offset = offsets.get(&i).copied().unwrap_or_default();
let format_offset = offset.num_milliseconds() as u64;
if format_offset < root_format_offset {
let format_len = format
.video
.0
.segments()
.iter()
.map(|s| s.length.as_millis())
.sum::<u128>() as u64
- offset.num_milliseconds() as u64;
if format_len > root_format_length {
root_format_idx = i;
root_format_offset = format_offset;
root_format_length = format_len;
}
for _ in &format.audios {
@ -561,7 +567,7 @@ impl Downloader {
for (i, meta) in videos.iter().enumerate() {
if let Some(start_time) = meta.start_time {
input.extend(["-itsoffset".to_string(), format_time_delta(&start_time)])
input.extend(["-ss".to_string(), format_time_delta(&start_time)])
}
input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]);
maps.extend(["-map".to_string(), i.to_string()]);
@ -582,7 +588,7 @@ impl Downloader {
}
for (i, meta) in audios.iter().enumerate() {
if let Some(start_time) = meta.start_time {
input.extend(["-itsoffset".to_string(), format_time_delta(&start_time)])
input.extend(["-ss".to_string(), format_time_delta(&start_time)])
}
input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]);
maps.extend(["-map".to_string(), (i + videos.len()).to_string()]);
@ -629,7 +635,7 @@ impl Downloader {
if container_supports_softsubs {
for (i, meta) in subtitles.iter().enumerate() {
if let Some(start_time) = meta.start_time {
input.extend(["-itsoffset".to_string(), format_time_delta(&start_time)])
input.extend(["-ss".to_string(), format_time_delta(&start_time)])
}
input.extend(["-i".to_string(), meta.path.to_string_lossy().to_string()]);
maps.extend([