LibreSpark/LibreTV
Self-hosted search-and-play frontend that aggregates third-party video sources and IPTV playlists into one private streaming site.
The problem
People who maintain a private media setup end up juggling a handful of Apple CMS collection APIs and M3U playlists, each with its own search box, dead links and inconsistent playback. LibreTV puts a single Next.js frontend in front of those sources: one search across all of them, merged results, and an in-browser HLS/FLV player. It is a player and aggregator, not a content library.
What's different
Most alternatives in this space are either TVBOX-style Android clients or bare M3U players like VLC and PotPlayer. LibreTV is a server-rendered web app with a password gate, so one deployment serves phones, TVs and desktops through a browser. The parts that actually matter are operational rather than cosmetic: results for the same title from different sources collapse into one card so you can compare and switch sources without losing your episode position; sources are health-checked automatically and failing ones are disabled on a 30-minute / 24-hour / long-term ladder; and subscriptions accept both its own JSON format and TVBOX configs, so you can reuse lists you already have. Live TV with EPG and a dedicated long-connection stream proxy is included in the same app rather than bolted on.
Who it's for
Self-hosters who already run Docker, have a reverse proxy and are comfortable curating their own source lists. It fits a household or a small group behind a shared password. Skip it if you want something that works out of the box with content included — the project deliberately ships no channels or sources, and you must supply legal ones yourself. Skip it too if you need multi-user accounts, parental controls or transcoding; the README describes a single shared password and there is no sign of per-user management.
Cost of adoption
Node 18+ or Docker is required. Deployment is a compose pull plus a required PASSWORD environment variable; the README also offers a standalone tarball for ARM routers where Docker is unavailable. The main risks are legal and operational, not technical: the content's legality rests entirely with the third-party sources you configure, and the README itself flags that the login password travels in plaintext over HTTP unless you terminate TLS in front. Persistence is browser-local IndexedDB, so watch history does not follow you across devices. The project is AGPL-3.0, which matters if you plan to modify and host it publicly.
Verdict
This is a young project — created in April 2025, roughly 18 months old at the time of the tracked data — that is nonetheless getting serious attention, with about 2,679 stars added in a single week and a #12 spot on the TypeScript weekly board. That combination of a very high fork-to-star ratio and a recent spike usually means people are deploying it, not just starring it, which is a better signal than raw stars. The README is unusually thorough for a project this age, covering SSRF protections, cookie flags and source-health policy, so the maintainers are thinking about operations. It is still a fast-moving codebase with a single shared password and no content of its own — treat it as infrastructure you must feed and legally vet, not a turnkey streaming service.
Written by AI from the project's README, updated October 24, 2026. The project's own docs are the source of truth.