[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fjxg44vx649ev":3},{"code":4,"message":5,"data":6,"timestamp":33},10000,"success",{"full_name":7,"position":8,"description":9,"language":10,"stars":11,"forks":12,"stars_gained":13,"age_days":14,"hn_threads":15,"one_liner":16,"summary_md":17,"topic":18,"github_topics":21,"license":29,"homepage":30,"updated_at":31,"history":32},"LibreSpark\u002FLibreTV",12,"一分钟搭建影视站，支持Docker等部署方式","TypeScript",21600,29992,2679,566,[],"Self-hosted search-and-play frontend that aggregates third-party video sources and IPTV playlists into one private streaming site.","## The problem\n\nPeople 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\u002FFLV player. It is a player and aggregator, not a content library.\n\n## What's different\n\nMost 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 \u002F 24-hour \u002F 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.\n\n## Who it's for\n\nSelf-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.\n\n## Cost of adoption\n\nNode 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.\n\n## Verdict\n\nThis 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.",{"slug":19,"name":20},"media","Media & Design",[22,23,24,25,26,27,28],"css","film","html","movie-web-app","movies-and-cinemas","nextjs","tv","AGPL-3.0","https:\u002F\u002Flibretv.is-an.org","2026-10-24T17:05:12Z",[],1792868445]