From f8c7fc7457537d644d378871a7ec88eb9f031c91 Mon Sep 17 00:00:00 2001 From: trizen Date: Thu, 29 Oct 2020 20:31:37 +0200 Subject: Better detection for HFR (High Frame Rate) videos. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jesús --- lib/WWW/FairViewer/Itags.pm | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lib/WWW/FairViewer/Itags.pm b/lib/WWW/FairViewer/Itags.pm index 9940cee..85473c2 100644 --- a/lib/WWW/FairViewer/Itags.pm +++ b/lib/WWW/FairViewer/Itags.pm @@ -62,7 +62,7 @@ sub get_itags { {value => 299, format => 'mp4', dash => 1, hfr => 1}, # mp4 HFR (v) {value => 248, format => 'webm', dash => 1}, # webm (v) {value => 137, format => 'mp4', dash => 1}, # mp4 (v) - {value => 399, format => 'av1', dash => 1}, # av1 (v) + {value => 399, format => 'av1', dash => 1, hfr => 1}, # av1 (v) {value => 46, format => 'webm'}, # webm (v-a) {value => 37, format => 'mp4'}, # mp4 (v-a) {value => 301, format => 'mp4', live => 1}, # mp4 (live) (v-a) @@ -73,7 +73,7 @@ sub get_itags { {value => 298, format => 'mp4', dash => 1, hfr => 1}, # mp4 HFR (v) {value => 247, format => 'webm', dash => 1}, # webm (v) {value => 136, format => 'mp4', dash => 1}, # mp4 (v) - {value => 398, format => 'av1', dash => 1}, # av1 (v) + {value => 398, format => 'av1', dash => 1, hfr => 1}, # av1 (v) {value => 45, format => 'webm'}, # webm (v-a) {value => 22, format => 'mp4'}, # mp4 (v-a) {value => 300, format => 'mp4', live => 1}, # mp4 (live) (v-a) @@ -166,7 +166,9 @@ sub _find_streaming_url { next if not exists $stream->{$itag->{value}}; - if ($itag->{hfr}) { + my $entry = $stream->{$itag->{value}}; + + if (defined($entry->{fps}) and $entry->{fps} >= 50) { $args{hfr} || next; # skip high frame rate (HFR) videos } @@ -175,6 +177,7 @@ sub _find_streaming_url { } if ($itag->{dash}) { + $args{dash} || next; my $video_info = $stream->{$itag->{value}}; @@ -194,8 +197,6 @@ sub _find_streaming_url { } } - my $entry = $stream->{$itag->{value}}; - # Ignore segmented DASH URLs (they load pretty slow in mpv) if (not $args{dash_segmented}) { next if ($entry->{url} =~ m{/api/manifest/dash/}); -- cgit v1.2.3