diff --git a/Src/Api/Ddlstreamitaly/Core/Class/ScrapeSerie.py b/Src/Api/Ddlstreamitaly/Core/Class/ScrapeSerie.py index 4bc9e65..97348c6 100644 --- a/Src/Api/Ddlstreamitaly/Core/Class/ScrapeSerie.py +++ b/Src/Api/Ddlstreamitaly/Core/Class/ScrapeSerie.py @@ -53,7 +53,7 @@ class GetSerieInfo: response.raise_for_status() except Exception as e: - logging.error(f"Insert: {'ips4_IPSSessionFront': 'your_code', 'ips4_member_id': 'your_code'} in config file \ REQUESTS \ index, instead of user-agent. Use browser debug and cookie request with a valid account. Error: {e}") + logging.error(f"Insert: ['ips4_IPSSessionFront': 'your_code', 'ips4_member_id': 'your_code'] in config file \ REQUESTS \ index, instead of user-agent. Use browser debug and cookie request with a valid account. Error: {e}") sys.exit(0) # Parse HTML content of the page diff --git a/Src/Lib/Hls/segments.py b/Src/Lib/Hls/segments.py index 05863e1..d38fb50 100644 --- a/Src/Lib/Hls/segments.py +++ b/Src/Lib/Hls/segments.py @@ -45,6 +45,7 @@ TQDM_MAX_WORKER = config_manager.get_int('M3U8_DOWNLOAD', 'tdqm_workers') TQDM_DELAY_WORKER = config_manager.get_float('M3U8_DOWNLOAD', 'tqdm_delay') TQDM_USE_LARGE_BAR = config_manager.get_int('M3U8_DOWNLOAD', 'tqdm_use_large_bar') REQUEST_TIMEOUT = config_manager.get_float('REQUESTS', 'timeout') +REQUEST_MAX_RETRY = config_manager.get_int('REQUESTS', 'max_retry') THERE_IS_PROXY_LIST = check_file_existence("list_proxy.txt") PROXY_START_MIN = config_manager.get_float('REQUESTS', 'proxy_start_min') PROXY_START_MAX = config_manager.get_float('REQUESTS', 'proxy_start_max') @@ -52,6 +53,9 @@ PROXY_START_MAX = config_manager.get_float('REQUESTS', 'proxy_start_max') # Variable headers_index = config_manager.get_dict('REQUESTS', 'index') +transport = httpx.HTTPTransport(retries=REQUEST_MAX_RETRY) + + class M3U8_Segments: @@ -200,19 +204,20 @@ class M3U8_Segments: if THERE_IS_PROXY_LIST: proxy = self.valid_proxy[index % len(self.valid_proxy)] logging.info(f"Use proxy: {proxy}") + #print(client.get("https://api.ipify.org/?format=json").json()) - with httpx.Client(proxies=proxy, verify=False) as client: - #print(client.get("https://api.ipify.org/?format=json").json()) - + with httpx.Client(proxies=proxy, verify=False, transport=transport) as client: if 'key_base_url' in self.__dict__: response = client.get(ts_url, headers=random_headers(self.key_base_url), timeout=REQUEST_TIMEOUT) else: response = client.get(ts_url, headers={'user-agent': get_headers()}, timeout=REQUEST_TIMEOUT) else: - if 'key_base_url' in self.__dict__: - response = httpx.get(ts_url, headers=random_headers(self.key_base_url), verify=False, timeout=REQUEST_TIMEOUT) - else: - response = httpx.get(ts_url, headers={'user-agent': get_headers()}, verify=False, timeout=REQUEST_TIMEOUT) + + with httpx.Client(verify=False, transport=transport) as client_2: + if 'key_base_url' in self.__dict__: + response = client_2.get(ts_url, headers=random_headers(self.key_base_url), timeout=REQUEST_TIMEOUT) + else: + response = client_2.get(ts_url, headers={'user-agent': get_headers()}, timeout=REQUEST_TIMEOUT) # Get response content response.raise_for_status() diff --git a/config.json b/config.json index ccc1840..9c5bba0 100644 --- a/config.json +++ b/config.json @@ -11,6 +11,7 @@ }, "REQUESTS": { "timeout": 5, + "max_retry": 3, "verify_ssl": false, "index": { "user-agent": ""