Contents
Preface
I am a little upset about the fact that I can only watch IPTV with various clients (although I have basically never watched it). What if I suddenly want to watch IPTV outside one day but I don’t have my mobile phone, iPad, or MacBook with me? Well, this possibility is too small. I mainly want to make a web version of IPTV playback solution so that anyone can watch my home telecom IPTV directly through the web page (there may be legal risks). So after searching for a long time, I found IPTVnator, a cross-platform IPTV player. Because it has a web version deployed through docker, I want to try whether the web version of this player can meet my small requirements.
IPTVnator Features:
- M3u and M3u8 playlist support
- Upload a playlist from the file system
- Adding a remote playlist via URL
- Playlist auto-update function
- Open a playlist from the file system
- Search Channels
- EPG support (TV Guide) and details
- TV Archives/Catch Up/Time Shift
- Group-based channel lists
- Save channel as favorite
- Global favorites from all playlists
- Support HTML video player or Video.js based player
- Internationalization, currently supports 7 languages (en, ru, de, ko, es, zh, fr)
- Set a custom User-Agent header for a playlist
- Refetch/auto-update playlist
- Light and dark themes
"M3u and M3u8 playlist support" and "EPG support (TV Guide) and detailed information" are both what I need, so I started the following scientific research journey.
deploy
IPTVnator consists of two parts: the front-end (external web end) and the back-end.
Backend deployment:
The backend docker run command is as follows:
docker run --name iptvnator-backend -d --restart=always \ -p 7333:3000 \ -e CLIENT_URL=http://localhost:4333 \ 4gray/iptvnator-backend:latest
Key parameter explanation:
-p 7333:3000
Map the host's port 7333 to the container's port 3000
`-e CLIENT_URL=http://localhost:4333
Specify the frontend address and port
Note: 4333 is the host mapping port configured in the front-end below. It needs to be modified according to the host IP and front-end mapping port configured in the actual environment. Because the front-end and back-end of this test environment are containers under the same host, localhost can be used for communication. If it is a different host container environment, please modify it according to the actual parameters of the front-end
Front-end deployment:
The front-end docker run command is as follows:
docker run --name iptvnator-web -d --restart=always --network=public-net \ -p 4333:80 \ -e BACKEND_URL=http://hostIP:7333 \ 4gray/iptvnator:latest
Key parameter explanation:
-p 4333:80
Map the host's port 4333 to the container's port 80
-e BACKEND_URL=http://host IP:7333
Specify the backend address and port. Note: The internal IP address of the host where the backend is located is configured here. As for why it is specified in this way, I am a little confused. I think it is to respect the official instructions.
The docker-compose.yml address on github is as follows:https://github.com/4gray/iptvnator/blob/electron/docker/docker-compose.yml
If you cannot open github, the specific content of docker-compose.yml is as follows:
version: '3' services: backend: image: 4gray/iptvnator-backend:latest ports: - "7333:3000" environment: - CLIENT_URL=http://localhost:4333 #this one should match with the address and port in frontend CLIENT_URL env frontend: image: 4gray/iptvnator:latest ports: - "4333:80" environment: - BACKEND_URL=http://192.168.172.67:7333 # this one should match with the address of the backend service
Initial configuration and use
Change the language to Chinese
Use http://host ip:4333 to access the front-end page and click the red box button on the right:
Select Settings:
Add a Playlist
Here you can choose different ways to add a playlist: add from file, add from URL and add from text:
You can choose a method based on your actual situation. I searched the m3u8 of the live source on the Internet and tried it:
in conclusion
IPTVnator is positioned as a cross-platform IPTV player, so it has clients for Mac, Windows, Linux, and Android. However, for me, there are too many local playback clients (VLC, MPV, APTV, etc.). What I really want is a web-based web player that supports channel lists and EPG, so that I can completely get rid of the constraints of the client, so I took a fancy to the web version of IPTVnator. However, in actual testing, in the domestic Internet environment, the playback effect of those IPTV live sources from the Internet is very unsatisfactory (the live source is originally unstable, not to mention that it may need science), and the most critical problem is that my original intention of building this was to play the m3u file of Chengdu Telecom IPTV (see the cause and effect:iQiyi Router Series realizes all-media playback of Telecom IPTV), which makes my full media playback solution truly perfect, but unfortunately, the two players that come with the system:
HTML5 Video Player and VideoJs Player cannot play the http address converted by udpxy proxy. The latest v15.0 version of the front end has two more options, MPV Player and VLS, which can be played by specifying the path of the two players installed locally. However, this is meaningless, so I might as well use the local player directly. In order to verify whether it is only the docker version that cannot play, I also directly installed the Mac version of the client, but the result still cannot play, so it is ruled out that it is only the docker version.
So I have to admit that this attempt did not achieve the effect I really wanted. I can only try again after the front-end is upgraded in the future.
IPTVnator provides an experience address, you can try it first:
IPTV experience site address