alt.hn

7/19/2026 at 12:59:55 AM

Better and Cheaper Than IPTV

https://github.com/stupside/castor

by xonery

7/19/2026 at 4:26:33 AM

For a no hacks alternative, I built TV Explorer. It puts the channel's published HLS stream into your browser with no interim steps. Uses the public GitHub list of more than 10,000 free channels.

https://tvexplorer.live

by dtagames

7/19/2026 at 4:51:04 AM

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?

by ssl-3

7/19/2026 at 4:11:35 PM

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

by dtagames

7/19/2026 at 8:24:16 AM

> 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.

by mschuster91

7/19/2026 at 4:12:17 PM

Thank you for noticing!

by dtagames

7/19/2026 at 2:10:01 PM

> 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.

by ninkendo

7/19/2026 at 3:50:37 PM

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.

by michaelmrose

7/19/2026 at 4:29:02 PM

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...

by ninkendo

7/20/2026 at 4:46:02 AM

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

by michaelmrose

7/20/2026 at 12:52:46 PM

Tangentially, I wonder why browsers can't store more than N history items... even from the same session.

by rendaw

7/19/2026 at 4:11:56 PM

Very good point. Thank you, and I'll put a limit on it. 10?

by dtagames

7/19/2026 at 4:26:26 PM

Looks potentially very nice but the majority of the channels I tried were "blocked in my area or not broadcasting"

by SoftTalker

7/19/2026 at 4:29:29 PM

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

by dtagames

7/19/2026 at 9:00:28 PM

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.

by pessimizer

7/20/2026 at 1:39:50 AM

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!

by dtagames

7/19/2026 at 6:03:14 PM

Thanks, I'll play with it a bit more.

by SoftTalker

7/19/2026 at 11:11:16 PM

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

by squigz

7/20/2026 at 1:41:23 AM

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.

by dtagames

7/19/2026 at 6:35:43 AM

I think https://tv.garden/ has more channels than your especially if i look at Japan

by liquidnitrogen1

7/19/2026 at 8:52:40 AM

Seems to depend on the country, tv.garden has nothing in Namibia, for example

by maxweylandt

7/19/2026 at 7:38:28 AM

Both of these are amazing

by asimpletune

7/19/2026 at 5:03:36 AM

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

by jusonchan81

7/19/2026 at 4:13:07 PM

Thank you so much! Devs sometimes don't hear the good stuff about our work and I'm thrilled that you're enjoying it.

by dtagames

7/19/2026 at 7:29:06 AM

This as a Jellyfin plugin would be awesome!

by drewrbaker

7/19/2026 at 5:16:12 AM

This is fantastic, as others have said. Could you talk a bit about how it's so wonderfully fast?

by liamwire

7/19/2026 at 4:32:42 PM

This is probably the nicest IPTV site I’ve ever seen, nice work!!

by nickzelei

7/19/2026 at 4:48:09 PM

I'm so honored that you feel that way, and thank you for saying so!

by dtagames

7/19/2026 at 5:41:58 AM

This is such a high quality TV viewing experience, I really love it! Amazing work!

by nchagnet

7/19/2026 at 4:13:51 PM

Thank you very much. I'm delighted that you like it!

by dtagames

7/19/2026 at 3:20:40 PM

This is amazing! Can this be self hosted?

by supersparrow

7/19/2026 at 4:13:22 PM

It is a static site that doesn't require a server and can be hosted anywhere.

by dtagames

7/19/2026 at 7:52:35 PM

that's INCREDIBLE! thanks so much for creating and sharing this!

by mcmoebius

7/19/2026 at 8:05:57 PM

The pleasure is mine, and thank you for saying so!

by dtagames

7/19/2026 at 7:49:03 AM

Just stays on the loading screen for me (Safari, iOS 26).

by normie3000

7/19/2026 at 8:56:47 AM

Same here. I wonder if it's hugged to death?

by b112

7/19/2026 at 8:15:08 AM

Love it

by jarym

7/19/2026 at 4:48:39 PM

Thank you, kindly!

by dtagames

7/19/2026 at 5:59:13 PM

dis sum good stuff

by sharts

7/19/2026 at 8:06:57 PM

Thanks bro!

by dtagames

7/19/2026 at 11:12:52 AM

This situation where bots have to run a headless browser in a new profile is just stupid. Can we have the old internet back? Please? Cloudflare you're not stopping bots, you're just wasting effort on both sides while siphoning access logs and passwords to the NSA.

by inigyou

7/19/2026 at 4:48:55 AM

> I built it because I couldn't cast web video from my laptop to my TV: no Chromecast, no AirPlay.

Looks like Claude built it.

by hperrin

7/19/2026 at 12:07:29 PM

Claude helped me out for sure, i'm not a DLNA or FFMPEG beast, but i solved a problem I had and that's what matters. If it solved a problem you have, even better.

by xonery

7/19/2026 at 12:33:45 PM

Yeah don't listen to HN dorks. Unless youve handwritten the code using Mayan virgin blood on papyrus scrolls they will complain.

by haaz

7/19/2026 at 10:15:44 PM

Dude didn't even harvest the quill himself. Back in my day you had to track a bird for hours just praying they'd drop a feather so you didn't have to actually catch the thing. Of course, the Smith family had a bow, so you'd maybe borrow a bow but then you were praying you didn't lose or break the arrow because then you're out the labor for the quill you didn't get AND the arrow!

by goodmythical

7/19/2026 at 12:56:45 PM

"Helped me build" usually means it was vibe coded AI slop.

by sgt

7/19/2026 at 2:26:21 PM

Did the app work?

by fortyseven

7/19/2026 at 2:31:01 PM

While I think responsible use of AI coding tools is possible, "working" is a low bar for software. Does it accomplish the intended function securely, performantly, with reasonable error handling?

by goda90

7/19/2026 at 5:56:54 AM

You're absolutely right and let me be honest about the honest load-bearing smoking-gun you point at.

by yard2010

7/19/2026 at 6:44:03 AM

That's the core tension — and you're right to call it out! Let me walk back my claims.

by dimator

7/19/2026 at 7:38:07 PM

Yearly Quota Exceeded. Click here to buy the $69/minute plan.

by Razengan

7/19/2026 at 9:05:35 AM

I'm pretty sure it was built by a compiler, using libraries provided by Google and others. Until Claude can directly output machine code packaged for distribution, it's just another middleman between the source of intent (the human) and the final deliverable.

</sarcasm, mostly>

by simondotau

7/19/2026 at 1:49:22 AM

I thought the whole point of turnstile was that it detects headless browsers and it's supposed to be "difficult" to bypass. Apparently this just simulates clicking on the checkmark. Is it really that easy?

by krackers

7/19/2026 at 11:19:53 AM

The point of Turnstile is to sell a warm fuzzy feeling of security to website owners, block Tor users who don't enable JavaScript, and convince website owners to give a copy of all their traffic to the NSA for free.

Actual security is barely relevant except to the extent that if it doesn't add any security, the NSA might get worried that people will stop using Cloudflare.

Fake security - number of blocked users, which Cloudflare calls "bots" regardless of whether they're people or bots - is used in Cloudflare marketing.

by inigyou

7/19/2026 at 9:26:17 AM

With the right simulated events, a headless browser becomes indistinguishable from a real browser without platform detection. It's not hard to figure out that these headless browsers are running a software renderer on Linux. In time, they're just going to have to detect Linux users and force them to fill out one or multiple challenges if workarounds like these keep getting used.

The checkbox is just a small part of what the checks are doing. It's monitoring everything the browser is doing and how the browser is responding to certain events up until you tick the checkbox, at which point it determines if you need one of those "are you human" challenges or if you can pass without interruption, based on how bot-like you are.

by jeroenhd

7/19/2026 at 2:00:23 AM

> was that it detects headless browsers

> Apparently this just simulates clicking on the checkmark

Not just that. It also spoofs a bunch of browser stuff.

A standard headless browser will probably get flagged.

by KomoD

7/19/2026 at 2:12:52 AM

If you can make the browser pass all the other checks going on in the background, clicking the checkmark is all that's left.

by Saris

7/19/2026 at 8:40:03 AM

People have been automating WoW for a generation using things like peripherals duct taped to oscillating fans despite multi-million dollar budgets designed to defeat things far more sophisticated than this.

I would think of headless browser automation in exactly the same way you would about cheating in FPS video games. The red team always has the initiative and can win if they want to spend enough time and money.

by bob1029

7/19/2026 at 1:58:56 AM

Yes, kindof…

by xonery

7/19/2026 at 2:38:50 AM

Usually piracy software tries to maintain a little plausible deniability, but here this is suggesting it will help you stream this weekend's newly released $250m blockbuster.

by slg

7/19/2026 at 11:18:58 AM

I suppose it searches your configured sources for that movie and comes back "not found"

Stremio does this. Stremio is a legal application that finds media from any configured plugin. You're supposed to add the illegal Torrentio plugin to automatically pirate media. By doing it this way, most development can take place in public.

A similar situation exists with the emulator Azahar and the illegal fork Azahar Plus which can automatically decrypt games.

Edit: lolno this project just has pirate sites built into it

by inigyou

7/19/2026 at 2:52:27 AM

I’m not against piracy but the initial pitch made it seem like it’s more purely for trying to cast streams embedded in websites that you already are visiting and/or have access to, of which do not “allow” you to cast, or for whatever reason only work on a laptop and not on something like AirPlay. But the LLM-slop description of “random websites” in addition to the option for a TVDB API key confuse me as to what the actual focus is here.

by some-guy

7/19/2026 at 3:17:20 AM

[flagged]

by xonery

7/19/2026 at 3:33:41 AM

It could just be streaming the trailer.

by quantummagic

7/19/2026 at 3:34:36 AM

Main use case

by xonery

7/19/2026 at 4:57:39 AM

I mean I get it, but also it's funny that you commented this 5 minutes after you edited the readme[1] to add in the exact type of plausible deniability I remarked was absent.

[1] - https://github.com/stupside/castor/commit/847abd1ad0dbe893fc...

by slg

7/19/2026 at 8:25:15 AM

Shhhh...

by sam_lowry_

7/19/2026 at 1:36:57 AM

Seems to be missing some context. What is this used for? Piracy?

by rideontime

7/19/2026 at 1:42:56 AM

It's a CLI that lets you select a movie, finds a matching stream from streaming websites, transcodes it, burns in subtitles in real time, and tells your TV to play it.

by xonery

7/19/2026 at 9:40:33 PM

What kind of streaming websites? Like, Netflix? Amazon Prime?

by rideontime

7/19/2026 at 2:27:37 AM

Do I need to bring my own sources or is there a maintained list?

by 2gremlin181

7/19/2026 at 2:34:53 AM

You mean the streaming website source ? You can use the one present in the config.yaml of the project, it works fine.

by xonery

7/19/2026 at 11:23:42 AM

it comes preconfigured with three different illegal pirate sites.

by inigyou

7/19/2026 at 1:11:49 PM

Looks like they removed now, and changed some language in Readme: https://github.com/stupside/castor/commit/692b2f18b8f6e99c32...

by whatsupdog

7/19/2026 at 1:49:25 PM

Lol. I wonder how that will hold up in court. "Your Honor, Castor is not designed for piracy" "Then why did the last version automatically access three pirate sites?"

by inigyou

7/19/2026 at 2:29:47 AM

[flagged]

by keepupnow

7/19/2026 at 4:50:40 AM

I am not sure how this would help with piracy? It can only play a stream you already have access to, it doesn’t break encryption or anything.

by cortesoft

7/19/2026 at 6:08:15 AM

The default config has a bunch of such sources: https://github.com/stupside/castor/blob/main/config.yaml

sources: - proxies: - "https://vidsrc-embed.ru" templates: movie: "/embed/movie/{itemID}" episode: "/embed/tv/{itemID}/{season}-{episode}"

  - proxies:
      - "https://1embed.cc"
      - "https://www.vidking.net"
    templates:
      movie: "/embed/movie/{itemID}"
      episode: "/embed/tv/{itemID}/{season}/{episode}"

  - proxies:
      - "https://www.rivestream.app"
    templates:
      movie: "/embed/torrent?type=movie&id={itemID}"
      episode: "/embed/torrent?type=tv&id={itemID}&season={season}&episode={episode}"

  - proxies:
      - "https://www.rivestream.app"
    templates:
      movie: "/embed?type=movie&id={itemID}"
      episode: "/embed?type=tv&id={itemID}&season={season}&episode={episode}"

by PieUser

7/19/2026 at 11:24:07 AM

You already have access to pirated streams. This app plays them for you. Check the source addresses in config.yaml.

by inigyou

7/19/2026 at 1:42:20 AM

It's an alternative way to cast media to your TV by way of somehow ripping the streaming video off said website or service.

by pogue

7/19/2026 at 2:29:54 AM

I agree, is the use case any video stream other than big established ( which already support casting)... So... bootleg sports streams?

by mikeweiss

7/19/2026 at 3:20:41 AM

It casts whatever stream's on the page, same as VLC plays whatever file you open.

by xonery

7/19/2026 at 1:39:40 AM

[dead]

by selectively

7/19/2026 at 9:01:28 AM

Immediately worked for me on a simple Samsung bought 15+ years ago.

What's the best way to use it, write your own search to parse all the json pages https://vsembed.ru/movies/latest/page-1.json ?

by stef25

7/19/2026 at 2:33:34 AM

This is interesting, instead of a command line interface it made me wonder what an interface right on the tv could look like.

Comparisons to watching tv, are usually a TV interface, with a TV device/app, be it an Android TV/Apple TV, etc.

Maybe I'm missing it, I couldn't see a tv interface.

The part where it can send video to any kind of tv is a pretty remarkable piece.

by j45

7/19/2026 at 2:49:31 AM

It's also remarkably "old" in a digital sense:

  Digital Living Network Alliance (DLNA) is a set of interoperability standards for sharing home digital media among multimedia devices. Introduced 2004; 22 years ago.
* https://en.wikipedia.org/wiki/DLNA

  Google Cast is a proprietary protocol developed by Google for playing locally stored or Internet-streamed audiovisual content on a compatible consumer device. The protocol is used to initiate and control playback of content on digital media players, high-definition televisions, and home audio systems using a mobile device, personal computer, or smart speaker. The protocol was first launched on July 24, 2013; 12 years ago.
* https://en.wikipedia.org/wiki/Google_Cast

by defrost

7/19/2026 at 4:11:35 AM

Old also in this case keeps TVs useful longer

by j45

7/19/2026 at 9:45:16 AM

>Castor launches headless Chrome with a randomized fingerprint and stealth scripts to hide automation.

you lost me in there.

by m00dy

7/19/2026 at 10:04:57 AM

I work with browser fingerprinting, so I took a look at the repo to see what it actually does. From what I can tell, it only patches navigator, the Audio API, and the Canvas API. That is pretty basic, so it will likely get flagged easily.

by m00dy

7/19/2026 at 11:25:11 AM

Depends what you're trying to bypass. Cloudflare isn't as strict as Google.

by inigyou

7/19/2026 at 1:14:15 PM

depends on what you're trying to bypass in Cloudflare, turnstile or interstitial ?

by m00dy

7/19/2026 at 4:08:31 PM

It's about as much effort as a torrent, so I don't see the point.

by paxys

7/19/2026 at 8:23:23 AM

Can this be used without a TV, lets say if I just want to play the streams with VLC?

by aussieguy1234

7/19/2026 at 10:43:03 AM

I would hope it would do the "find and extract stream source" on the web page bit well. (This is quite hard on some sites). From there VLC can handle it.

I use "Web Video Caster" on Android to stream videos from websites to my TV. Free version is fine.

by dizhn

7/19/2026 at 2:27:54 AM

Docker version on MacOS might not find your TV.

by xonery

7/19/2026 at 5:32:43 AM

You probably have to expose it to do Upnp through the VM that is needed for docker on Macos.

by monksy

7/19/2026 at 3:04:44 AM

Can you cast to a Roku device with this?

by ranger_danger

7/19/2026 at 5:31:22 AM

I tried with v1.4.1, TVs running Roku TV do not seem to be supported at this point of time, at least "castor scan" does not yield any results. Roku TV does support Apple AirPlay as an add-on as you probably know.

by kls0e

7/19/2026 at 4:56:32 AM

- very stupid comment: i still have no idea what this project does even after reading the README

- can someone kindly explain what is the actual problem statement and what the author is trying to solve here?

by vivzkestrel

7/19/2026 at 11:27:09 AM

You type in the ID of a movie and it pirates it for you

by inigyou

7/19/2026 at 1:35:07 AM

We're just throwing straight up piracy on HN now? We're vibing piracy now? Felonies via API?

by selectively

7/19/2026 at 11:26:10 AM

Yes. Unironically yes. Except that it's a misdemeanor. It's a felony for the author of this code and for dang if he doesn't remove this post (distributing piracy tools), but it's a misdemeanor for the ones watching the streams.

by inigyou

7/19/2026 at 8:01:18 PM

FAAS

by Razengan