Skip to content

URL Parameters & Encoding

Common parameters

All proxy endpoints accept these common parameters:

Parameter Description
d Destination URL (required). Plain or base64-encoded.
api_password API password (required when APP__AUTH__API_PASSWORD is set)
h_<Name> Custom upstream request header. h_Authorization=Bearer+token sends Authorization: Bearer token.

Custom headers (h_<Name>)

Pass any upstream request header by prefixing the header name with h_:

?d=<url>&h_Referer=https://example.com&h_Origin=https://example.com

Common use cases:

Param Upstream header
h_Authorization=Bearer+<token> Authorization: Bearer <token>
h_Referer=https://site.com Referer: https://site.com
h_Origin=https://site.com Origin: https://site.com
h_User-Agent=Mozilla/5.0+... User-Agent: Mozilla/5.0 ...

Note: + in query string values is decoded as a space. URL-encode special characters if needed.

Base64 URL encoding

Destination URLs that contain &, =, credentials, or other special characters can be base64-encoded to avoid query string parsing issues.

The proxy automatically detects whether d is a plain URL or base64-encoded — no extra parameter needed.

Encode a URL

Using the proxy's built-in endpoint:

curl -X POST http://localhost:8888/base64/encode \
  -H "Content-Type: application/json" \
  -d '{"url": "http://provider.com/epg?user=foo&pass=bar"}'

Using the command line:

echo -n "http://provider.com/epg?user=foo&pass=bar" | base64
# aHR0cDovL3Byb3ZpZGVyLmNvbS9lcGc/dXNlcj1mb28mcGFzcz1iYXI=

Then use the encoded value as d:

/proxy/epg?d=aHR0cDovL3Byb3ZpZGVyLmNvbS9lcGc/dXNlcj1mb28mcGFzcz1iYXI=&api_password=secret

Check if a value is base64

curl "http://localhost:8888/base64/check?d=aHR0cDovL2V4YW1wbGUuY29t"

URL generation (Web UI)

Open http://localhost:8888/ to access the URL generator — a web form that builds properly encoded proxy URLs for all endpoint types, including HLS, MPD, stream, EPG, and extractor.

Encrypted URLs

POST /generate_url generates a signed, encrypted proxy URL with optional expiration and IP binding.

curl -X POST http://localhost:8888/generate_url \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your-api-password" \
  -d '{
    "endpoint": "/proxy/stream",
    "params": {"d": "https://example.com/video.mp4"},
    "expiry": 3600,
    "ip": "1.2.3.4"
  }'

Encrypted URLs are useful when sharing proxy URLs with untrusted clients — the destination URL is hidden and the URL cannot be reused after expiry or from a different IP.