TAU-HOME.COM
LOADING

LibreTV: Next.js 15와 Docker로 1분 만에 구축하는 오픈소스 미디어 애그리게이터

Next.js 15, ArtPlayer, HLS 코어를 기반으로 멀티 VOD 검색과 M3U IPTV 스트리밍을 단일 웹 UI에 통합한 오픈소스 셀프호스팅 미디어 플랫폼 LibreTV 검증 및 배포 가이드

tau · 2026년 10월 17일

#LibreTV #Next.js #Docker #IPTV #셀프호스팅 #오픈소스

LibreTV: Next.js 15와 Docker로 1분 만에 구축하는 오픈소스 미디어 애그리게이터

오픈소스 개발 커뮤니티인 LibreSpark가 2026년 10월, Next.js 15와 Docker를 기반으로 개인용 비디오 스트리밍 사이트를 손쉽게 구축할 수 있는 셀프호스팅 미디어 애그리게이터 'LibreTV'를 공개했습니다. GNU AGPLv3 라이선스로 배포되는 이 프로젝트는 파편화된 다중 VOD 소스와 실시간 IPTV 스트림을 단일 웹 인터페이스로 통합하는 데 초점을 맞추었습니다.

LibreTV 오픈소스 미디어 애그리게이터 웹 UI 및 Docker 스트리밍 플랫폼 대시보드

이미지 출처: GitHub / LibreSpark

기존 셀프호스팅 미디어 서버 솔루션들이 대규모 로컬 스토리지 라이브러리 관리에 집중했던 것과 달리, LibreTV는 "1분 만에 영상 사이트 구축"이라는 슬로건처럼 외부 공개 소스를 효율적으로 취합·재생하는 경량 파서 및 통합 클라이언트로 설계되었습니다.

ArtPlayer·HLS 기반 재생 엔진과 시청 경험 최적화

LibreTV의 프론트엔드는 최신 Next.js 15(App Router), TypeScript, Tailwind CSS 기술 스택으로 구성되어 빠른 반응 속도와 깔끔한 모던 UI를 제공합니다.

재생 코어 엔진으로는 웹 미디어 플레이어인 ArtPlayer와 hls.js를 탑재하여 다음과 같은 실무적 시청 편의 기능을 완결형으로 지원합니다.

  • 광고 세그먼트 필터링: 스트림 소스에 포함된 불필요한 광고 구간을 자동으로 감지하고 건너뛰도록 처리합니다.
  • 연속 및 배속 재생: 다회차 에피소드를 시청할 때 자동으로 다음 편으로 이어지는 기능과 사용자 정의 재생 속도 조절을 지원합니다.
  • 에피소드 다운로드: 스트리밍 재생뿐만 아니라 필요한 회차를 TS 또는 MP4 파일로 로컬에 직접 내려받을 수 있는 다운로드 옵션을 제공합니다.
  • 초 단위 시청 기록 동기화: 브라우저 로컬 저장소인 IndexedDB를 활용해 사용자가 영상을 시청한 지점을 초 단위로 실시간 기록하며, 재접속 시 이전 시청 위치에서 즉시 이어보기가 가능합니다.

멀티 VOD 병렬 검색과 M3U·XMLTV EPG 실시간 IPTV 통합

LibreTV의 핵심 경쟁력은 외부의 다양한 미디어 소스 규격을 자동으로 해석하고 하나의 화면에 유기적으로 병합하는 애그리게이션 능력에 있습니다.

  • 멀티 VOD 수집 및 통합 카드: Apple CMS VOD 인터페이스와 TVBox 단일 창고 JSON 설정을 자동으로 파싱합니다. 사용자가 검색어를 입력하면 등록된 다중 수집처를 대상으로 병렬 검색을 수행하며, 동일한 작품의 여러 소스를 단일 메타데이터 카드로 통합 구성합니다. 각 소스별 헬스체크와 응답 속도를 실시간 측정해 최적의 재생 소스를 상단에 우선 배치합니다.
  • 실시간 IPTV 라이브 스트리밍: M3U 재생목록 파싱과 XMLTV 규격의 EPG(전자 프로그램 가이드)를 연동한 실시간 라이브 채널 스트리밍 화면(/live)을 지원합니다. 방송 편성표를 직관적으로 확인하며 채널을 전환할 수 있습니다.
  • 전용 장기 연결 프록시: 브라우저 환경에서 발생할 수 있는 CORS 제약과 스트림 불안정을 해소하기 위해 전용 장기 연결 프록시 엔드포인트(/api/live/stream)를 내장하여 안정적인 세션 유지를 돕습니다.

Docker 배포와 프로덕션 구성 시 필수 점검 사항

LibreTV는 컨테이너화가 완료되어 있어 Docker 환경에서 매우 간결하게 인스턴스를 구동할 수 있습니다. 공식 컨테이너 이미지(ghcr.io/librespark/libretv:latest 및 docker.io/bestzwei/libretv)가 제공되며, linux/amd64와 arm64 듀얼 아키텍처를 공식 지원합니다.

관리자 접근을 위한 PASSWORD 환경변수만 지정하면 Docker Compose를 통해 즉시 서비스를 시작할 수 있습니다. 다만 실제 환경에 배포할 때는 몇 가지 아키텍처적 제약과 보안 설정을 반드시 점검해야 합니다.

  • HTTPS 리버스 프록시 필수: LibreTV는 프로덕션 배포 환경에서 세션 쿠키에 Secure 플래그를 강제 적용합니다. 따라서 HTTP IP 주소로 직접 접속할 경우 브라우저가 보안 쿠키를 자동으로 폐기하여 로그인이 불가능합니다. 정상적인 인증을 위해서는 Nginx, Caddy, Cloudflare 등 리버스 프록시를 전면에 배치하고 유효한 SSL/TLS 인증서를 적용해 HTTPS 환경으로 접속해야 합니다.
  • 미디어 무호스팅 원칙: 프로젝트 자체는 영상 파일이나 방송 원본 스트림을 서버 내에 저장하거나 자체 호스팅하지 않는 순수 파서 겸 클라이언트입니다. 따라서 실제 서비스를 활용하려면 사용자가 유효한 외부 공개 M3U 주소나 VOD 소스 목록을 직접 설정에 등록해야 합니다.
  • 내부망 사설 스트림 SSRF 방어: 시스템 내부망을 겨냥한 위조 요청을 방지하기 위해 SSRF(Server-Side Request Forgery) 방어 메커니즘이 기본 활성화되어 있습니다. 홈랩이나 사설 로컬망 내부에 별도로 구축된 자작 IPTV 서버 스트림을 LibreTV로 연결하려면 LIVE_ALLOW_PRIVATE=1 환경변수를 명시적으로 활성화해야 합니다.

출처

Impact-Site-Verification: 9b3ebd10-6c45-44cf-a014-5b8c19b7b285