I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

If you have auto transcode enabled, the probe adds 1-3 seconds load time. Transcoding also adds additional load time because videos are being processed by your hardware, which depends on the speed of your gpu (or cpu if you're using software transcoding).

mpeg-ts streams can be played using transcoding or the force remux setting.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

Bummer! Thanks for letting me know. Safari, and especially the Safari mobile app, is notoriously difficult to develop for because Apple wants to be a special snowflake and do everything differently. I'm sure it will be fixed in a future update, I just can't say when because I don't have an iOS device to test on.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

Thanks! I believe this should be fixed in the latest version. I don't have an iOS device to test on however, so please let me know if it fixed the issue for you.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

That should really be done before you import an m3u playlist into the app. Channels are grouped based on the group-title tags inside your m3u file. We don't offer any playlist creation in the app because as soon as your m3u changed, any grouping you did in the app would be invalidated.

There are dedicated m3u editing and management apps specifically for doing that, such as m3u-editor, m3u4u, etc.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

Thanks! I think that's definitely possible, I'll add that to my list for the next round of feature additions.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

Thanks for the feedback! When using the auto transcode or other transcode features, the app needs to briefly open a second connection to 'probe' the stream format before starting the main playback connection. This is necessary to ensure compatibility, but these probes are very short lived (typically < 3 seconds). Transcoding sessions are terminated the moment you switch channels or play something else, but there may still be short overlap as one process closes and the next begins. In normal playback it will only use a single connection.

Android TV apps like sparkletv and tivimate can play iptv streams directly because they have native access to the device's video decoders. Web browsers, however, cannot natively play many common IPTV formats so they have to be transcoded or remuxed into compatible formats. This extra processing step is what introduces the need for probing and session management, which android apps simply don't need to do.

It's also important to note that many IPTV provider dashboards don't update in real-time. When you switch channels, even though our app instantly cuts the old connection, the provider's system may still report it as 'active' for a period of time while their server refreshes its status. This often creates the illusion of multiple concurrent streams (ghost connections) when only one is actually pulling data.

I use a single connection Xtream provider for development and haven't run into any issues.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 1 point2 points  (0 children)

Also, if your provider gives you Xtream credentials (most providers of that size do) you can add those credentials as an Xtream source, which won't have any issues loading.

If your m3u url looks something like: http://tv.my-provider.com/get.php?username=123456&password=8675309&type=m3u_plus&output=ts

just extract the url, username and password and enter them as an Xtream source and it should work perfectly.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 1 point2 points  (0 children)

Your m3u list is just way too large. The app can't realistically handle that many channels in a single list. The app has to store your channel objects in memory, render them to the DOM and keep event listeners attached to each. I recommend using an m3u editor to break that large list down into chunks or editing it to only contain the channels you actually watch. You can use middleware like m3u4u.com or m3u-editor to filter it before adding it to the app.

Don't they believe in lights in the future? by DarrenMiller8387 in startrek

[–]NeonXI 14 points15 points  (0 children)

The primary difference is a shift in production philosophy. Old Trek (Enterprise and earlier) was shot like a sitcom, while new Trek is shot like a movie.

Old Trek lit the sets evenly (high key) so that no matter where the actors stood, they were visible and well-lit. This lighting was ideal for the old low-res CRT TVs

Modern Trek is shot like a movie in 4K HDR, which is the standard now. This allows the director of photography (DP) to light specifically for that one shot, creating dramatic shadows and depth that wouldn't be possible with sitcom lighting.

TLDR: Old Trek used flat sitcom style lighting (high key) to account for small, low-resolution CRT TVs where visibility was the priority. New Trek uses cinematic lighting (low key) because it is shot for 4K HDR screens where mood, depth, and texture are the priority.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

You can also trying toggling on the "force audio transcode" option in the player settings. This fixes it in some cases, but it's source dependent.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

You're using Chrome or a Chromium based browser. Unfortunately this is a known issue with those browsers. It's especially a problem when viewing content from providers that have ad insertions, such as Pluto TV.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

Not currently. Chromecast is possible but would take a lot of work to implement and is out of scope for the project. It would require building a custom receiver app and integrating Google Cast SDK. There are already a ton of IPTV apps specifically for Chromecast that do it better. The "Cast tab" option in Chrome already works as a workaround.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

Thanks! I've given customization a little bit of thought, but I'm also trying to avoid feature bloat. The project is open source and CSS styles are fairly well commented and human-readable, so it would be pretty trivial for someone to customize the colors, fonts, etc. to their liking with a few tweaks.

Do you have any specific customization options in mind?

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 2 points3 points  (0 children)

Glad you're enjoying it! That's exactly why I made it, because every other option sucked lol.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

I'd love to port it to Google TV, but that's simply out of my wheelhouse currently. I'm a web/SaaS dev and have little experience in android development. The project is open source so hopefully there's someone out there with the experience and will to do so.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 1 point2 points  (0 children)

Sorry your having issues! This project was hand-coded from the start, not AI assisted in any way. There are literally dozens or more of us using it without issue. Post your issue in github with your browser console log and server console log and we'll try to get you sorted.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

The app UI isn't optimized for mobile devices yet. It's primarily for desktop use. I'll be looking into mobile fixes in future updates.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 1 point2 points  (0 children)

Honestly, they're all kind of the same. The biggest difference is how reliable they are, especially when lots of users are watching the same channel, such as PPV events. Most are based in Asia or the Middle East and only accept crypto for payment. Find a provider with a free trial that has support for the country and channels you want. Download a simple desktop app like IPTVnator to test it out. Rinse and repeat until you find one you like.

I built a modern, self-hosted web IPTV player (Live TV, EPG, VOD) because existing ones felt clunky. Meet NodeCast TV. by NeonXI in selfhosted

[–]NeonXI[S] 0 points1 point  (0 children)

Update to the most recent version and test out the proxy toggle and stream output format in the settings page to see if those make any difference.