diff --git a/configuration.default.ini b/configuration.default.ini index 0eea407..17cea84 100644 --- a/configuration.default.ini +++ b/configuration.default.ini @@ -64,7 +64,6 @@ tmp_folder_max_size = 10 username = botamusique volume = 0.8 when_nobody_in_channel = nothing -youtube_query_cookie = {} [webinterface] access_address = http://127.0.0.1:8181 diff --git a/util.py b/util.py index 50946c2..7841b3b 100644 --- a/util.py +++ b/util.py @@ -323,8 +323,8 @@ def youtube_search(query): import json try: - cookie_json = var.config.get('bot', 'youtube_query_cookie') - cookie = json.loads(cookie_json if cookie_json else '{}') + cookie_file = var.config.get('youtube_dl', 'cookie_file') + cookie = parse_cookie_file(cookie_file) if cookie_file else {} r = requests.get("https://www.youtube.com/results", cookies=cookie, params={'search_query': query}, timeout=5) result_json_match = re.findall(r">var ytInitialData = (.*?);", r.text) @@ -574,4 +574,16 @@ def check_extra_config(config, template): if not template.has_option(key, opt): extra.append((key, opt)) - return extra \ No newline at end of file + return extra + + +def parse_cookie_file(cookiefile): + # https://stackoverflow.com/a/54659484/1584825 + + cookies = {} + with open (cookiefile, 'r') as fp: + for line in fp: + if not re.match(r'^#', line): + lineFields = line.strip().split('\t') + cookies[lineFields[5]] = lineFields[6] + return cookies