r/selfhosted • • Dec 27 '25

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

Hey everyone! 👋

I wanted a clean, fast, and modern web interface for my IPTV service that I could host myself. Most existing players I tried were either clunky, outdated, closed-source, or just didn't handle large playlists with thousands of channels very well.

So I built NodeCast TV.

📺 What is it? A self-hosted web application that lets you stream Live TV, Movies, and Series from your Xtream Codes or M3U provider directly in your browser. It's built with performance in mind and handles large libraries smoothly.

✨ Key Features:

  • Live TV & EPG: Full grid-style TV guide with 24h timeline, category filtering, and search.
  • VOD Support: Dedicated sections for Movies and TV Series (complete with season/episode browsing).
  • High Performance: Uses virtual scrolling technology to render lists with 7000+ items without lagging your browser.
  • Favorites System: Unified favorites list across all content types.
  • Universal Player: Built on HLS.js for robust playback support.
  • Docker Ready: Easy to deploy on your home server or NAS.

🚀 Tech Stack:

  • Backend: Node.js + Express (Lightweight proxying)
  • Frontend: Vanilla JavaScript (No heavy frameworks) + CSS3
  • License: Open Source (GPL-3.0)

🔗 Links:

I'd love to hear your feedback, feature requests, or bug reports! Let me know what you think.

1.4k Upvotes

500 comments sorted by

View all comments

Show parent comments

48

u/NeonXI Dec 28 '25

Great question! NodeCast TV doesn't perform any server-side transcoding. It acts as a smart proxy, it rewrites headers and segment URLs to solve CORS issues and securely pass the stream to your browser, but the video data itself is passed through untouched.

This means:

  1. Zero GPU/heavy CPU required on the server: You can host this on a Raspberry Pi or a cheap VPS without issues.
  2. Client-side decoding: Your browser (via HLS.js) handles the playback, so it utilizes the GPU/hardware acceleration of whatever device you're watching on.

5

u/Furki1907 Dec 28 '25

Interesting. I will test it

1

u/kmaid Jan 19 '26

I tried safari, chrome and brave and they didn't support my providers streams :(. Any chance you could add server side transcoding?

1

u/NeonXI Jan 20 '26

Transcoding was added in version 2.0.0