Connect your own sources to search and play video sites in one personal player
Instead of switching between multiple video sites to find a specific title, you can view results from all sources in a single search. MoonTV is a personal player that connects video source addresses collected by the user, allowing direct playback in the browser and progress synchronization across multiple devices. It is not a finished app that works out of the box; it is closer to a blank canvas that requires you to fill in source addresses.
Filling the blank canvas with sources
When you deploy this repository, the app runs, but the list of playable videos is empty. You must manually enter video source addresses in the 'api_site' field on the admin screen to enable search and playback. These sources must follow the standard CMS V10 API format, and users are responsible for finding them themselves. Additionally, this project uses the CC BY-NC-SA 4.0 license, which prohibits commercial use, meaning it cannot be used for purposes other than personal learning or non-profit activities.
The flow from search to playback
When you enter a title in the search bar, it retrieves results simultaneously from multiple configured sources and displays them on a single screen. On the detail page, you can view information such as cast, year, and synopsis, and play the content directly in the browser using HLS.js and ArtPlayer. If you pause during playback, the last watched position is saved, allowing you to continue watching on another device. This record is stored in a database such as Kvrocks, Redis, or Upstash, and you can install it on your mobile home screen via PWA (Progressive Web App) to use it like a native app.
Deployment and data storage configuration
This project can only be deployed in a Docker-based environment. Using a cloud platform like Zeabur allows for one-click deployment that automatically sets up the database, while managing your own server requires modifying the Docker Compose file for deployment. You can choose one of Kvrocks, Redis, or Upstash for data storage, with Kvrocks recommended due to its lower risk of data loss. Even after deployment, if you used Zeabur, you must configure the domain settings to access it from a browser.
Things to check before use
This tool does not directly provide video content, and responsibility varies depending on the legal status of the external sources connected by the user. The README explicitly states that public sharing is prohibited and only personal use is allowed. In particular, service in the mainland China region is considered a personal action unrelated to the developers, and users bear full responsibility for any related legal risks. Therefore, you must set a strong password before deployment and be careful not to expose it to public networks. Additionally, this project explicitly prohibits promotion in specific regions or on specific platforms, so you should be careful not to violate this.