From 53500e40d3fd6f19a5d3f14a1231c746ab7dfe26 Mon Sep 17 00:00:00 2001 From: syeopite Date: Mon, 4 Oct 2021 00:08:50 -0700 Subject: [PATCH] Handle invalid timestamps for livestreams extraction --- src/invidious/helpers/extractors.cr | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/invidious/helpers/extractors.cr b/src/invidious/helpers/extractors.cr index 6eeb8ef6..150d0e03 100644 --- a/src/invidious/helpers/extractors.cr +++ b/src/invidious/helpers/extractors.cr @@ -74,7 +74,15 @@ private module Parsers if length_container = item_contents["lengthText"]? length_seconds = decode_length_seconds(length_container["simpleText"].as_s) elsif length_container = item_contents["thumbnailOverlays"]?.try &.as_a.find(&.["thumbnailOverlayTimeStatusRenderer"]?) - length_seconds = extract_text(length_container["thumbnailOverlayTimeStatusRenderer"]["text"]).try { |t| decode_length_seconds(t) } || 0 + # This needs to only go down the `simpleText` path (if possible). If more situations came up that requires + # a specific pathway then we should add an argument to extract_text that'll make this possible + length_seconds = extract_text(length_container["thumbnailOverlayTimeStatusRenderer"]["text"]) + + if length_seconds && length_seconds != "LIVE" + length_seconds = decode_length_seconds(length_seconds) + else + length_seconds = 0 + end else length_seconds = 0 end