Fix ysearch command

Merge pull request #182 from W0rmsy/master
This commit is contained in:
azlux 2020-07-07 21:30:37 +02:00 committed by GitHub
commit 75a891f14f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

17
util.py
View File

@ -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]