It seems many people are unaware of the tvhProxy option to view IPTV natively in Plex. Personally I've found that this is the best option (of Emby or unofficial Plex channels) and will get even better once Plex implements their new grid EPG. The biggest reason I prefer this route is that Plex provides it's own EPG data through Gracenote. Every single IPTV provider I've used (the top 5 or so) have had issues with EPG data being incorrect or missing entirely. Not to mention the fact I'm already using Plex for the majority of my media consumption already nor the fact that Plex can record and automatically remove commercials!
There are two pieces of software you'll need to install:
tvheadend - Sadly I don't believe it is possible to install this on Windows. However there are packages for Debian, Ubuntu, Fedora and CentOS. It was as easy as "apt install tvheadend" for me in Ubuntu.
tvhProxy - This is a fairly simple python script that emulates a HDHomeRun for Plex to find. Just git clone the repo and cp the startup script like the readme shows. You'll need to edit tvhProxy.py to contain the URL including username and password to your tvheadend installation . Make sure you start the service before continuing the guide!
The most difficult part to figure out was tvheadend. It is extremely robust, but the settings are overwhelming with the terminology and options available. Once you have everything installed you should be able to get to your tvheadend configuration panel by going to the URL.
Navigate to Configuration -> DVB Inputs -> Networks -> Add .
Select "IPTV Automatic Network"
- Enter your provider name (can be anything you want)
- Enter the maximum streams your IPTV provider gives you. Generally this is 1 unless you pay for more. Vaders provides 5.
- Enter your m3u URL here.
- Uncheck "Scan after creation". We don't want tvheadend to try to access all 2000 channels.
- Skip startup scan. Again we don't want it to tune to each channel every time tvheadend starts.
- Change the Service ID to 1. This will create a service for each channel.
- Click create
Now we get to create our channel lineup. I would suggest mimicking a local cable or satellite provider. This will make assigning EPG information easier when we add this into Plex.
Navigate to Configuration -> Channel / EPG -> Channels . Click Add.
- Name the channel (preferably mimic a local provider's abbreviation)
- Number the channel (preferably mimic a local provider's number)
- Select the channel from your available services
When you're done it should look something like this . I went a step further an have an OTA for off air locals, but that is for another guide entirely. If you are in the US you may notice that my channel names and numbers match DirecTV. As a quick test you should be able to select the play button on the far left of these channels. This will download a file with a gibberish name. If you open this file in VLC it should play. If it does you've almost to the finish line!
Now navigate to your Plex server settings. Go to Live TV & DVR. Click Set Up Plex DVR . Plex should automatically detect tvhProxy, if not select "Don't see your device? Enter its network address manually." and enter the IP address and port of your server. It should be something like "192.168.1.50:5004". Press continue.
If everything worked correctly Plex should see your channel lineup you created earlier. Select your country and click Continue .
I'm not sure how this works in other countries, but enter your postal code and click continue .
If you followed a local provider this next step should be super easy. Select that provider from the drop down and Plex should automatically map the EPG to your channel lineup . Otherwise go through and manually map the EPG channels to your channel lineup. Once you are done click continue.
And that's really about it. You may want to go into the settings for your tuner and change the quality from Original to High Quality (30fps limit) . This may force transcoding when it's not necessary, but it seems to alleviate a bug I was having where 60fps channels were causing Plex Server to crash.
Once the EPG data is finished downloading you should be able to go into your Program Guide and see all of your channels listed . According to a forum post by one of the Plex devs they are hoping to have the grid EPG we are all use to out sometime Q1 of this year.
If you have any questions I'd be happy to try to answer them. Hope someone finds this useful!
Definitely posting for future sadly I'll have to convert my windows plex server to Linux :(