Docker series uses IPTVnator to build a web-based IPTV online playback platform

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://localhost: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://localhost:7333
Specify the backend address and port. If the backend and frontend are on the same host, localhost can be used when specifying addresses between the frontend and backend.
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://localhost: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:

image.png

Select Settings:
image.png

image.png

Add a Playlist

Here you can choose different ways to add a playlist: add from file, add from URL and add from text:

image.png

You can choose a method based on your actual situation. I searched the m3u8 of the live source on the Internet and tried it:
image.png

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:

image.png

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

The content of the blog is original. Please indicate the source when reprinting! For more blog articles, you can go toSitemapUnderstand. The RSS address of the blog is:https://blog.tangwudi.com/feed, welcome to subscribe; if necessary, you can joinTelegram GroupDiscuss the problem together.

Comments

  1. chris
    Windows Edge 131.0.0.0
    3 weeks ago
    2025-1-16 13:18:44

    when i go to web gui front end i add list and it sasy something about the backend not reachable now i have the backend url in front end and front end in back end oh im in docker unraid im not getting it sorry to bug

    • Owner
      chris
      Macintosh Chrome 131.0.0.0
      3 weeks ago
      2025-1-17 15:30:52

      Is it related to the backend address specified in the frontend configuration during deployment? When I deployed the frontend, the backend address I pointed to was the physical IP address of the host machine, as per the official instructions. However, I just checked the official docker-compose.yml, and it has now been unified to localhost:


      Show Image
      image.png

Send Comment Edit Comment


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠(ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ°Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
Emoticons
Emoji
Little Dinosaur
flower!
Previous
Next
       
error:
en_US
Spring Festival
hapiness