X-Git-Url: http://njoseph.me/gitweb/nimcoon.git/blobdiff_plain/5f9cdfeff96bb2848e3dc72bab410859d78b9c65..eacdf44b2d4a4a0b603f0b4f949430f81ecd711b:/src/youtube.nim diff --git a/src/youtube.nim b/src/youtube.nim index a83e233..e293f75 100644 --- a/src/youtube.nim +++ b/src/youtube.nim @@ -1,6 +1,7 @@ import httpClient, json, + std/[terminal], strformat, strutils, uri @@ -24,8 +25,15 @@ proc getSearchResults*(searchQuery: string): SearchResults = # Using Invidious API to retrieve the search results but playing the results directly from YouTube. let queryParam = encodeUrl(searchQuery) let client = newHttpClient() + client.headers = newHttpHeaders({"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36"}) 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":