[fix] Invidious engine by enabling requests by randomly picking amongst working instances
This commit is contained in:
		
							parent
							
								
									484dc99580
								
							
						
					
					
						commit
						2dff3887f0
					
				@ -11,6 +11,7 @@
 | 
			
		||||
from urllib.parse import quote_plus
 | 
			
		||||
from dateutil import parser
 | 
			
		||||
import time
 | 
			
		||||
import random
 | 
			
		||||
 | 
			
		||||
# engine dependent config
 | 
			
		||||
categories = ["videos", "music"]
 | 
			
		||||
@ -18,19 +19,29 @@ paging = True
 | 
			
		||||
language_support = True
 | 
			
		||||
time_range_support = True
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# search-url
 | 
			
		||||
base_url = "https://invidio.us/"
 | 
			
		||||
 | 
			
		||||
base_url = ''
 | 
			
		||||
base_url_rand = ''
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
# do search-request
 | 
			
		||||
def request(query, params):
 | 
			
		||||
    global base_url_rand
 | 
			
		||||
    time_range_dict = {
 | 
			
		||||
        "day": "today",
 | 
			
		||||
        "week": "week",
 | 
			
		||||
        "month": "month",
 | 
			
		||||
        "year": "year",
 | 
			
		||||
    }
 | 
			
		||||
    search_url = base_url + "api/v1/search?q={query}"
 | 
			
		||||
 | 
			
		||||
    if isinstance(base_url, list):
 | 
			
		||||
        base_url_rand = random.choice(base_url)
 | 
			
		||||
    else:
 | 
			
		||||
        base_url_rand = base_url
 | 
			
		||||
 | 
			
		||||
    search_url = base_url_rand + "api/v1/search?q={query}"
 | 
			
		||||
    params["url"] = search_url.format(
 | 
			
		||||
        query=quote_plus(query)
 | 
			
		||||
    ) + "&page={pageno}".format(pageno=params["pageno"])
 | 
			
		||||
@ -56,12 +67,12 @@ def response(resp):
 | 
			
		||||
    embedded_url = (
 | 
			
		||||
        '<iframe width="540" height="304" '
 | 
			
		||||
        + 'data-src="'
 | 
			
		||||
        + base_url
 | 
			
		||||
        + base_url_rand
 | 
			
		||||
        + 'embed/{videoid}" '
 | 
			
		||||
        + 'frameborder="0" allowfullscreen></iframe>'
 | 
			
		||||
    )
 | 
			
		||||
 | 
			
		||||
    base_invidious_url = base_url + "watch?v="
 | 
			
		||||
    base_invidious_url = base_url_rand + "watch?v="
 | 
			
		||||
 | 
			
		||||
    for result in search_results:
 | 
			
		||||
        rtype = result.get("type", None)
 | 
			
		||||
 | 
			
		||||
@ -522,7 +522,9 @@ engines:
 | 
			
		||||
 | 
			
		||||
  - name : invidious
 | 
			
		||||
    engine : invidious
 | 
			
		||||
    base_url : 'https://invidio.us/'
 | 
			
		||||
    base_url :
 | 
			
		||||
      - https://invidious.tube/
 | 
			
		||||
      - https://invidious.snopyta.org/
 | 
			
		||||
    shortcut: iv
 | 
			
		||||
    timeout : 5.0
 | 
			
		||||
    disabled : True
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user