upvote
That is an unbelievably slick thing that you've got there.

It feels very light-weight, it's approximately instantly-responsive. Back button works. I don't understand the stats (or my contribution to them), but whatever.

(the closed-captioning pop-up causes some overlay issues for me, though)

moar edit: Upon further review with my very not-special desktop box, I'm reasonably confident that this is the quickest, most-responsive "TV-watching" experience I've had since analog NTSC left the scene ~eons ago. It's fast like switching from channel 11 to channel 13 used to be with the very quickest and most well-behaved of tuners.

What aren't you doing that everyone else is doing?

reply
Thank you so much! What a nice thing to hear.

The short version is that it uses my own engine, called Watson. I used to work for a small game studio inside a big company and my specialty was tooling. I had built my own before I started there and when they shutdown, it evolved into Watson[0].

It's lightweight because it's a static site with no server, it has no spying code or SDKs, and it puts the broadcasters HLS stream URL directly into a <video> element in your browser with minimal intervention.

[0] https://watsonengine.io

reply
> Back button works

Maybe a little too well... I tried a whole bunch of channels to get an idea of which ones work, and my history was too full to get out of the site. Maybe every channel change doesn't need to push to your history list.

reply
Tangentially, I wonder why browsers can't store more than N history items... even from the same session.
reply
Very good point. Thank you, and I'll put a limit on it. 10?
reply
Generally filling up the buffer is fine. It's perfectly normal that after viewing a certain number of documents one has to manually decide where to go.

You know what you need. A button that goes back but instead of going to the prior document goes to the first document with a different domain than the current one.

reply
Yeah, I'm not convinced it's really the site's fault... I can understand the logic of wanting the back button to go back a channel, but also I generally want to go "out" of a page when I hit the back button, so there's no real one-size-fits-all answer.

But speaking only for myself, if history.pushState was removed from my browser I would probably be happier in the end. JavaScript SPA's abuse it 10x more often than they use it appropriately, I'd rather that if you're an SPA anyway, you implement your own in-app navigation and let my browser's mean "get me out of this app". Lord knows SPA's already reinvent every other web standard, why not one more...

reply
I want a back button and a button to the left with a double arrow back like Rewind and for the browser to maintain both a buffer of prior pages and one at least as long of prior root sites with right-click showing this list
reply
> What aren't you doing that everyone else is doing?

Seems to be the fact that there's no advertising, tracking or other SDKs and the entire JS is contained in two files.

reply
Thank you for noticing!
reply
Looks potentially very nice but the majority of the channels I tried were "blocked in my area or not broadcasting"
reply
Thanks for the feedback and I'm sorry that happened. Because the data comes from a public GitHub list of channels, the app has no way to know what will be geoblocked for you (or not) or actually online at the moment (or not) until you try to tune it -- very much like an old analog TV.

But... TV Explorer does keep track of what's tunable (with status lights down the left column) and also lets you scan in the background to find the ones that are live for you right now.

https://tvexplorer.live/help/25-things-18

reply
Thanks, I'll play with it a bit more.
reply
Magnificent thing you made, and the scanning is awesome. My problem is that it seems that I can't put more than one filter of the same type on i.e. (Spanish AND English), and if I switch between languages within the filter, the scan is reset.
reply
Thank you so much for that!

It does only allow filtering by one language at a time, but you can build your hotbar of the stations you like that you find across any filters.

The scan works on the displayed results. If you change the filter, it starts with the new list -- but all the results are saved regardless.

Hope that makes it a bit bitter!

reply
In case anyone else runs into this: the Stats section was not shown for me by default and I had to enable it in Settings.

Really great site though!

Quick suggestion: let us resize the channel browser when it's horizontal, and perhaps allow collapsing it altogether

reply
Thanks so much for the compliment!

When your window is wide enough (on desktop), you should be able to drag the split point between the TV display and the channel list.

reply
I think https://tv.garden/ has more channels than your especially if i look at Japan
reply
Seems to depend on the country, tv.garden has nothing in Namibia, for example
reply
Both of these are amazing
reply
This is incredible! It loaded so fast on my mobile and I’m able to watch channels from all over. Amazing stuff man. It requires a thread of its own
reply
Thank you so much! Devs sometimes don't hear the good stuff about our work and I'm thrilled that you're enjoying it.
reply
This as a Jellyfin plugin would be awesome!
reply
very cool. How would have this on actual TV? Load it in the built in browser?
reply
You can cast from a Chrome browser to an Android TV or Chromecast device:

https://tvexplorer.live/help/ways-to-watch

and...

https://tvexplorer.live/help/25-things-07

reply
This is fantastic, as others have said. Could you talk a bit about how it's so wonderfully fast?
reply
Thank you! That's so great to hear! I wrote a little bit about that here:

https://news.ycombinator.com/item?id=48969373

reply
This is probably the nicest IPTV site I’ve ever seen, nice work!!
reply
I'm so honored that you feel that way, and thank you for saying so!
reply
This is such a high quality TV viewing experience, I really love it! Amazing work!
reply
Thank you very much. I'm delighted that you like it!
reply
This is amazing! Can this be self hosted?
reply
It is a static site that doesn't require a server and can be hosted anywhere.
reply
that's INCREDIBLE! thanks so much for creating and sharing this!
reply
The pleasure is mine, and thank you for saying so!
reply
Just stays on the loading screen for me (Safari, iOS 26).
reply
Same here. I wonder if it's hugged to death?
reply
Love it
reply
Thank you, kindly!
reply
dis sum good stuff
reply
Thanks bro!
reply