diff --git a/patches/9-2892.patch b/patches/9-2892.patch deleted file mode 100644 index ff2d27f..0000000 --- a/patches/9-2892.patch +++ /dev/null @@ -1,66 +0,0 @@ -From ddf1e84f7c088051a20461f5c0b7fef069089c74 Mon Sep 17 00:00:00 2001 -From: matthewmcgarvey -Date: Thu, 10 Feb 2022 23:43:14 -0600 -Subject: [PATCH] Raise exception if playability not ok, also handle missing - related videos - ---- - src/invidious/videos.cr | 21 ++++++++++++--------- - 1 file changed, 12 insertions(+), 9 deletions(-) - -diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr -index 335f6b60f..81fce5b8e 100644 ---- a/src/invidious/videos.cr -+++ b/src/invidious/videos.cr -@@ -881,11 +881,13 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_ - - player_response = YoutubeAPI.player(video_id: video_id, params: "", client_config: client_config) - -- if player_response["playabilityStatus"]?.try &.["status"]?.try &.as_s != "OK" -- reason = player_response["playabilityStatus"]["errorScreen"]?.try &.["playerErrorMessageRenderer"]?.try &.["subreason"]?.try { |s| -- s["simpleText"]?.try &.as_s || s["runs"].as_a.map { |r| r["text"] }.join("") -- } || player_response["playabilityStatus"]["reason"].as_s -+ if player_response.dig?("playabilityStatus", "status").try &.as_s != "OK" -+ subreason = player_response.dig?("playabilityStatus", "errorScreen", "playerErrorMessageRenderer", "subreason") -+ reason = subreason.try &.[]?("simpleText").try &.as_s -+ reason ||= subreason.try &.[]("runs").as_a.map(&.[]("text")).join("") -+ reason ||= player_response.dig("playabilityStatus", "reason").as_s - params["reason"] = JSON::Any.new(reason) -+ return params - end - - params["shortDescription"] = player_response.dig?("videoDetails", "shortDescription") || JSON::Any.new(nil) -@@ -928,11 +930,8 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_ - raise BrokenTubeException.new("twoColumnWatchNextResults") if !main_results - - primary_results = main_results.dig?("results", "results", "contents") -- secondary_results = main_results -- .dig?("secondaryResults", "secondaryResults", "results") - - raise BrokenTubeException.new("results") if !primary_results -- raise BrokenTubeException.new("secondaryResults") if !secondary_results - - video_primary_renderer = primary_results - .as_a.find(&.["videoPrimaryInfoRenderer"]?) -@@ -952,7 +951,9 @@ def extract_video_info(video_id : String, proxy_region : String? = nil, context_ - related = [] of JSON::Any - - # Parse "compactVideoRenderer" items (under secondary results) -- secondary_results.as_a.each do |element| -+ secondary_results = main_results -+ .dig?("secondaryResults", "secondaryResults", "results") -+ secondary_results.try &.as_a.each do |element| - if item = element["compactVideoRenderer"]? - related_video = parse_related_video(item) - related << JSON::Any.new(related_video) if related_video -@@ -1119,7 +1120,9 @@ def fetch_video(id, region) - info = embed_info if !embed_info["reason"]? - end - -- raise InfoException.new(info["reason"]?.try &.as_s || "") if !info["videoDetails"]? -+ if reason = info["reason"]? -+ raise InfoException.new(reason.as_s || "") -+ end - - video = Video.new({ - id: id,