프로젝트 소개

OTT-play FOSS는 로컬 Rust HTTP 서버를 중심으로 구축된 IPTV/OTT 플레이어입니다. 스마트 TV(LG WebOS, Samsung Tizen, Panasonic, Sony), 셋톱박스(Infomir MAG, Dune HD, Enigma2, Android TV) 및 데스크톱 브라우저에서 실행됩니다. 재생은 HLS.js 및 Shaka Player를 통해 HLS, DASH 및 일반 HTTP 스트림을 지원하며, 치명적인 HLS 파싱 또는 네트워크 오류 시 소프트 라이브 재연결 기능을 제공합니다. 이 플레이어는 퍼지 채널 매칭, 타임시프트/캐치업, 더 조밀한 가이드 행, 프로그램 제목 검색 및 타이머 전 알림 기능이 포함된 XMLTV EPG를 제공합니다. 기타 기능으로는 자녀 보호 PIN이 적용된 멀티 리스트 즐겨찾기, JSON 형식의 설정 및 즐겨찾기 내보내기/가져오기, 계속 시청 아카이브 재개 북마크, M3U 플레이리스트, Xtream Codes API 및 Stalker 미들웨어 지원이 있습니다. 기기별 리모컨 키 매핑이 적용된 24가지 기기 유형과 21개 언어를 지원합니다. 웹훅 기반의 푸시 명령 시스템을 통해 플레이어는 10초마다 로컬 URL을 폴링합니다. 명령은 JSON 객체로 구성되며 팝업 메시지, 번호/이름/랜덤 선택을 통한 채널 전환 및 제공자 변경을 포함합니다. 기기 UUID를 통해 기기별 라우팅이 가능하며, 선택적 로컬 프록시를 사용하면 중앙 서버 없이 완전히 로컬한 자동화가 가능합니다. 원격 텍스트 입력(swop)은 TV와 휴대폰이 서로 다른 네트워크에 있을 때 Cloudflare Worker를 통해 휴대폰 키보드를 사용할 수 있으며, 이 워커는 기기 UUID의 허용 목록 등록이 필요합니다. 보안을 위해 중앙 서버의 웹훅 폴링 및 알림 엔드포인트는 비활성화되어 있으며, 신뢰할 수 있는 홈 네트워크에서는 로컬 프록시 사용이 권장됩니다. 디버그 지원은 URL 쿼리, localStorage, 윈도우 속성 또는 서버 설정 엔드포인트를 통해 선택적으로 활성화할 수 있습니다. 활성화 시 HUD를 통해 재생 세부 정보를 확인할 수 있습니다. 모바일 앱은 Capacitor를 사용하여 TypeScript 프론트엔드를 iOS 및 Android용으로 래핑합니다. Mode B 테스트를 위한 Tauri 데스크톱 및 Capacitor 기기 스모크 문서와 스크립트가 제공됩니다. 설치 패키지는 태그된 릴리스에 첨부되어 있습니다: macOS .dmg/.app.zip(서명되지 않음, Gatekeeper 격리 제거 단계 포함), Windows .msi/.exe, Linux AppImage/.deb/.rpm, AltStore/TestFlight/Xcode를 통한 사이드로딩용 iOS .ipa, 직접 설치 또는 ADB용 Android .apk가 제공됩니다. Docker 멀티 아키텍처 이미지(amd64/arm64)는 alvit/ottplay-foss로 게시되며, Synology DSM Docker와 같은 이전 glibc 호스트에서 실행될 수 있도록 musl/Alpine 기반으로 빌드되었습니다. 소스 빌드는 플레이어 번들을 위해 npm을, Rust 서버를 위해 cargo를 사용합니다. README에는 컴패니언, stream-proxy 헤더, 로고 동시성, XMLTV 캐시 새로고침, Mode A E2E 재생 경로, Capacitor 기기 및 Tauri 데스크톱을 위한 스모크 스크립트가 문서화되어 있습니다.