Initial commit
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
# 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
|
||||
```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.
|
||||
Reference in New Issue
Block a user