5.2 KiB
Proxy Configuration Guide for SRF Play Plugin
This guide explains how to configure the Jellyfin SRF Play plugin to route all API traffic through a proxy or alternate gateway.
Overview
The SRF Play plugin now supports proxy configuration directly in the plugin settings. This allows you to:
- Route traffic through a specific gateway or proxy server
- Use authentication if your proxy requires it
- Bypass geo-restrictions or network policies
- Route only SRF-related traffic without affecting other Jellyfin operations
Supported Proxy Types
The plugin supports:
- HTTP proxies:
http://proxy.example.com:8080 - HTTPS proxies:
https://proxy.example.com:8443 - SOCKS5 proxies:
socks5://proxy.example.com:1080
Configuration Steps
1. Access Plugin Settings
- Open Jellyfin Dashboard
- Navigate to Dashboard → Plugins → SRF Play
- Scroll down to the Proxy Settings section
2. Configure Proxy
Fill in the following fields:
Use Proxy
- Enable this checkbox to route all SRF API requests through the proxy
Proxy Address
- Enter your proxy server address with protocol and port
- Examples:
http://192.168.1.100:8080http://proxy.example.com:3128socks5://127.0.0.1:1080
Proxy Username (Optional)
- Enter username if your proxy requires authentication
- Leave empty if no authentication is needed
Proxy Password (Optional)
- Enter password if your proxy requires authentication
- Leave empty if no authentication is needed
3. Save Configuration
- Click Save button
- Restart Jellyfin to apply changes (recommended)
Examples
Example 1: Simple HTTP Proxy (No Authentication)
Use Proxy: ✓ Enabled
Proxy Address: http://192.168.1.1:8080
Proxy Username: (empty)
Proxy Password: (empty)
Example 2: Authenticated HTTP Proxy
Use Proxy: ✓ Enabled
Proxy Address: http://proxy.company.com:3128
Proxy Username: myusername
Proxy Password: mypassword
Example 3: SOCKS5 Proxy
Use Proxy: ✓ Enabled
Proxy Address: socks5://127.0.0.1:1080
Proxy Username: (empty)
Proxy Password: (empty)
Setting Up a Transparent Proxy Gateway on Ubuntu
If you want to create your own transparent proxy gateway on Ubuntu, here are some options:
Option A: Squid Proxy
Install and configure Squid as a transparent proxy:
# Install Squid
sudo apt update
sudo apt install squid
# Edit configuration
sudo nano /etc/squid/squid.conf
# Add these lines:
http_port 3128
acl localnet src 192.168.1.0/24
http_access allow localnet
# Restart Squid
sudo systemctl restart squid
Then in plugin settings:
Proxy Address: http://192.168.1.1:3128
Option B: SSH Tunnel (SOCKS5)
Create a SOCKS5 proxy through SSH:
# On your local machine
ssh -D 1080 -N user@remote-gateway-server
Then in plugin settings:
Proxy Address: socks5://127.0.0.1:1080
Option C: Dante SOCKS Server
Install Dante for a dedicated SOCKS5 server:
sudo apt install dante-server
# Configure in /etc/danted.conf
sudo systemctl restart danted
Troubleshooting
Plugin Not Connecting Through Proxy
- Check proxy address format: Ensure it includes the protocol (http://, socks5://, etc.)
- Verify proxy is running: Test connectivity to the proxy from your Jellyfin server
- Check Jellyfin logs: Look for proxy-related errors in Dashboard → Logs
- Firewall rules: Ensure your firewall allows outbound connections to the proxy
Authentication Errors
- Verify username and password are correct
- Check if your proxy requires domain authentication (DOMAIN\username)
- Some proxies may require specific authentication methods not supported by .NET HttpClient
DNS Resolution
- The plugin resolves domain names before sending requests through the proxy
- If you need DNS resolution through the proxy, you may need to use a VPN or network-level routing instead
Affected Domains
When proxy is enabled, all requests to these domains will be routed through the proxy:
il.srgssr.ch- SRF Integration Layer APIwww.srf.ch- SRF Play v3 API (German)www.rts.ch- RTS Play v3 API (French)www.rsi.ch- RSI Play v3 API (Italian)www.rtr.ch- RTR Play v3 API (Romansh)www.swi.ch- SWI Play v3 API (International)
Viewing Logs
To verify the proxy is being used:
- Go to Dashboard → Logs
- Look for entries containing "Proxy configured"
- Example log entry:
Proxy configured: http://192.168.1.1:8080 (Authentication: False)
Security Notes
- Proxy credentials are stored in Jellyfin's plugin configuration
- Use HTTPS for the proxy connection when possible to encrypt traffic
- Consider using a VPN for more secure routing if dealing with sensitive content
- Regularly update your proxy server and Jellyfin to patch security vulnerabilities
Alternative: Network-Level Routing
If you prefer network-level routing instead of application proxy, see the setup-srf-routing.sh script for IP-based routing tables (requires root access and is more complex).
Support
If you encounter issues:
- Check Jellyfin logs for detailed error messages
- Verify proxy connectivity with
curl --proxy http://proxy:port https://il.srgssr.ch - Open an issue on the GitHub repository with logs and configuration details