17
									
								
								util.py
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								util.py
									
									
									
									
									
								
							@@ -337,12 +337,23 @@ def youtube_search(query):
 | 
			
		||||
    global log
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        results = None
 | 
			
		||||
        r = requests.get("https://www.youtube.com/results", params={'search_query': query}, timeout=5)
 | 
			
		||||
        results = re.findall(r"watch\?v=(.*?)\".*?title=\"(.*?)\".*?"
 | 
			
		||||
                             "(?:user|channel).*?>(.*?)<", r.text)  # (id, title, uploader)
 | 
			
		||||
        results = re.findall(r"(watch\?v=(?P<videoid>[^\"\r\n]*)\".*?title=\"(?P<title>[^\r\n\"]*)\".*?(?:user|channel)[^>]*"
 | 
			
		||||
                             r">(?P<uploader>[^<\"\n\r]*)<)|(\"videoId\":\"(?P<videoid2>[^\"]*)\").*?\"title\":{\"runs\":\[{"
 | 
			
		||||
                             r"\"text\":\"(?P<title2>[^\"]*)\".*?\"ownerText\":{\"runs\":\[{\"text\":\"(?P<uploader2>[^\"]*)"
 | 
			
		||||
                             r"\"", r.text)  # (catch1, id1, title1, uploader1, catch2, id2, title2, uploader2,)
 | 
			
		||||
 | 
			
		||||
        if len(results) > 0:
 | 
			
		||||
            return results
 | 
			
		||||
            finalResults = None
 | 
			
		||||
            finalResults = []
 | 
			
		||||
            if results[0][0] != "":
 | 
			
		||||
                for entry in results:
 | 
			
		||||
                    finalResults.append([entry[1], entry[2], entry[3]])
 | 
			
		||||
            else:
 | 
			
		||||
                for entry in results:
 | 
			
		||||
                    finalResults.append([entry[5], entry[6], entry[7]])
 | 
			
		||||
            return finalResults
 | 
			
		||||
 | 
			
		||||
    except (requests.exceptions.ConnectionError, requests.exceptions.HTTPError, requests.exceptions.Timeout):
 | 
			
		||||
        error_traceback = traceback.format_exc().split("During")[0]
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user