From 1f6078cf256d11b8c39608cda53fc6bc2c4bf440 Mon Sep 17 00:00:00 2001 From: Omar Roth Date: Fri, 25 Jan 2019 11:35:25 -0600 Subject: [PATCH] Fix links to invalid genre channels --- src/invidious/videos.cr | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/invidious/videos.cr b/src/invidious/videos.cr index 18a2ff8a..ec911e3f 100644 --- a/src/invidious/videos.cr +++ b/src/invidious/videos.cr @@ -670,13 +670,20 @@ def fetch_video(id, proxies, region) genre = html.xpath_node(%q(//meta[@itemprop="genre"])).try &.["content"] genre ||= "" - genre_url = html.xpath_node(%(//a[text()="#{genre}"])).try &.["href"] + genre_url = html.xpath_node(%(//ul[contains(@class, "watch-info-tag-list")]/li/a[text()="#{genre}"])).try &.["href"] + + # Sometimes YouTube tries to link to invalid/missing channels, so we fix that here case genre + when "Education" + genre_url = "/channel/UCdxpofrI-dO6oYfsqHDHphw" + when "Gaming" + genre_url = "/channel/UCOpNcN46UbXVtpKMrmU4Abg" when "Movies" genre_url = "/channel/UClgRkhTL3_hImCAmdLfDE4g" - when "Education" - # Education channel is linked but does not exist - genre_url = "/channel/UC3yA8nDwraeOfnYfBWun83g" + when "Nonprofits & Activism" + genre_url = "/channel/UCfFyYRYslvuhwMDnx6KjUvw" + when "Trailers" + genre_url = "/channel/UClgRkhTL3_hImCAmdLfDE4g" end genre_url ||= ""