funapi / routes /ytApi /search.py
imperialwool's picture
fix headers
c4e5ba6 verified
raw history blame
No virus
909 Bytes
from urllib.request import urlopen, Request
from urllib.parse import quote_plus
import re
from .. import helpers
def search(request):
searchQuery = helpers.getFromRequest(request, "query")
if not searchQuery: searchQuery = "rickroll"
try:
html = urlopen(
Request(
"https://www.youtube.com/results?search_query={}".format(quote_plus(searchQuery)),
headers={"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0"}
)
)
videoList = re.findall(r"watch\?v=(\S{11})", html.read().decode())
return {"status": "pass", "query": searchQuery, "videoIds": videoList}
except Exception as e:
print(e)
return {"status": "error", "details": { "error_code": 666, "error_details": "Something went wrong..." }}, 500