[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 urllib.parse import quote_plus
 | 
				
			||||||
from dateutil import parser
 | 
					from dateutil import parser
 | 
				
			||||||
import time
 | 
					import time
 | 
				
			||||||
 | 
					import random
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# engine dependent config
 | 
					# engine dependent config
 | 
				
			||||||
categories = ["videos", "music"]
 | 
					categories = ["videos", "music"]
 | 
				
			||||||
@ -18,19 +19,29 @@ paging = True
 | 
				
			|||||||
language_support = True
 | 
					language_support = True
 | 
				
			||||||
time_range_support = True
 | 
					time_range_support = True
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# search-url
 | 
					# search-url
 | 
				
			||||||
base_url = "https://invidio.us/"
 | 
					
 | 
				
			||||||
 | 
					base_url = ''
 | 
				
			||||||
 | 
					base_url_rand = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# do search-request
 | 
					# do search-request
 | 
				
			||||||
def request(query, params):
 | 
					def request(query, params):
 | 
				
			||||||
 | 
					    global base_url_rand
 | 
				
			||||||
    time_range_dict = {
 | 
					    time_range_dict = {
 | 
				
			||||||
        "day": "today",
 | 
					        "day": "today",
 | 
				
			||||||
        "week": "week",
 | 
					        "week": "week",
 | 
				
			||||||
        "month": "month",
 | 
					        "month": "month",
 | 
				
			||||||
        "year": "year",
 | 
					        "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(
 | 
					    params["url"] = search_url.format(
 | 
				
			||||||
        query=quote_plus(query)
 | 
					        query=quote_plus(query)
 | 
				
			||||||
    ) + "&page={pageno}".format(pageno=params["pageno"])
 | 
					    ) + "&page={pageno}".format(pageno=params["pageno"])
 | 
				
			||||||
@ -56,12 +67,12 @@ def response(resp):
 | 
				
			|||||||
    embedded_url = (
 | 
					    embedded_url = (
 | 
				
			||||||
        '<iframe width="540" height="304" '
 | 
					        '<iframe width="540" height="304" '
 | 
				
			||||||
        + 'data-src="'
 | 
					        + 'data-src="'
 | 
				
			||||||
        + base_url
 | 
					        + base_url_rand
 | 
				
			||||||
        + 'embed/{videoid}" '
 | 
					        + 'embed/{videoid}" '
 | 
				
			||||||
        + 'frameborder="0" allowfullscreen></iframe>'
 | 
					        + 'frameborder="0" allowfullscreen></iframe>'
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    base_invidious_url = base_url + "watch?v="
 | 
					    base_invidious_url = base_url_rand + "watch?v="
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for result in search_results:
 | 
					    for result in search_results:
 | 
				
			||||||
        rtype = result.get("type", None)
 | 
					        rtype = result.get("type", None)
 | 
				
			||||||
 | 
				
			|||||||
@ -522,7 +522,9 @@ engines:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
  - name : invidious
 | 
					  - name : invidious
 | 
				
			||||||
    engine : invidious
 | 
					    engine : invidious
 | 
				
			||||||
    base_url : 'https://invidio.us/'
 | 
					    base_url :
 | 
				
			||||||
 | 
					      - https://invidious.tube/
 | 
				
			||||||
 | 
					      - https://invidious.snopyta.org/
 | 
				
			||||||
    shortcut: iv
 | 
					    shortcut: iv
 | 
				
			||||||
    timeout : 5.0
 | 
					    timeout : 5.0
 | 
				
			||||||
    disabled : True
 | 
					    disabled : True
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user