I have a solution inspired in this comment: ...requests/issues/1803#...30869031
from concurrent.futures import ThreadPoolExecutor
with ThreadPoolExecutor(max_workers=1) as executor:
future = executor.submit(requests.get, url, stream=True)
response = future.result(timeout=3) # 3 secs of timeout