From fc3b0d351d0589613cbd952726f5e11583c12700 Mon Sep 17 00:00:00 2001 From: Joseph Nuthalapati Date: Sun, 14 Mar 2021 16:49:42 +0530 Subject: [PATCH] youtube: Use a different Invidious instance Signed-off-by: Joseph Nuthalapati --- src/config.nim | 2 +- src/youtube.nim | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/config.nim b/src/config.nim index 06ebd63..aa6afd9 100644 --- a/src/config.nim +++ b/src/config.nim @@ -20,7 +20,7 @@ let rewriteInvidiousURLs* = true # Invidious instance for querying # This instance should have a valid public API # Check like this: curl https://invidious.xyz/api/v1/search\?q\=cats -let invidiousInstance* = "https://invidious.kavin.rocks" +let invidiousInstance* = "https://invidious.tube" discard """" Configuration goes through three levels of overrides: diff --git a/src/youtube.nim b/src/youtube.nim index a83e233..a07a629 100644 --- a/src/youtube.nim +++ b/src/youtube.nim @@ -1,6 +1,7 @@ import httpClient, json, + std/[terminal], strformat, strutils, uri @@ -26,6 +27,12 @@ proc getSearchResults*(searchQuery: string): SearchResults = let client = newHttpClient() let response = get(client, &"{invidiousInstance}/api/v1/search?q={queryParam}") let jsonData = parseJson($response.body) + if jsonData.kind == JObject: # Could be a 403 error + stdout.styledWrite(fgRed, $response.body) + quit(1) + if len(jsonData) == 0: + stdout.styledWrite(fgRed, "Got empty response from Invidious instance") + quit(2) var searchResults: SearchResults = @[] for item in jsonData: if item["type"].getStr() == "video": -- 2.43.0