Skip to content

A simple web application that can restream and synchonize IPTV streams using HLS & ffmpeg.

Notifications You must be signed in to change notification settings

antebrl/IPTV-Restream

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

78 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

IPTV StreamHub

A simple IPTV restream and synchronization (watch2gether) application with web frontend. Share your iptv playlist and watch it together with your friends.

✨ Features

Restreaming - Proxy your iptv streams through the backend.

Synchronization - The playback of the stream is perfectly synchronized for all viewers.

Channels - Add multiple iptv streams, you can switch between.

Live chat - chat with other viewers with randomized profile.

💡Use Cases

  • Connect with multiple Devices to 1 IPTV Stream, if your provider limits current devices.
  • Proxy all Requests through one IP.
    • Helps with CORS issues.
  • Synchronize IPTV streaming with multiple devices: Synchronized playback and channel selection.
  • Share your iptv and watch together with your friends.
    • The actual iptv stream-url is unvisible to them if you restream [upcomming feature]

🛠️ Architecture

Frontend

A simple React webpage that can stream iptv streams in hls-format. Provides synchronized playback by using a constant delay. Also supports multiple IPTV streams (channel selection) and a chat if using together with the backend.

Backend

A simple NodeJS web server that retrieves your IPTV stream, caches it, and converts it into an HLS stream, making it accessible via the web. Also supports multiple IPTV streams (channel selection).

🚀 Run

Run with Docker (Preferred)

Clone the repo

git clone https://github.com/antebrl/IPTV-Restream.git

Make sure to have docker up & running. Start with docker compose

docker compose up -d

Open http://localhost

Important

If a channel/playlist won't work, please try with restream through backend option enabled. This fixes most of the problems! It leads to longer initial loading times. If you don't need synchronization, turn it off in the ⚙️ or set the delay in the config.

Run components seperately

If you only need the restream functionality and want to use another iptv player (e.g. VLC), you may only run the backend.
If you only need the synchronization functionality, you may only run the frontend.

Be aware, that this'll require additional configuration/adaption and won't be officially supported. It is recommended to run the whole project as once.

Preview

Frontend Preview Add channel

FAQ & Common Mistakes

Error: Bind for 0.0.0.0:80 failed: port is already allocated

To fix this, change the port mapping in the docker-compose to X:80 e.g. 8080:80. Make also sure that port X is open in the firewall configuration if you want to expose the application.

Contribute & Contact

Feel free to open discussions and issues for any type of requests. Don't hesitate to contact me, if you have any problems with the setup.

If you like the project and want to support future development, please leave a ⭐. Stargazers repo roster for @antebrl/IPTV-Restream