Methodology
How the numbers are produced
Every count on this site is read from the playlist file itself. There is no estimate, no scraped figure from a marketing page, and no invented “channels” total.
The measurement
- We fetch the playlist URL directly from its publisher.
- We parse it line by line, pairing each #EXTINF entry with the URL beneath it.
- We count the entries, the distinct group-title values, the entries carrying tvg-id and tvg-logo, and the protocol mix.
- The result is cached for six hours, then re-measured on the next request.
What “reachable” means
Reachable means the playlist endpoint returned a playlist when we fetched it. It does not mean the channels inside are live, and it does not mean the streams will work from your network. A source can be perfectly reachable and still contain a majority of dead entries.
What we do not do
- We do not probe individual streams. Testing every entry would mean hundreds of requests per playlist, and the answer would be wrong within the hour.
- We do not proxy video. Your browser or player fetches the stream directly from the broadcaster's server, so geo-restrictions apply as they normally would.
- We do not host playlists or video. The file lives on GitHub Pages or its publisher's server; we link to it.
- We do not sell access. No subscriptions, no credentials, no “premium” tier of channels.
Corrections
If a count looks wrong, it usually means the upstream file changed between our fetch and your load. The timestamp next to each figure tells you how old the reading is. If a source is persistently broken, it is removed from the directory rather than left to rot.
Publicly reachable is not the same as licensed. We list streams that projects publish openly, and we remove entries when a rights holder asks. What you are allowed to watch depends on where you are.
See the current measurements or the directory.