Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Video component can't download URL behind a proxy #10726

Open
1 task done
dnoliver opened this issue Mar 4, 2025 · 5 comments
Open
1 task done

Video component can't download URL behind a proxy #10726

dnoliver opened this issue Mar 4, 2025 · 5 comments
Labels
bug Something isn't working

Comments

@dnoliver
Copy link
Contributor

dnoliver commented Mar 4, 2025

Describe the bug

When I use Video with a URL as value, and run gradio behind a proxy, Video fails to download the url:

This code doesn't work:

input_video_player = gr.Video(
    label="Input Video",
    interactive=True,
    value="https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4",
    sources="upload",
)

The fail log is the following:

Traceback (most recent call last):
  File "/python3venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 72, in map_httpcore_exceptions
	yield
  File "/python3venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 377, in handle_async_request
	resp = await self._pool.handle_async_request(req)
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
	raise exc from None
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request
	response = await connection.handle_async_request(
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request
	raise exc
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request
	stream = await self._connect(request)
         	^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 124, in _connect
	stream = await self._network_backend.connect_tcp(**kwargs)
         	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp
	return await self._backend.connect_tcp(
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 113, in connect_tcp
	with map_exceptions(exc_map):
  File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__
	self.gen.throw(value)
  File "/python3venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
	raise to_exc(exc) from exc
httpcore.ConnectError: All connection attempts failed
 
The above exception was the direct cause of the following exception:
 
Traceback (most recent call last):
  File "app.py", line 585, in <module>
	demo = create_interface()
       	^^^^^^^^^^^^^^^^^^
  File "app.py", line 273, in create_interface
	input_video_player = gr.Video(
                     	^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/component_meta.py", line 179, in wrapper
	return fn(self, **kwargs)
       	^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/components/video.py", line 171, in __init__
	super().__init__(
  File "/python3venv/lib/python3.12/site-packages/gradio/components/base.py", line 387, in __init__
	super().__init__(*args, **kwargs)
  File "/python3venv/lib/python3.12/site-packages/gradio/component_meta.py", line 179, in wrapper
	return fn(self, **kwargs)
       	^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/components/base.py", line 227, in __init__
	self.value = move_files_to_cache(
             	^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/processing_utils.py", line 519, in move_files_to_cache
	return client_utils.traverse(
       	^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio_client/utils.py", line 1104, in traverse
	new_obj[key] = traverse(value, func, is_root)
               	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio_client/utils.py", line 1100, in traverse
	return func(json_obj)
       	^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/processing_utils.py", line 493, in _move_to_cache
	temp_file_path = block.move_resource_to_block_cache(payload.path)
                 	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/blocks.py", line 339, in move_resource_to_block_cache
	temp_file_path = processing_utils.save_url_to_cache(
                 	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/processing_utils.py", line 398, in ssrf_protected_download
	return client_utils.synchronize_async(
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio_client/utils.py", line 890, in synchronize_async
	return fsspec.asyn.sync(fsspec.asyn.get_loop(), func, *args, **kwargs)  # type: ignore
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/fsspec/asyn.py", line 103, in sync
	raise return_result
  File "/python3venv/lib/python3.12/site-packages/fsspec/asyn.py", line 56, in _runner
	result[0] = await coro
            	^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/processing_utils.py", line 343, in async_ssrf_protected_download
	response = await sh.get(
           	^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/safehttpx/__init__.py", line 132, in get
	return await client.get(url, follow_redirects=False, **kwargs)
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1814, in get
	return await self.request(
       	^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1585, in request
	return await self.send(request, auth=auth, follow_redirects=follow_redirects)
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1674, in send
	response = await self._send_handling_auth(
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1702, in _send_handling_auth
	response = await self._send_handling_redirects(
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1739, in _send_handling_redirects
	response = await self._send_single_request(request)
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1776, in _send_single_request
	response = await transport.handle_async_request(request)
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/safehttpx/__init__.py", line 98, in handle_async_request
	return await super().handle_async_request(request)
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 376, in handle_async_request
	with map_httpcore_exceptions():
  File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__
	self.gen.throw(value)
  File "/python3venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 89, in map_httpcore_exceptions
	raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed

We thought it was a proxy misconfiguration. But looks like Video ignores our proxy settings (env vars http_proxy and https_proxy).

After changing our code to:

try:
  download_file(
      "https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4",
     "tmp/person-bicycle-car-detection.mp4"
  )
  input_video_player = gr.Video(
      label="Input Video",
      interactive=True,
      value="/tmp/person-bicycle-car-detection.mp4",
      sources="upload",
  )

It started working (download_file uses requests to pull the file, looks like that one respects the proxy)

Have you searched existing issues? 🔎

  • I have searched and found no existing issues

Reproduction

You need to be behind a network proxy. Configure the proxy and do:

import gradio as gr

input_video_player = gr.Video(
    label="Input Video",
    interactive=True,
    value="https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4",
    sources="upload",
)

App will fail to start

Screenshot

No response

Logs

Traceback (most recent call last):
  File "/python3venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 72, in map_httpcore_exceptions
	yield
  File "/python3venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 377, in handle_async_request
	resp = await self._pool.handle_async_request(req)
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 256, in handle_async_request
	raise exc from None
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection_pool.py", line 236, in handle_async_request
	response = await connection.handle_async_request(
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 101, in handle_async_request
	raise exc
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 78, in handle_async_request
	stream = await self._connect(request)
         	^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_async/connection.py", line 124, in _connect
	stream = await self._network_backend.connect_tcp(**kwargs)
         	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_backends/auto.py", line 31, in connect_tcp
	return await self._backend.connect_tcp(
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpcore/_backends/anyio.py", line 113, in connect_tcp
	with map_exceptions(exc_map):
  File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__
	self.gen.throw(value)
  File "/python3venv/lib/python3.12/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
	raise to_exc(exc) from exc
httpcore.ConnectError: All connection attempts failed
 
The above exception was the direct cause of the following exception:
 
Traceback (most recent call last):
  File "app.py", line 585, in <module>
	demo = create_interface()
       	^^^^^^^^^^^^^^^^^^
  File "app.py", line 273, in create_interface
	input_video_player = gr.Video(
                     	^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/component_meta.py", line 179, in wrapper
	return fn(self, **kwargs)
       	^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/components/video.py", line 171, in __init__
	super().__init__(
  File "/python3venv/lib/python3.12/site-packages/gradio/components/base.py", line 387, in __init__
	super().__init__(*args, **kwargs)
  File "/python3venv/lib/python3.12/site-packages/gradio/component_meta.py", line 179, in wrapper
	return fn(self, **kwargs)
       	^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/components/base.py", line 227, in __init__
	self.value = move_files_to_cache(
             	^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/processing_utils.py", line 519, in move_files_to_cache
	return client_utils.traverse(
       	^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio_client/utils.py", line 1104, in traverse
	new_obj[key] = traverse(value, func, is_root)
               	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio_client/utils.py", line 1100, in traverse
	return func(json_obj)
       	^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/processing_utils.py", line 493, in _move_to_cache
	temp_file_path = block.move_resource_to_block_cache(payload.path)
                 	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/blocks.py", line 339, in move_resource_to_block_cache
	temp_file_path = processing_utils.save_url_to_cache(
                 	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/processing_utils.py", line 398, in ssrf_protected_download
	return client_utils.synchronize_async(
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio_client/utils.py", line 890, in synchronize_async
	return fsspec.asyn.sync(fsspec.asyn.get_loop(), func, *args, **kwargs)  # type: ignore
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/fsspec/asyn.py", line 103, in sync
	raise return_result
  File "/python3venv/lib/python3.12/site-packages/fsspec/asyn.py", line 56, in _runner
	result[0] = await coro
            	^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/gradio/processing_utils.py", line 343, in async_ssrf_protected_download
	response = await sh.get(
           	^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/safehttpx/__init__.py", line 132, in get
	return await client.get(url, follow_redirects=False, **kwargs)
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1814, in get
	return await self.request(
       	^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1585, in request
	return await self.send(request, auth=auth, follow_redirects=follow_redirects)
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1674, in send
	response = await self._send_handling_auth(
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1702, in _send_handling_auth
	response = await self._send_handling_redirects(
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1739, in _send_handling_redirects
	response = await self._send_single_request(request)
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_client.py", line 1776, in _send_single_request
	response = await transport.handle_async_request(request)
           	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/safehttpx/__init__.py", line 98, in handle_async_request
	return await super().handle_async_request(request)
       	^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/python3venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 376, in handle_async_request
	with map_httpcore_exceptions():
  File "/usr/lib/python3.12/contextlib.py", line 158, in __exit__
	self.gen.throw(value)
  File "/python3venv/lib/python3.12/site-packages/httpx/_transports/default.py", line 89, in map_httpcore_exceptions
	raise mapped_exc(message) from exc
httpx.ConnectError: All connection attempts failed

System Info

Gradio Environment Information:
------------------------------
Operating System: Linux
gradio version: 5.13.1
gradio_client version: 1.6.0

------------------------------------------------
gradio dependencies in your environment:

aiofiles: 23.2.1
anyio: 4.8.0
audioop-lts is not installed.
fastapi: 0.115.11
ffmpy: 0.5.0
gradio-client==1.6.0 is not installed.
httpx: 0.27.2
huggingface-hub: 0.29.1
jinja2: 3.1.5
markupsafe: 2.1.5
numpy: 2.2.3
orjson: 3.10.15
packaging: 24.2
pandas: 2.2.3
pillow: 11.1.0
pydantic: 2.10.6
pydub: 0.25.1
python-multipart: 0.0.20
pyyaml: 6.0.2
ruff: 0.9.9
safehttpx: 0.1.6
semantic-version: 2.10.0
starlette: 0.46.0
tomlkit: 0.13.2
typer: 0.15.2
typing-extensions: 4.12.2
urllib3: 2.3.0
uvicorn: 0.34.0
authlib; extra == 'oauth' is not installed.
itsdangerous; extra == 'oauth' is not installed.


gradio_client dependencies in your environment:

fsspec: 2025.2.0
httpx: 0.27.2
huggingface-hub: 0.29.1
packaging: 24.2
typing-extensions: 4.12.2
websockets: 14.2

Severity

I can work around it

@dnoliver dnoliver added the bug Something isn't working label Mar 4, 2025
@abidlabs
Copy link
Member

abidlabs commented Mar 4, 2025

What proxy are you using? Can you explain how you set it up so we can try to reproduce this?

@dnoliver
Copy link
Contributor Author

dnoliver commented Mar 4, 2025

This is behind a "corporate" web proxy, e.g. https://www.squid-cache.org/.
Not a nginx proxy or alike.

@abidlabs
Copy link
Member

abidlabs commented Mar 4, 2025

Hmm this might be tricky to reproduce, but are you certain https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4 is accessible through your proxy? What happens when you run this:

import requests

url = "https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4"
response = requests.get(url, stream=True)

if response.status_code == 200:
    print("File is accessible. Saving...")
    with open("person-bicycle-car-detection.mp4", "wb") as f:
        for chunk in response.iter_content(chunk_size=8192):
            f.write(chunk)
    print("Download complete.")
else:
    print(f"Failed to access file. HTTP Status Code: {response.status_code}")

@dnoliver
Copy link
Contributor Author

dnoliver commented Mar 4, 2025

I kind of confirmed this issue, by installing the Squid Web Proxy, and running a test app with http_proxy and https_proxy env vars.
This is how it goes:

Install Squid: https://documentation.ubuntu.com/server/how-to/web-services/install-a-squid-server/index.html

Do a test request:

export https_proxy=http://localhost:3128
export http_proxy=http://localhost:3128
curl www.google.com

Check the access log:

sudo cat /var/log/squid/access.log 

The log shows:

1741122617.179    109 ::1 TCP_MISS/200 17789 GET http://www.google.com/ - HIER_DIRECT/142.250.217.100 text/html

Now, write a test application:

import gradio as gr

def create_interface():

  with gr.Blocks() as demo:
    gr.Video(
        label="Input Video",
        interactive=True,
        value="https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4",
        sources="upload",
    )

  return demo

demo = create_interface()
demo.launch(
    server_name="0.0.0.0",
    server_port=7860,
)

Run it:

python test.py

Check the access logs again:

sudo cat /var/log/squid/access.log 

There are a bunch of requests, but no one for the video:

1741122617.179    109 ::1 TCP_MISS/200 17789 GET http://www.google.com/ - HIER_DIRECT/142.250.217.100 text/html
1741122630.016    178 127.0.0.1 TCP_TUNNEL/200 5883 CONNECT api.gradio.app:443 - HIER_DIRECT/52.41.19.48 -
1741122630.516      1 127.0.0.1 TCP_REFRESH_MODIFIED/200 227 GET http://localhost:7860/gradio_api/startup-events - HIER_DIRECT/127.0.0.1 application/json
1741122630.516    101 127.0.0.1 TCP_TUNNEL/200 5902 CONNECT api.gradio.app:443 - HIER_DIRECT/52.41.19.48 -
1741122630.531     11 127.0.0.1 TCP_REFRESH_MODIFIED/200 234 HEAD http://localhost:7860/ - HIER_DIRECT/127.0.0.1 text/html
1741122635.915   5566 127.0.0.1 TCP_TUNNEL/200 7554 CONNECT huggingface.co:443 - HIER_DIRECT/99.84.66.65 -

Just to be 100% sure, download a video with Curl and check that it shows up in the log:

curl --head https://github.com/intel-iot-devkit/sample-videos/raw/master/person-bicycle-car-detection.mp4
sudo cat /var/log/squid/access.log 
1741122973.831    403 ::1 TCP_TUNNEL/200 7671 CONNECT github.com:443 - HIER_DIRECT/140.82.116.4 -

So, the Video component is not using the proxy setup in https_proxy.

@dnoliver
Copy link
Contributor Author

dnoliver commented Mar 5, 2025

I think a simple way to test is: set a bad proxy configuration.

python3 -m venv test
source ./test/bin/activate
pip install gradio
export http_proxy=http://a.random.proxy.address.com:911
export https_proxy=http://a.random.proxy.address.com:911
export no_proxy=localhost,127.0.0.1

This is the test application, with another video

import gradio as gr
import logging

logging.basicConfig(level=logging.DEBUG)

def create_interface():

  with gr.Blocks() as demo:
    gr.Video(
        label="Input Video",
        interactive=True,
        value="https://download.samplelib.com/mp4/sample-5s.mp4",
        sources="upload",
    )

  return demo

demo = create_interface()
demo.launch(
    server_name="0.0.0.0",
    server_port=7860,
)

Run the app

gradio test.py

And this are the logs:

DEBUG:asyncio:Using selector: EpollSelector
DEBUG:asyncio:Using selector: EpollSelector
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): huggingface.co:443
DEBUG:httpcore.connection:connect_tcp.started host='a.random.proxy.address.com' port=911 local_address=None timeout=3 socket_options=None
DEBUG:httpcore.connection:connect_tcp.failed exception=ConnectError(gaierror(-2, 'Name or service not known'))
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (1): huggingface.co:443
DEBUG:asyncio:Using selector: EpollSelector
DEBUG:httpcore.connection:connect_tcp.started host='a.random.proxy.address.com' port=911 local_address=None timeout=3 socket_options=None
* Running on local URL:  http://0.0.0.0:7860
DEBUG:httpcore.connection:connect_tcp.failed exception=ConnectError(gaierror(-2, 'Name or service not known'))
DEBUG:httpcore.connection:connect_tcp.started host='localhost' port=7860 local_address=None timeout=None socket_options=None
DEBUG:httpcore.connection:connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x7601a29a5dc0>
DEBUG:httpcore.http11:send_request_headers.started request=<Request [b'GET']>
DEBUG:httpcore.http11:send_request_headers.complete
DEBUG:httpcore.http11:send_request_body.started request=<Request [b'GET']>
DEBUG:httpcore.http11:send_request_body.complete
DEBUG:httpcore.http11:receive_response_headers.started request=<Request [b'GET']>
DEBUG:httpcore.http11:receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'date', b'Wed, 05 Mar 2025 18:30:23 GMT'), (b'server', b'uvicorn'), (b'content-length', b'4'), (b'content-type', b'application/json')])
INFO:httpx:HTTP Request: GET http://localhost:7860/gradio_api/startup-events "HTTP/1.1 200 OK"
DEBUG:httpcore.http11:receive_response_body.started request=<Request [b'GET']>
DEBUG:httpcore.http11:receive_response_body.complete
DEBUG:httpcore.http11:response_closed.started
DEBUG:httpcore.http11:response_closed.complete
DEBUG:httpcore.connection:close.started
DEBUG:httpcore.connection:close.complete
DEBUG:httpcore.connection:connect_tcp.started host='localhost' port=7860 local_address=None timeout=3 socket_options=None
DEBUG:httpcore.connection:connect_tcp.complete return_value=<httpcore._backends.sync.SyncStream object at 0x7601a29a6e10>
DEBUG:httpcore.http11:send_request_headers.started request=<Request [b'HEAD']>
DEBUG:httpcore.http11:send_request_headers.complete
DEBUG:httpcore.http11:send_request_body.started request=<Request [b'HEAD']>
DEBUG:httpcore.http11:send_request_body.complete
DEBUG:httpcore.http11:receive_response_headers.started request=<Request [b'HEAD']>
DEBUG:httpcore.http11:receive_response_headers.complete return_value=(b'HTTP/1.1', 200, b'OK', [(b'date', b'Wed, 05 Mar 2025 18:30:23 GMT'), (b'server', b'uvicorn'), (b'content-length', b'9072'), (b'content-type', b'text/html; charset=utf-8')])
INFO:httpx:HTTP Request: HEAD http://localhost:7860/ "HTTP/1.1 200 OK"
DEBUG:httpcore.http11:receive_response_body.started request=<Request [b'HEAD']>
DEBUG:httpcore.http11:receive_response_body.complete
DEBUG:httpcore.http11:response_closed.started
DEBUG:httpcore.http11:response_closed.complete
DEBUG:httpcore.connection:close.started
DEBUG:httpcore.connection:close.complete

To create a public link, set `share=True` in `launch()`.
DEBUG:urllib3.connectionpool:Starting new HTTPS connection (2): huggingface.co:443

There are network requests failing because of the bad proxy setting, but the video request doesn't pass through the proxy so it works.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants