The Closed Circuit
The Closed Circuit CDN Test
Network performance tester for IPTV CDN endpoints · open source
01 · Credentials
02 · Channels
03 · Results
Xtream Credentials
CDN Endpoints to Test
Enter 2–10 CDN servers to compare. Include http:// or https://
How your credentials are handled
No database, no storage. This app has no database. Your credentials are held in browser memory only for the duration of your session and are never written to disk or any persistent store.
Proxy exists only for CORS. Your credentials pass through a minimal proxy server because IPTV servers reject direct browser requests (a security policy called CORS). The proxy forwards the request to your IPTV provider and pipes the response back — it does not extract, log, or store any part of your credentials.
Verify it yourself. Open your browser's DevTools (F12 → Network tab) and watch every request this app makes. You'll see requests only go to your IPTV server (via /api/proxy) and CDN endpoints (via /api/test-proxy) — nothing else.
Fully open source. Every line of code — frontend, proxy, and serverless functions — is public and auditable on GitHub. If you don't trust this hosted version, you can clone the repo and run it yourself.
How This Test Works
Step 1Enter your Xtream server URL, username, and password, plus the CDN endpoints you want to benchmark (one per line). The server URL is used to log in and fetch your channel list; the CDN endpoints are what gets scored. You can enter the same URL in both fields if you only have one.
Step 2Once your channel list loads, pick a handful of channels (3–5 is enough). These will be used as the test content when benchmarking each CDN URL.
Step 3Run the test. The tool requests each selected channel through each CDN URL and scores the results.
Server URLYour known-working IPTV address, used only to fetch the channel list. It is not scored.
CDN EndpointsThe URLs being benchmarked. These can be alternate addresses your provider gave you, or the same URL as your server — even a single URL is worth testing to establish a performance baseline.

Your browser can't connect directly to IPTV servers due to browser security restrictions, so all test requests are routed through this app's proxy server. The proxy makes each request on your behalf and returns the result. Scores reflect performance between the proxy and each CDN endpoint — useful for comparing URLs against each other and identifying unreliable or slow nodes.

DirectThe proxy first attempts a direct connection to each CDN. This works for the majority of providers and gives the most accurate results.
CF WorkerIf a direct connection fails (some providers block hosting provider IPs), the request is automatically retried through a Cloudflare Worker proxy. This handles most blocked providers.
BlockedA small number of providers run their own servers behind Cloudflare's network. These restrict Cloudflare-to-Cloudflare requests, meaning neither proxy path can retrieve throughput data. These CDN URLs will show a BLOCKED result. Latency may still be measured. This is a network-level restriction and does not mean the URL is broken — it will likely work fine in your player.
LatencyRound-trip time from the proxy to the server, in milliseconds (ms). Affects how quickly channels load and how far behind live broadcasts you are. Good: under 80ms. Poor: above 250ms.
JitterHow much latency varies between requests. A connection that holds steady at 90ms is better for live TV than one swinging between 20ms and 200ms — your player's buffer can't handle the unpredictability. Good: under 15ms. Poor: above 40ms.
ThroughputSustained data speed from the server, in Mbps. HD needs ~8–15 Mbps; 4K needs 25+. Beyond your stream's bitrate, more speed doesn't improve quality. Good: above 15 Mbps. Poor: under 5 Mbps.
Success RateWhether the server responded correctly across all tested channels. A fast-but-flaky server is worse than a slower reliable one. Good: 100%. Poor: anything below 80%.
Score WeightsSuccess 35% · Jitter 25% · Latency 25% · Throughput 15% — weighted toward consistency over raw speed, because live TV is unforgiving of instability.
Top RankThe top-ranked URL is the one to configure in your player. If all scores are uniformly poor, try alternate server URLs your provider may offer — the issue is likely with routing to that specific CDN rather than anything on your end.
Good Scores, Bad PlaybackIf all URLs score well but you're still experiencing buffering or freezes, the problem is likely on your local network. Things to check: wired vs Wi-Fi (wireless interference is a common cause of jitter), router quality, other devices consuming bandwidth, and VPN software — VPNs introduce latency and jitter regardless of how well the CDN itself performs.
Device DNSThe test runs through a proxy with its own DNS resolution, but your player connects directly — meaning your device may route to a different server node than what was tested. Switching from your ISP's default DNS to 1.1.1.1 (Cloudflare) or 8.8.8.8 (Google) and flushing your DNS cache can sometimes resolve persistent playback issues that the test scores don't reflect.