@@ -11,6 +11,7 @@
11from urllib.parse import quote_plus
11from urllib.parse import quote_plus
12from dateutil import parser
12from dateutil import parser
13import time
13import time
15# engine dependent config
16# engine dependent config
16categories = ["videos", "music"]
17categories = ["videos", "music"]
@@ -18,19 +19,29 @@ paging = True
18language_support = True
19language_support = True
19time_range_support = True
20time_range_support = True
21# search-url
23# search-url
22−base_url = "https://invidio.us/"
25+base_url = ''
25# do search-request
29# do search-request
26def request(query, params):
30def request(query, params):
27 time_range_dict = {
32 time_range_dict = {
28 "day": "today",
33 "day": "today",
29 "week": "week",
34 "week": "week",
30 "month": "month",
35 "month": "month",
31 "year": "year",
36 "year": "year",
39+ if isinstance(base_url, list):
40+ base_url_rand = random.choice(base_url)
42+ base_url_rand = base_url
33− search_url = base_url + "api/v1/search?q={query}"
44+ search_url = base_url_rand + "api/v1/search?q={query}"
34 params["url"] = search_url.format(
45 params["url"] = search_url.format(
35 query=quote_plus(query)
46 query=quote_plus(query)
36 ) + "&page={pageno}".format(pageno=params["pageno"])
47 ) + "&page={pageno}".format(pageno=params["pageno"])
@@ -56,12 +67,12 @@ def response(resp):
56 embedded_url = (
67 embedded_url = (
57 '<iframe width="540" height="304" '
68 '<iframe width="540" height="304" '
58 + 'data-src="'
69 + 'data-src="'
59− + base_url
70+ + base_url_rand
60 + 'embed/{videoid}" '
71 + 'embed/{videoid}" '
61 + 'frameborder="0" allowfullscreen></iframe>'
72 + 'frameborder="0" allowfullscreen></iframe>'
64− base_invidious_url = base_url + "watch?v="
75+ base_invidious_url = base_url_rand + "watch?v="
66 for result in search_results:
77 for result in search_results:
67 rtype = result.get("type", None)
78 rtype = result.get("type", None)