101 lines
3.3 KiB
Markdown
101 lines
3.3 KiB
Markdown
# NodeCast TV
|
|
|
|
A modern, web-based IPTV player featuring Live TV, EPG, Movies (VOD), and Series support. Built with performance and user experience in mind.
|
|
|
|
## Features
|
|
|
|
- **📺 Live TV**: Fast channel zapping, category grouping, and search.
|
|
- **📅 TV Guide (EPG)**: Interactive grid guide with 24h timeline, search, and dynamic resizing.
|
|
- **🎬 VOD Support**: Dedicated sections for Movies and TV Series with rich metadata, posters, and seasonal episode lists.
|
|
- **❤️ Favorites System**: Unified favorites for channels, movies, and series with instant synchronization.
|
|
- **⚡ High Performance**: Optimized for large playlists (7000+ channels) using virtual scrolling and batch rendering.
|
|
- **⚙️ Management**:
|
|
- Support for Xtream Codes and M3U playlists.
|
|
- Manage hidden content categories.
|
|
- Playback preferences (volume memory, auto-play).
|
|
- **🐳 Docker Ready**: Easy deployment containerization.
|
|
|
|
## Getting Started
|
|
|
|
### Prerequisites
|
|
|
|
- Node.js (v14 or higher)
|
|
- npm
|
|
|
|
### Installation
|
|
|
|
1. Clone the repository:
|
|
```bash
|
|
git clone https://github.com/yourusername/nodecast-tv.git
|
|
cd nodecast-tv
|
|
```
|
|
|
|
2. Install dependencies:
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
3. Start the development server:
|
|
```bash
|
|
npm run dev
|
|
```
|
|
|
|
4. Open your browser at `http://localhost:3000`.
|
|
|
|
### Docker Deployment
|
|
|
|
Build and run the container using Docker Compose:
|
|
|
|
```bash
|
|
docker-compose up -d --build
|
|
```
|
|
|
|
The application will be available at `http://localhost:3000`.
|
|
|
|
## Technology Stack
|
|
|
|
- **Backend**: Node.js, Express
|
|
- **Frontend**: Vanilla JavaScript (ES6+), CSS3
|
|
- **Database**: JSON-based local storage (LowDB style)
|
|
- **Streaming**: HLS.js for stream playback
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
nodecast-tv/
|
|
├── public/ # Frontend assets
|
|
│ ├── css/ # Stylesheets
|
|
│ ├── js/ # Client-side logic
|
|
│ │ ├── components/ # UI Components (ChannelList, EpgGuide, etc.)
|
|
│ │ ├── pages/ # Page Controllers (Movies, Series, etc.)
|
|
│ │ └── api.js # API Client
|
|
│ └── index.html # Main entry point
|
|
├── server/ # Backend server
|
|
│ ├── routes/ # API Endpoints
|
|
│ ├── services/ # Playlist parsers & logic
|
|
│ └── db.js # Data persistence layer
|
|
└── data/ # Persistent storage (playlists, settings)
|
|
```
|
|
|
|
## Usage
|
|
|
|
1. Go to **Settings** -> **Content Sources**.
|
|
2. Add your IPTV provider details (Xtream Codes or M3U URL).
|
|
3. Click "Refresh Sources".
|
|
4. Navigate to **Live TV**, **Movies**, or **Series** to browse your content.
|
|
|
|
## License
|
|
|
|
This project is licensed under the **Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0)** license.
|
|
|
|
You are free to:
|
|
- **Share** — copy and redistribute the material in any medium or format
|
|
- **Adapt** — remix, transform, and build upon the material
|
|
|
|
Under the following terms:
|
|
- **Attribution** — You must give appropriate credit.
|
|
- **NonCommercial** — You may not use the material for commercial purposes.
|
|
- **ShareAlike** — If you remix, transform, or build upon the material, you must distribute your contributions under the same license as the original.
|
|
|
|
See the [LICENSE](LICENSE) file for details.
|