Stream TV
A self-hosted television system that turns IPTV subscriptions, DRM channels, and live streams into a clean, Netflix-like experience, kept in sync across every device you own. One central brain and native apps for every screen.
Three parts, one system
The golden rule: the server owns the content, the apps just display it. Edit a channel once and every device picks it up: instantly if it's watching, otherwise on its next refresh.
The Server
The brain. Master channel list, self-healing stream resolver, account pools, TV guide, catalog crawler, IPTV relay, and user accounts. Runs 24/7 on a home NAS.
Node.js Β· TypeScript Β· DockerDesktop App
The living-room player. Single channel, a four-tile grid or a free mosaic, recording, DRM, movies & series, and an mpv engine that plays what browsers can't.
Electron Β· mpv Β· WindowsAndroid App
A native phone / tablet / TV client with the same content, Picture-in-Picture, background playback, and TV-launcher support.
Kotlin Β· mpvAround the core sit a few small helper tools for checking accounts, probing streams, and keeping an eye on things. They aren't part of the system; they just make running it easier.
The Server
Runs as a Docker container on an always-on home server. It holds the content, fixes dead streams, juggles your IPTV accounts, crawls catalogs, relays feeds, and manages who can see what.
ποΈCentral channel store & sync
One master list for every device. Add, rename, delete, reorder, or re-group a channel once and every app reflects it. A fresh server auto-seeds from your existing library, so there's no re-typing.
ποΈAdmin control room
A full browser panel: channels, groups, playlists on their own page, bulk actions on whatever you tick, accounts & profiles, restriction toggles, and a one-click "Diagnose all" sweep that auto-hides dead channels.
π§Self-healing resolver
When a link dies, the server finds a fresh one automatically and shares the fix with every device. It knows token-scraped, RTΓ DRM, IPTV-org, master-playlist, and Stalker channels apart.
β‘Browserless token resolver
Channels that hide their real stream behind a rotating token are cracked in pure HTTP + AES with no headless browser, resolving in about a second instead of thirty.
π©ΊChannel diagnosis
Instead of "it's broken," a staged probe reports the real reason (origin refused, 403 geo-blocked, 401 max-connections, dead host, wrong codec) and reads a panel's exact response codes correctly. A stream that trickles but never really plays counts as broken too.
πXtream TS relay
A one-connection IPTV account is fanned out to all your devices from a single shared upstream, spliced cleanly across the panel's constant reconnects, so the account never fights itself. When a feed struggles, the relay works through a ladder of fallbacks before it gives up.
π₯Account pools
Attach several accounts for the same line-up and the server spreads channels across them, ranks the healthy ones, grades expiry dates, and clears out lapsed accounts in one click. Dead accounts stop being retried.
πPer-playlist VPN exit
Choose which playlists leave through a VPN. The server swaps exits automatically when a panel blocks one, holds the exit steady while you're watching, and runs its own checks over the same route.
πStatus page
One page shows live faults, the VPN state, and recent crashes (including the near misses), with buttons to dismiss or rotate each one.
βͺCatch-up / timeshift
Rewind live TV. For panels that support archive, the server serves a past broadcast on demand and you can seek through it with the arrow keys. It's banked to disk within your free space, so playback stays smooth when the source doesn't.
π¬Movies & Series catalog
One unified database indexes the VOD libraries of all your accounts, over 230,000 movies and 85,000 series, into a single poster catalog (categories, titles, seasons, episodes), searchable across every line, with a nightly refresh that skips what's already fresh and full per-profile gating.
π°TV guide
A full now/next guide from XMLTV sources, docked beside the channel list and rebuilt whenever the line-up changes. Off by default and switched on per playlist, so it only loads what you actually use.
π€Accounts, profiles & safe mode
Per-user logins with signed tokens. Each profile only sees the groups & content it's granted. Restricted content is never even sent to a device that shouldn't have it. Safe mode is on every launch.
π₯Master playlists & bulk import
Register M3U playlists, browse their groups before importing, and pull channels by country from IPTV-org, with scheduled auto-refresh and deletion-respecting re-imports.
πΎBackup & snapshots
One-click export/import of the whole configuration, plus automatic gzip snapshots (keeps the last 20) so you can roll back to any recent state.
π‘Live-reload push
When a channel you're watching changes, the server pushes a live event and the app restarts just that stream in place, with no full reload.
π°οΈResilience & edge relay
Apps cache the last-good list for when the server blinks. A tiny Cloudflare edge proxy lets the server reach IPTV panels an ISP actively blocks, with no rate-limiting.
The Desktop App
A Windows app with a TV-like interface for live channels and on-demand movies & series. Under the hood it plays through mpv, so the hard parts of streaming stay out of sight.
πGrouped library
A three-column layout splits Live TV from Movies & Series. Collapsible groups, search-as-you-type, drag-to-reorder, a hint showing which playlist a channel came from, and it resumes your last channel on launch.
π²Multi-view & mosaic
Watch up to four channels at once in a grid, or drop them wherever you like in a free mosaic. Click a tile for its audio, press F to send one tile fullscreen without breaking up the group.
ποΈmpv playback engine
Live, catch-up, and films all play through mpv. It decodes MPEG-2, VC-1, and interlaced feeds that browsers refuse, with no re-encoding, and closes streams properly when you leave, so an account slot is never held by a window you forgot about.
πAudio & subtitle tracks
Switch alternate audio tracks and toggle subtitles instantly, without reconnecting. Embedded VOD subtitle tracks are included.
πΏMovies & Series
A rich poster-grid catalog across all your accounts, with title / season / episode detail, favourites, a search overlay, real seeking, and per-title resume. Press Back over a film to pause it; Resume picks up exactly where you were.
βΊοΈRecording
Record any channel to disk (ffmpeg stream-copy, no quality loss). Recording survives token expiry, has a dedicated browser window, scheduled recordings, and custom filename templates.
πDRM playback
Widevine DASH and ClearKey channels play through Shaka, and RTΓ live works from anywhere because its manifest and rotating per-programme license resolve through the server's proxy.
ποΈIPTV & Stalker playback
Raw Xtream MPEG-TS plays through the server relay; MAC portals resolve per-connect; multi-audio TS streams get a proper track picker.
πCORS-neutral & hotlink-friendly
Strips restrictive CORS headers and injects the per-channel Referer/Origin gated CDNs expect, on the playlist, the AES keys, and the segments alike.
π₯οΈScreen-friendly
Keeps playing when the window is minimised, shows the real decoded resolution beside the channel name, and draws at the right size on mixed-DPI multi-monitor setups.
πAccounts & safe mode
Optional per-user login scopes the library to your profile; restricted content stays server-side invisible, and safe mode starts on every launch.
The Android App
A native Kotlin / Compose client of the same server, playing through mpv. Built for phones, tablets, and Android TV, with true feature parity.
πSame content, native UI
Grouped channel list with search and now-playing lines, plus the full Movies & Series poster catalog with season/episode detail, favourites, and resume. It launches straight into the last channel you watched and keeps a live picture on screen while you browse.
πΌοΈPiP & background playback
Keep watching in a floating Picture-in-Picture window or with the screen off.
πΊAndroid TV launcher
Behaves like a real TV app with full D-pad navigation, player controls within reach of the remote, and remote-friendly audio / subtitle pickers.
π²Multi-view
A 2Γ2 grid with per-tile audio, just like the desktop.
β±οΈPreemptive token renewal
A stall watchdog plus link refresh that fires before expiry, so playback doesn't hiccup on rotating tokens.
ποΈmpv playback engine
Everything plays through a built-in mpv engine with hardware decoding, so even 50fps channels stay perfectly in sync.
βͺCatch-up on the go
Rewind live into catch-up and watch films with the archive banked to the device's storage, sized to the free space you have.
πΆWatch from anywhere
Streams locked to a single IP are unlocked on the device itself, so you can connect from anywhere, over 5G on the go, not only on your home network.
Why it's more than a playlist
Every hard part of "just watching a stream" has been engineered away.
A personal-use system for streams you have the right to watch. DRM playback uses the platform's official Widevine licensing with your own account credentials. Nothing is bypassed.