24,428
stars
31,124
forks
22
watchers
603
prs
330
issues
4
releases
19
discussions
README
LibreTV
LibreTV Next.js 迁移版:免费在线视频聚合搜索与观看平台。基于 Next.js 15(App Router)+ TypeScript + Tailwind CSS,播放内核为 ArtPlayer + hls.js,支持亮暗双主题。
🏠 官网:LibreTV 官网
🌐 演示站:tv.bagiinlink.eu.org(访问密码:libretv)
📖 完整文档:文档首页 · 架构 · 部署 · 配置 · 数据源 · 直播 / IPTV · 首页推荐 · 播放器 · 代理与安全 · FAQ
核心特性
- 聚合搜索:多采集站服务端并行搜索
- 跨源同名聚合:同名影片合并为一张卡片,展开即可比较和选择各来源
- HLS 播放:ArtPlayer + hls.js,广告分片过滤、跳过片段(片头/中段/片尾标记与自动跳过)、自动连播、倍速、快捷键、移动端长按 3 倍速
- 直播 / IPTV:M3U 订阅解析,/live 页面按分组浏览、搜索频道并站内播放(HLS + HTTP-FLV),支持 XMLTV 节目单(EPG)与频道收藏;直播流经专用长连接代理(/api/live/stream)转发
- 进度同步:播放进度与观看历史存于本机 IndexedDB,精确到秒的续播
- 换源测速:跨源搜索同名资源并测速排序,一键切换保留集数位置
- 源测试与订阅:一键探活点播源与直播源(支持批量测活);搜索时自动记录各源健康度,连续失败的源按阶梯时长自动停用(30 分钟 → 24 小时 → 长期),可一键恢复;订阅远程源列表(一份 LibreTV-SourceList JSON 可同时下发点播源与直播源,也可直接填 TVBOX 配置地址,自动导入其中可直接使用的接口),可导出分享
- 首页推荐:豆瓣(电影/剧集分类浏览)、Bangumi 新番放送表或影视榜单(豆瓣周榜 + 百度热播,经 60s API),设置中切换;均服务端直连 + 缓存,Bangumi/榜单免 key 免配置(60S_API_BASE 可指向自部署 60s 实例)
- PWA:可安装到桌面 / 主屏幕,亮暗双主题无首屏闪烁
部署
Docker(推荐)
bash
在 .env 中设置 PASSWORD
echo "PASSWORD=your-password" .env
方式一:拉取发布镜像(零构建)
docker compose pull && docker compose up -d
方式二:源码构建
docker compose up -d --build
Docker Compose
yaml
services:
libretv:
image: ghcr.io/librespark/libretv:latest
container_name: libretv
restart: unless-stopped
ports:
- "8080:8080"
environment:
- PASSWORD=change-me 必填:访问密码,务必修改
- PROXY_SECRET=your-secret 会话/代理签名密钥,多实例部署建议设置
- DEFAULT_SOURCES=[{"name":"示例源","url":"https://example.com/api.php/provide/vod"}]
- DEFAULT_LIVE_SOURCES=[{"name":"示例直播源","url":"https://example.com/list.m3u"}]
- DEFAULT_SUBSCRIPTIONS=["https://example.com/sources.json"] 预置订阅,自动导入点播源+直播源
- DEFAULT_RECOMMEND_SOURCE=douban 首页推荐数据源默认值(douban/bangumi/hot-list),仅对未主动选择过的用户生效
- LIVE_ALLOW_PRIVATE=1 自建内网 IPTV 源时开启
其余可选变量见下方环境变量表;仓库内的 docker-compose.yml 含完整注释版本(含 build: . 源码构建分支)。
bash
docker compose pull && docker compose up -d
💡 对外提供服务建议套上 HTTPS:登录密码在 POST body 中以明文传输,公网 HTTP 会被中间人看到,推荐用反向代理(Nginx / Caddy / Traefik)或 Cloudflare 终结 TLS。
登录本身不依赖 HTTPS:会话 cookie 的 Secure 标记按请求协议(x-forwarded-proto)自动推导,http://服务器IP:端口 也能正常登录,不会再出现"密码正确却无法登录"。需要强制指定时用 COOKIE_SECURE。
镜像发布在 GHCR 与 Docker Hub:ghcr.io/librespark/libretv 与 docker.io/bestzwei/libretv
(latest / 主.次 / 完整版本号三个 tag,linux/amd64 与 linux/arm64 双架构,
两个 registry 的镜像 digest 一致)。需要固定版本时在 .env 中设置
LIBRETV_IMAGE=ghcr.io/librespark/libretv:。
版本号以 package.json 为单一来源,部署后可用 /api/status 返回的 version 字段核对。详见部署文档。
免 Docker 运行(预构建包)
每个版本都会在 Releases 附一个 libretv--standalone.tar.gz 与对应的 SHA256SUMS,解压后直接用 Node 启动:
bash
版本号替换为 Releases 中的实际版本(也可用 /api/status 返回的 version 核对)
VER=""
mkdir -p libretv 包内没有顶层目录,目标目录必须先存在
tar -xzf "libretv-${VER}-standalone.tar.gz" -C libretv
cd libretv
PASSWORD=your-password PORT=8080 node server.js
不传 PORT 时监听 3000(standalone 的 server.js 默认值),与 Docker 镜像内的 8080 不同,按需显式指定即可。
包内是 Next.js standalone 产物(server.js + public + 静态资源 + 运行时依赖),与 CPU 架构无关,x86_64 / arm64Top issues
#971点播源问题1 comments · 2026-11-09#937[Bug] iOS 端播放器底部控制栏无法停留(一闪即隐),按钮来不及操作1 comments · 2026-10-17#977[Bug] 下载管理显示已完成,但视频未保存到手机,且无法重新保存0 comments · 2026-11-11#976[功能建议] 移动端增加下一集、便捷批量下载及离线播放0 comments · 2026-11-11#970[功能建议] 支持按片尾时长跳过,适配每集总时长不同的剧集0 comments · 2026-11-09#969推荐内容加载失败,且任何点播源都超时0 comments · 2026-11-09#965播放时底部细进度条无法隐藏0 comments · 2026-11-07#952(求助) 請問大神們為何我安裝在平板的Libre顯示不了图片?0 comments · 2026-10-23
Discussions
#972建议增加可选的跨设备观看历史和续播进度同步0 comments · 2026-11-10#958我也参考大佬项目做了个安卓TV版,支持tvbox的直播源有兴趣的来探讨一下0 comments · 2026-11-04#940更新3 comments · 2026-10-19#933I developed your project into a software0 comments · 2026-10-16#839玩客云pro armbian docker部署后出现的问题0 comments · 2025-08-06#796support PinYin search or not0 comments · 2025-07-28#789大家直接用docker部署能行吗?我用了docker加速器也还是不行啊1 comments · 2025-07-25#747Norton 顯示網路釣魚0 comments · 2025-07-13
Latest release
v2.22.0 v2.22.0 2026-11-08获取方式 Docker(多架构 linux/amd64 / linux/arm64) bash docker pull docker.io/bestzwei/libretv:2.22.0 docker pull ghcr.io/librespark/libretv:2.22.0 两个 registry 的镜像内容一致(同一组 digest),latest 也指向本版本。 免 Docker(下方附件,Node 18+) bash sha256sum -c SHA256SUMS tar -xzf libretv-2.22.0-standalone.tar.gz -C libretv cd libretv && PASSWORD=your-password PORT=8080 node server.js 预构建包与 CPU 架构无关(x86_64 / arm64 / armv7),环境变量与 Docker 部署一致。 镜像由 docker-publish 工作流在同一 tag 上构建,刚发布时可能还要 5–10 分钟才可拉取。 变更 完整对比:https://github.com/LibreSpark/LibreTV/compare/v2.21.2...v2.22.0