OpenSource-Hub

LibreTV

애플리케이션

LibreSpark/LibreTV

Next.js 기반 무료 영화/TV 통합 검색 및 온라인 시청 플랫폼

개요

LibreTV는 셀프 호스팅 영상 통합 검색 및 시청 플랫폼으로, Next.js 15와 TypeScript를 기반으로 구축되었으며, 재생 코어는 ArtPlayer + hls.js입니다. 다중 소스 병렬 검색, 동일 제목 영상의 소스 간 통합, 소스 전환 속도 테스트 및 재생 진행 상태 로컬 동기화를 지원합니다. 라이브 / IPTV 기능이 내장되어 있어 M3U 구독과 EPG 편성표를 파싱할 수 있으며, Docker 배포와 라이트/다크 듀얼 테마를 지원합니다.

README 미리보기

# LibreTV\n\nLibreTV Next.js 迁移版:免费在线视频聚合搜索与观看平台。基于 Next.js 15(App Router)+ TypeScript + Tailwind CSS,播放内核为 ArtPlayer + hls.js,支持亮暗双主题。\n\n> 🏠 **官网**:[LibreTV 官网](https://libretv.is-an.org/)\n>\n> 🌐 **演示站**:[tv.bagiinlink.eu.org](https://tv.bagiinlink.eu.org)(访问密码:`libretv`)\n>\n> 📖 **完整文档**:[文档首页](https://libretv.is-an.org/wiki/) · [架构](https://libretv.is-an.org/wiki/Architecture.html) · [部署](https://libretv.is-an.org/wiki/Deployment.html) · [配置](https://libretv.is-an.org/wiki/Configuration.html) · [数据源](https://libretv.is-an.org/wiki/Data-Sources.html) · [直播 / IPTV](https://libretv.is-an.org/wiki/Live-IPTV.html) · [首页推荐](https://libretv.is-an.org/wiki/Recommendations.html) · [播放器](https://libretv.is-an.org/wiki/Player.html) · [代理与安全](https://libretv.is-an.org/wiki/Proxy-Security.html) · [FAQ](https://libretv.is-an.org/wiki/FAQ.html)\n>\n\n\n  \n\n\n## 核心特性\n\n- **聚合搜索**:多采集站服务端并行搜索\n- **跨源同名聚合**:同名影片合并为一张卡片,展开即可比较和选择各来源\n- **HLS 播放**:ArtPlayer + hls.js,广告分片过滤、自动连播、倍速、快捷键、移动端长按 3 倍速\n- **直播 / IPTV**:M3U 订阅解析,`/live` 页面按分组浏览、搜索频道并站内播放(HLS + HTTP-FLV),支持 XMLTV 节目单(EPG)与频道收藏;直播流经专用长连接代理(`/api/live/stream`)转发\n- **进度同步**:播放进度与观看历史存于本机 IndexedDB,精确到秒的续播\n- **换源测速**:跨源搜索同名资源并测速排序,一键切换保留集数位置\n- **源测试与订阅**:一键探活点播源与直播源(支持批量测活);搜索时自动记录各源健康度,连续失败的源按阶梯时长自动停用(30 分钟 → 24 小时 → 长期),可一键恢复;订阅远程源列表(一份 LibreTV-SourceList JSON 可同时下发点播源与直播源,也可直接填 TVBOX 配置地址,自动导入其中可直接使用的接口),可导出分享\n- **首页推荐**:豆瓣(电影/剧集分类浏览)、Bangumi 新番放送表或影视榜单(豆瓣周榜 + 百度热播,经 60s API),设置中切换;均服务端直连 + 缓存,Bangumi/榜单免 key 免配置(`60S_API_BASE` 可指向自部署 60s 实例)\n- **PWA**:可安装到桌面 / 主屏幕,亮暗双主题无首屏闪烁\n\n## 部署\n\n### Docker(推荐)\n\n```bash\n# 在 .env 中设置 PASSWORD\necho "PASSWORD=your-password" > .env\n\n# 方式一:拉取发布镜像(零构建)\ndocker compose pull && docker compose up -d\n\n# 方式二:源码构建\ndocker compose up -d --build\n```\n\n### Docker Compose\n\n```yaml\nservices:\n  libretv:\n    image: ghcr.io/librespark/libretv:latest\n    container_name: libretv\n    restart: unless-stopped\n    ports:\n      - "8080:8080"\n    environment:\n      - PASSWORD=ch

FAQ (1)

문제 해결
http://server-ip:port로 접속할 때 올바른 비밀번호를 입력했는데도 로그인이 실패하는 이유는 무엇인가요?

프로덕션 모드에서는 세션 쿠키가 Secure 플래그와 함께 설정되므로 브라우저는 HTTPS 또는 localhost를 통해서만 쿠키를 저장합니다. http://server-ip:port로 앱에 접속하면 실제로는 로그인이 성공하지만 브라우저가 조용히 쿠키를 버리기 때문에 비밀번호가 틀린 것처럼 보입니다. 해결 방법: TLS를 적용한 리버스 프록시(예: Nginx, Caddy(도메인을 사용한 자동 HTTPS), Traefik) 뒤에 사이트를 배치하여 HTTPS로 서비스하거나, Cloudflare(무료 Tunnel/Proxy)를 사용하여 TLS를 종단하세요. 로컬 전용 접속의 경우 LAN IP 대신 http://localhost:port를 사용하면 되며, 이는 Secure 쿠키 제한에서 면제됩니다.

원본 Issue #922