Goal
Add validation and reachability checks for generated M3U/XMLTV URLs so users can confirm their downstream apps will be able to access Stationarr outputs.
Problem
Users often struggle with generated URLs when Stationarr, Plex, Channels DVR, Jellyfin, or other clients are hosted on different machines, networks, reverse proxies, or Tailscale addresses.
Common pain points include:
- generated URL works in the browser but not from the client app
- wrong base URL
- wrong port
- reverse proxy path problems
- client cannot reach LAN IP from another location
- Tailscale URL should be used instead of public/LAN URL
- XMLTV URL is reachable but M3U URL is not, or vice versa
Expected behaviour
Add a way to validate generated URLs before the user copies them into another app.
Suggested checks:
- URL format is valid
- selected base URL is configured
- M3U URL returns a successful response
- XMLTV URL returns a successful response
- response content looks like M3U/XMLTV
- warnings if BASE_URL points to localhost or an unreachable container-only hostname
- warnings if public/LAN/Tailscale URL mode may not match the selected client use case
Suggested UI
In the Serve / generated output modal:
M3U URL [Copy] [Test]
XMLTV URL [Copy] [Test]
Result:
- M3U reachable: yes
- XMLTV reachable: yes
- Notes/warnings
When #41 exists, this should work with:
- Local/LAN URL
- Public URL
- Tailscale URL
Validation
- Generate URLs using the local base URL and test them.
- Generate URLs using a public base URL and test them.
- Generate URLs using a Tailscale base URL when configured and test them.
- Confirm Stationarr warns when a URL uses localhost or an obviously wrong host.
- Confirm M3U/XMLTV content is detected correctly.
Related
Related to #41 Tailscale base URL support and #51 client compatibility presets.
Goal
Add validation and reachability checks for generated M3U/XMLTV URLs so users can confirm their downstream apps will be able to access Stationarr outputs.
Problem
Users often struggle with generated URLs when Stationarr, Plex, Channels DVR, Jellyfin, or other clients are hosted on different machines, networks, reverse proxies, or Tailscale addresses.
Common pain points include:
Expected behaviour
Add a way to validate generated URLs before the user copies them into another app.
Suggested checks:
Suggested UI
In the Serve / generated output modal:
When #41 exists, this should work with:
Validation
Related
Related to #41 Tailscale base URL support and #51 client compatibility presets.