TutorialMaker / tools /README.md
vivekchakraverty's picture
Add home-tunnel proxy control panel (tools/)
842fed4
|
Raw
History Blame
3.94 kB

Home Proxy Panel β€” give the Space your home IP

The TutorialMaker Space can't fetch transcripts or stream URLs from its datacenter IP (YouTube blocks it). This tool runs a small authenticated HTTP proxy on your computer (your home/residential IP) and exposes it through a raw TCP tunnel, then sets it as the Space's YT_PROXY secret. The Space's YouTube requests then exit from your IP and stop getting blocked.

Why a TCP tunnel (not Cloudflare/Tailscale): a forward proxy speaks HTTP CONNECT, which only survives a transparent TCP tunnel. HTTP reverse tunnels (Cloudflare quick-tunnel, Tailscale Funnel) cannot carry it β€” use ngrok TCP or bore.


1. Install the Python deps

pip install -r tools/requirements.txt

2. Install a tunnel (pick ONE)

Option A β€” ngrok (more reliable, free account):

  1. Sign up at https://ngrok.com (free).
  2. Install the ngrok agent and put ngrok on your PATH (https://ngrok.com/download).
  3. Copy your authtoken from the ngrok dashboard β†’ you'll paste it into the panel.

Option B β€” bore (no account, less reliable):

  1. Download bore.exe from https://github.com/ekzhang/bore/releases and put it on your PATH (or in this folder).
  2. That's it β€” it uses the shared public bore.pub server.

3. Launch the panel

python tools/home_proxy_panel.py

4. Use it (in order)

  1. Proxy port / user / password are pre-filled (a random password is generated). Keep the password β€” it protects your public proxy from being used by strangers.
  2. Pick the Tunnel provider (ngrok, bore, or manual). For ngrok, paste your authtoken.
  3. Click Start proxy β†’ it runs proxy.py on 127.0.0.1:<port>.
  4. Click Start tunnel β†’ the Public endpoint field fills in (x.tcp.ngrok.io:NNNN or bore.pub:NNNN) and the YT_PROXY URL is computed.
  5. Click Test proxy β†’ in the log, the egress IP should be your home IP and YouTube should be reachable. If so, the proxy works.
  6. Click Set YT_PROXY on Space β†’ it writes the YT_PROXY secret to your Space (auto-detecting your HF token, or paste one). The Space restarts and picks it up.
    • Or click Copy YT_PROXY URL and paste it into the Space's secret manually.

5. Verify on the Space

Run a topic on the Space. The transcript and screenshot steps should now succeed instead of failing with an SSL/TLS block.

Keep it running

The proxy + tunnel must stay running on your machine while the Space is in use. Close the panel (or Stop proxy/Stop tunnel) when you're done β€” the YT_PROXY secret will then point at a dead endpoint until you start it again (the Space falls back to text-only / a clear error).


Security notes

  • The proxy is public while tunneled, so it requires the username/password β€” keep them non-trivial (use New password to rotate). Without the right credentials nobody can use your proxy.
  • This routes YouTube traffic through your home connection and consumes your bandwidth.
  • Stop the tunnel when not needed; rotate the password periodically.

Manual endpoint (router port-forward / other tunnel)

If you forward a router port (and you're not behind CGNAT) or use another raw-TCP tunnel, choose provider manual and enter the public host:port. The panel will build the YT_PROXY URL and can set the secret + test it.

Troubleshooting

  • proxy.py not found β†’ pip install proxy.py.
  • ngrok: no tcp tunnel β†’ ensure the authtoken is set; free TCP tunnels are supported but only one at a time β€” close other ngrok agents.
  • Test egress IP is not your home IP β†’ the tunnel/proxy chain is wrong; restart both.
  • YouTube still blocked on the Space β†’ confirm the secret value matches the panel's YT_PROXY URL exactly (including user:pass@), and that the panel is still running.