직접 소스를 연결해 여러 영상 사이트를 한 곳에서 검색하고 재생하는 개인용 플레이어
여러 영상 사이트를 오가며 원하는 작품을 찾는 대신, 한 번의 검색으로 모든 소스의 결과를 모아볼 수 있습니다. MoonTV는 사용자가 직접 수집한 영상 소스 주소를 연결해, 브라우저에서 바로 재생하고 진행 상황을 여러 기기에서 동기화하는 개인용 플레이어입니다. 설치만 하면 되는 완성된 앱이 아니라, 소스 주소를 채워 넣어야 하는 빈 캔버스에 가깝습니다.
빈 캔버스에 소스를 채우는 방식
이 저장소를 배포하면 앱은 실행되지만, 재생할 수 있는 영상 목록은 비어 있습니다. 관리 화면에서 'api_site' 항목에 영상 소스 주소를 직접 입력해야만 검색과 재생이 가능합니다. 이 소스는 표준적인 애플 CMS V10 API 형식을 따르는 사이트여야 하며, 사용자가 스스로 소스를 찾아야 합니다. 또한, 이 프로젝트는 상업적 이용을 금지하는 CC BY-NC-SA 4.0 라이선스를 적용하고 있어, 개인 학습이나 비영리 목적 외에는 사용할 수 없습니다.
검색부터 재생까지의 흐름
검색창에 제목을 입력하면, 설정해 둔 여러 소스에서 동시에 결과를 가져와 한 화면에 보여줍니다. 상세 페이지에서는 출연진, 연도, 줄거리 등 정보를 확인하고, HLS.js와 ArtPlayer를 이용해 브라우저에서 바로 재생합니다. 재생 중 멈추면, 마지막까지 본 위치가 저장되어 다른 기기에서 이어서 볼 수 있습니다. 이 기록은 Kvrocks, Redis, 또는 Upstash와 같은 데이터베이스에 저장되며, PWA(Progressive Web App)를 통해 모바일 홈 화면에 설치해 네이티브 앱처럼 사용할 수도 있습니다.
배포와 데이터 저장 설정
이 프로젝트는 Docker 기반 환경에서만 배포할 수 있습니다. Zeabur 같은 클라우드 플랫폼을 이용하면 데이터베이스까지 자동으로 설정해 주는 원클릭 배포가 가능하며, 직접 서버를 관리한다면 Docker Compose 파일을 수정해 배포합니다. 데이터 저장 방식은 Kvrocks, Redis, Upstash 중 하나를 선택할 수 있는데, Kvrocks가 데이터 유실 위험이 적어 권장됩니다. 배포 후에도 Zeabur를 사용했다면 도메인 설정을 반드시 해야 브라우저에서 접속할 수 있습니다.
사용 전 반드시 확인해야 할 사항
이 도구는 영상 콘텐츠를 직접 제공하지 않으며, 사용자가 연결한 외부 소스의 법적 상태에 따라 책임이 달라집니다. README는 공개 공유를 금지하고, 개인 사용만 허용한다고 명시하고 있습니다. 특히 중국 대륙 지역에서의 서비스는 개발자와 무관한 개인 행위로 간주하며, 관련 법적 리스크는 사용자가 전적으로 부담합니다. 따라서 배포 전에는 반드시 강력한 비밀번호를 설정하고, 공개 네트워크에 노출하지 않도록 주의해야 합니다. 또한, 이 프로젝트는 특정 지역이나 플랫폼에서의 홍보를 명시적으로 금지하고 있으므로, 이를 위반하지 않도록 유의해야 합니다.