summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/invidious/videos/parser.cr10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/invidious/videos/parser.cr b/src/invidious/videos/parser.cr
index 04ee7303..efc4b2e5 100644
--- a/src/invidious/videos/parser.cr
+++ b/src/invidious/videos/parser.cr
@@ -185,10 +185,12 @@ def parse_video_info(video_id : String, player_response : Hash(String, JSON::Any
# We have to try to extract viewCount from videoPrimaryInfoRenderer first,
# then from videoDetails, as the latter is "0" for livestreams (we want
# to get the amount of viewers watching).
- views_txt = video_primary_renderer
- .try &.dig?("viewCount", "videoViewCountRenderer", "viewCount", "simpleText")
- views_txt ||= video_details["viewCount"]?
- views = views_txt.try &.as_s.gsub(/\D/, "").to_i64?
+ views_txt = extract_text(
+ video_primary_renderer
+ .try &.dig?("viewCount", "videoViewCountRenderer", "viewCount")
+ )
+ views_txt ||= video_details["viewCount"]?.try &.as_s || ""
+ views = views_txt.gsub(/\D/, "").to_i64?
length_txt = (microformat["lengthSeconds"]? || video_details["lengthSeconds"])
.try &.as_s.to_i64