Wouldn't it be wonderful if Plex, your all-in-one media server, were also able to play IPTV channels? Believe it or not, this is still possible in 2021 and this Plex IPTV guide will show you how.
Plex is an awesome media server, which is why it is part of my smart home setup. But can one watch IPTV on Plex? [Read: Plex vs Kodi β The Ultimate Comparison Guide for Beginners]
Note: This guide only works with IPTV services that provide an m3u playlist.
IPTV has been growing in popularity along with other streaming services due to the cord-cutting trend. The increasing cost of traditional TV-watching methods and the ability to watch on-demand content with streaming services are the primary reasons for this trend. [Read: Plex vs Emby vs Kodi vs Jellyfin for IPTV]
But many people still love the traditional format and IPTV services give them that at a lower cost.
What is IPTV?
In simple terms, IPTV (Internet Protocol Television) refers to the content televised through the internet as opposed to traditional methods (cable, OTA, or satellite). Good examples include Netflix, Hulu, etc. But there are several illegitimate IPTV services that offer 1000s of live TV channels a very low price.
Typically, IPTV subscriptions cost significantly lower than cable or satellite.
Table of Contents
Some IPTV services offer as many as 5000 or more Live TV channels from around the world for only $20 (or less) per month. There are even some free (but unreliable) ones.
Due to this reason, hundreds of thousands of customers are investing in IPTV services and IPTV boxes that come preloaded with relevant apps.
But you do not really need a separate IPTV box, when you can watch IPTV on Plex. [Read: 10 Best Plex Client Devices [2022] β STUTTER-free Streaming]
Does Plex work with IPTV?
Yes it still does (as on January 2020). But IPTV on Plex does not work as well as it used to before 2019.
Until about mid 2019, it was possible to watch IPTV on Plex using plugins. A Plex IPTV plugin, such as this one, reads live streams from an IPTV m3u file and passes them to Plex for playing. This allowed one to watch IPTV in Plex. [Read: 5 Reasons to use Plex instead of Kodi and 5 reasons not to]
These Plex IPTV plugins were also able to process the 100s or 1000s of channels in the m3u file and present them in a user-friendly manner to scroll and select IPTV channels to play.
Why is my Plex IPTV Plugin Not working?
September 2018 came and Plex announced the killing of plug-ins feature. This change would not allow IPTV plugins (or any plugins for that matter) to control what is played on Plex.
But this change is quite understandable as Plex's strategy became clear. Questionable 10 Best Plex Unofficial Channels 2017: Movies, TV Shows, Live TV would directly conflict with Plex's goal to stream ad-supported content and make paid channels and rentals available.
Be the 1 in 200,000. Help us sustain what we do.Join Us (starting from just $1.67/month)
Are there better alternatives for IPTV than Plex?
Plex is a great media server. But frankly, Plex's support for TV tuners and Live TV sucks. Kodi is a great alternative but it is not a media server.
Emby's Live TV feature is significantly better without the channel limitation of 480 that Plex has. A premium subscription is required to be able to access the Live TV feature on Emby [Read: Plex vs Emby: A Comprehensive Comparison]
Jellyfin, a new open-source alternative to Plex, performed way better in my testing than Plex for IPTV.
Like Emby, Jellyfin also has no limit on the number of channels. But unlike Emby, Jellyfin requires no subscription. With Emby and Jellyfin, you can completely circumvent xTeVe or TellyTv and use the m3u and EPG provided by your IPTV service directly.
With the recent changes in Plex's strategy, Jellyfin has seen an influx of several new users. This, in turn, has resulted in more contributors and active development.
How to watch IPTV in Plex?
Because of the changes described above most of the existing Plex IPTV guides currently available on the internet won't work. These how-tos are based on IPTV and M3U plugins, which are not supported by Plex anymore.
But Plex still allows the use of TV tuners. For example, one could use a SiliconDust HDHomeRun tuner to watch OTA channels on Plex.
Leveraging this TV tuner feature, it is possible to process IPTV m3u feeds and present them as TV channels from a hardware tuner. This is exactly what xTeVe and TellyTV do, both of which are free and open-source.
What is xTeVe / TellyTv?
In short, xTeVe and TellyTV are IPTV proxies. They allow you to watch IPTV on Plex and other media servers (Jellyfin, Emby, etc.). In addition, you will also be able use Plex's built-in DVR function.
xTeVe vs TellyTv
At the time of writing this Plex IPTV guide, xTeVe seems more developed and polished and that is what I will recommend. xTeVe has several features as listed here. But the unique features include a web interface for configuration and management, channel mapping, channel editing, and more.
TellyTv is working on version 1.5 which is supposed to include a web interface among other improvements. But at this point, xTeVe appears to be better and easier.
You only need one (xTeVe or TellyTv). But below, I am providing instructions to install and configure both.
Step 1. Requirements for Plex IPTV
Before you dive into this Plex IPTV guide, make sure you have the following requirements:
- IPTV account - Paid subscription recommended. Free ones may work but are not reliable.
- XML-TV EPG source - This is optional. Some paid IPTV providers also provide a URL for EPG data.
- Plex Media Server with Plex Pass so you have the LiveTV and DVR feature.
- Direct m3u file - Most paid IPTV providers supply this. This m3u file contains direct link to streams (ideally to TS streams). Nested m3u files will not work at this point. For more details, check TellyTv's wiki.
- XML TV Guide - Plex's built-in EPG service will only work with known geo and specific TV providers (this option will rarely work). Most paid IPTV services supply this in the form of a URL (these are typically incomplete). The best ones are the paid service such as iptv-epg.com or xtream-editor.com.
Another good tool to know is a m3u playlist editor. Two good examples are xtream-editor.com (paid) and m3u4u.com (free).
What is a m3u playlist editor?
A playlist editor allows you to create, edit, and sort 3 m3u playlists. What this means is that you can trim channels, categories them in to groups, and add missing EPG data before making it available to Plex for IPTV.
Step 2. How to Install xTeVe or TellyTv?
If you already have a Docker setup, then adding xTeVe or TellyTv to it is quite simple. If you are just getting started with Docker, then I strongly recommend my Docker Media server guide.
Having Docker and Docker Compose up and running is one additional requirement before we move forward with Plex IPTV setup. My GitHub repo has all my latest docker-compose files.
Step 2a. How to Install xTeVe?
xTeVe is available for multiple platforms. In this post, I will show you the Docker method. For other methods, download xTeVe from here and refer to xTeVe Wiki on GitHub.
Step 2a.1. Setup xTeVe with Docker and Docker Compose
Here is the Docker Compose snippet to use to install xTeVe using Docker.
# xTeve - IPTV proxy for Plex xteve: image: alturismo/xteve container_name: xteve hostname: xteve restart: unless-stopped networks: - default ports: - "34400:34400" - "1901:1900" #1900 used by Plex environment: TZ: ${TZ} volumes: - ${USERDIR}/docker/xteve:/config:rw - /dev/shm:/tmp/xteve
xTeVe web interface should be available at http://LAN-IP:34400/web/. If you have Traefik Reverse Proxy and Google OAuth, then check my GitHub repo for the full docker-compose.
Note that you have to have ${TZ} and ${USERDIR} defined as explained in my Docker media server guide.
Step 2a.2. Start xTeve
Upon successful completion of above step, if you start the xTeVe container and check the docker logs, you should see something like this.
Step 2a.3. Configure xTeVe for Plex IPTV
Access xTeVe web interface to start the configuration process. The web-based configuration makes xTeVe so much better than TellyTv (at this time).
First enter the number of tuners. This should match the number of concurrent streams allowed by your IPTV provider.
In the next screen, choose XEPG for EPG Source, as shown below.
Next, enter the URL for your m3u playlist. This should be available from your IPTV provider.
Then enter the URL for XML Electronic Program Guide data. This again should be available from your IPTV provider.
Once that is done, the initial configuration is done and you should be taken to xTeVe's web interface. You will notice that XEPG Channels as 0 at the top (see the screenshot below). This is because the current number of channels is above 480 (Plex limit). So none will be available in Plex. You will need to apply Filters to reduce the number of channels and bring it down to less than 480.
Be the 1 in 200,000. Help us sustain what we do.Join Us (starting from just $1.67/month)
Step 2a.4. Create xTeVe Filters
Go to Filter and click on New to create a new filter, as shown below.
In the following screen, you may choose either of the options. But I am going to choose M3U: Group Title so I can filter channels based on the group titles provided by the IPTV Service.
Next, add IPTV channel filter parameters. An example of filtering ABC Local Networks is shown below. This will result in ABC stations from several USA locations. If you want to filter only your location station, then use the Include section to add your city's name. Hit Save and continue.
You should now see the number of available channels at the top of the screen, as highlighted below. The above filter resulted in about 20 Local ABC stations.
Next, go to Mapping and go through the list. Some stations have incomplete information (highlighted in Red). These stations will not be available on Plex. If an unavailable channel is import to you, you may edit them as described in xTeVe wiki to make them available on Plex.
Hit Save and you are done installating and configuring xTeve for Plex IPTV viewing.
Recommended HTPC / Home Server Builds:
- Best Home Theater PC Build 2017 to do it all (Plex, Kodi, NAS, Gaming)
- Best Emby Server builds 2018 β Pre-built and DIY options
- Medium Budget 4K HTPC Build 2017 for Kodi, Plex and Gaming
- Cheap 4K HTPC Build for Kodi, OpenELEC, and LibreELEC 2017
- Low Power Home Server Build 2017 for Network File and Media Storage
- Best HTPC for Kodi with 4K on a Medium Budget 2017 (~$400)
- Energy efficient budget HTPC-NAS combo build 2016
Step 2b. How to Install TellyTV?
TellyTV itself needs no installation. All you need to do is download and extract the files. However, installation is not as simple as that of xTeve. Docker method is shown below. Refer to TellyTv Wiki for other installation methods.
Step 2b.1. Setup TellyTv with Docker and Docker Compose
Here is the Docker Compose snippet to use to install TellyTv using Docker:
# Telly Tv- IPTV proxy for Plex tellytv: image: tellytv/telly:dev-ffmpeg container_name: tellytv hostname: tellytv ports: - "1902:1900/udp" # Plex uses 1900 environment: - TZ=${TZ} network_mode: host volumes: - ${USERDIR}/docker/telly/telly.config.toml:/etc/telly/telly.config.toml restart: unless-stopped
The dev-ffmpeg build has Telly 1.1, which supports filtering (discussed later) and includes ffmpeg dependency. Note that you have to have ${TZ} and ${USERDIR} defined as explained in my Docker media server guide.
In addition, you will have to create and edit telly.config.toml file before starting TellyTv will work to provide IPTV channels on Plex.
Save the docker-compose file and proceed to the next step.
Step 2b.2. Create and Edit telly.config.toml file
A detailed walkthrough for creating and editing the telly.config.toml file is available here. I am providing a summary below.
To create the telly.config.toml file on Linux, navigate to ${USERDIR}/docker/telly/ and use the following command:
curl -fLO https://github.com/tellytv/telly/wiki/files/examples/telly.config.toml
Alternatively, you can manually create the file inside ${USERDIR}/docker/telly/ and copy-paste the example config.toml contents from here.
Step 2b.3. Editing telly.config.toml file
Again, refer to the wiki page linked above for details on editing the config file. Here are all the things that need to be edited.
- streams: Set this to the number of maximum streams your IPTV provider allows.
- Base-Address: Replace 0.0.0.0 with the IP address of the machine running TellyTv.
- Name: Set it to anything you like.
- Provider: Some have built-in support (check Wiki). For other services, use "Custom".
- M3U: Your m3u file URL from the provider.
- EPG: Your link to the XML EPG file from the provider.
- Filter: This is very important. Read about filtering here. Apply filters so you have less than 480 channels (Plex limit).
As you can see, there is a limit of 480 channels. TellyTv container will error out and stop if the m3u list has more than 480 channels. However, most IPTV providers have well over 480 channels. Hence why filtering out all the unwanted channels is very important.
This is not a TellyTv problem. Plex does not behave well with over 480 channels. There are multiple ways to trim the list down to less than 480 channels. They are discussed here. We are going to use the filtering method to only select the channels or groups we like.
Surfshark VPN Exclusive Offer - 82% off ($2.39/month):
♦ Hide your browsing (no logs), Anonymize Streaming and Downloads
♦ Wireguard Protocol support for VPN.
♦ Circumvent Geo/Country Restrictions and access worldwide content
♦ Works on Windows, Mac, Linux, Android, iOS, Router, and more
♦ 1 TB Encrypted Storage
♦ Money back guarantee - Sign Up Now
Here is an example telly.config.toml:
# THIS SECTION IS REQUIRED ######################################################################## [Discovery] # most likely you won't need to change anything here Device-Auth = "telly123" # These settings are all related to how telly identifies Device-ID = "12345678" # itself to Plex. Device-UUID = "" Device-Firmware-Name = "hdhomeruntc_atsc" Device-Firmware-Version = "20150826" Device-Friendly-Name = "tellytv" Device-Manufacturer = "Silicondust" Device-Model-Number = "HDTC-2US" SSDP = true # THIS SECTION IS REQUIRED ######################################################################## [IPTV] Streams = 1 Starting-Channel = 10000 XMLTV-Channels = true FFMpeg = true # THIS SECTION IS REQUIRED ######################################################################## [Log] Level = "info" Requests = true # THIS SECTION IS REQUIRED ######################################################################## [Web] Base-Address = "192.168.1.90:6077" Listen-Address = "0.0.0.0:6077" [[Source]] Name = "Beast" Provider = "Custom" M3U = "http://totalpackage.vodiptv.org:83/get.php?username=REDACTED&password=REDACTED&type=m3u_plus&output=ts" EPG = "http://totalpackage.vodiptv.org:83/xmltv.php?username=REDACTED&password=REDACTED&type=m3u&output=ts" Filter = "ABC LOCAL NETWORKS|CBS LOCAL NETWORKS" FilterKey = "group-title" FilterRaw = false Sort = "group-title" # END TELLY CONFIG ###############################################################################
Notice that the username and password are REDACTED from the links. In addition, "ABC LOCAL NETWORKS" and "CBS LOCAL NETWORKS" are filtered resulting in only about 73 channels. Check TellyTv's Wiki on filtering to learn more.
Step 2b.4. Start TellyTv
Upon successful completion of this step, if you start the TellyTv container and check the docker logs, you should see something like this.
Step 3. Configure IPTV on Plex
Now that xTeVe / TellyTv is up and running let's move on to configuring IPTV on Plex. So let's go ahead and do that.
Go to Live TV & DVR in Plex server settings and click on SET UP PLEX DVR as shown below.
In the next screen, if the turner is not automatically found, click on Enter its network address manually... and enter the LAN IP address and port of the machine running TellyTv. In the example below, it is 192.168.1.90:34400 (for TellyTv, use port 6077 instead of 34400).
When you click CONTINUE Plex should automatically pickup the channels from your filtered IPTV m3u. As shown in the example below, 20 channels (73 in the case of TellyTv example shown in this guide) were picked up by Plex. Channel numbers may vary based on your xTeVe / TellyTv settings. Click CONTINUE.
In the next screen, you will be asked for your EPG (Electronic Program Guide) information. Click on Have an XMLTV guide on your server? Click here to use that instead and enter http://LAN-IP:34400/xmltv/xteve.xml (use http://LAN-IP:6077/epg.xml for TellyTv) for XMLTV GUIDE and anything for GUIDE TITLE. LAN-IP is the IP address of the machine running TellyTv (same as in previous step).
Then click CONTINUE. You will be presented with your channels and channel names based on your EPG data, as shown below. Go through the list and make sure they match well.
Finish the rest of the process to complete setting up TellyTv IPTV tuner for Plex. It may take some time for Plex to download the latest EPG data.
That is it, you are done.
Best Plex Client Devices:
- NVIDIA SHIELD TV Pro Home Media Server - $199.99
- Amazon Fire TV Streaming Media Player - $89.99
- Roku Premiere+ 4K UHD - $83.99
- CanaKit Raspberry Pi 3 Complete Starter Kit - $69.99
- Xbox One 500 GB Console - $264.99
Step 4. Watch IPTV on Plex
Now its time to test if everything worked. After the previous step, select VIEW GUIDE. Alternatively, you may select or select Live TV & DVR from Plex home screen. You should see information and channels from your IPTV provider as shown below.
Notice that some channels say Unknown Airing. This is because EPG data provided by most IPTV providers do not have all the information required by Plex. Plex will leave channels with incomplete EPG out of the guide and you won't have access to those channels.
With a paid EPG data provider such as iptv-epg.com you will have more complete EPG data and hence more working channels.
Now click and play a channel to test it out. When the first channel from the above screenshot was clicked, it played perfectly on Plex as shown below.
FAQs
Is IPTV Legal?
IPTV services such as Youtube TV, Sling, Netflix, etc. are obviously legal. These services pay for the content they stream. However, most other IPTV services that package 1000s of live TV channels rarely pay for the content or obtain them legitimately. Therefore, use IPTV with Plex at your own risk. Or, use a VPN to protect yourself.
Surfshark VPN Exclusive Offer - 82% off ($2.39/month):
♦ Hide your browsing (no logs), Anonymize Streaming and Downloads
♦ Wireguard Protocol support for VPN.
♦ Circumvent Geo/Country Restrictions and access worldwide content
♦ Works on Windows, Mac, Linux, Android, iOS, Router, and more
♦ 1 TB Encrypted Storage
♦ Money back guarantee - Sign Up Now
Is IPTV reliable?
No, IPTV is not stable. These streams are aggregated from around the world and combined to form an IPTV package. There is no quality control involved and a channel or the whole service may go down at any time.
Is Plex IPTV setup with TellyTv or xTeVe reliable?
Also no. Illegitimate IPTV is already unreliable. On top of that Plex support for Live TV is not great. In addition, Plex's new strategy has shown an inclination to remove any sources that stream illegally obtained copyrighted content (locally stored content is OK...for now). Therefore, Plex may kill TellyTv's hardware tuner emulation workaround at any time.
Plex IPTV Setup with TellyTv - Final Thoughts
We are still in the beginning stages of this new method, which is sure to improve over time. This guide uses TellyTv 1.1. The next version (1.5) is in the works and is supposed to have a web interface, support for Schedules Direct as EPG source, and more. With this improvement, it will be comparable xTeVe. So there is a lot of new things to look forward to.
With IPTV addition, Plex can become your all-in-one media server. If your IPTV requirements are less than 480 channels and your IPTV service provider offers great quality EPG data then Plex IPTV with xTeVe or TellyTv might a great fit for you.
With Plex cutting support for Plug-ins, this is one of the few known methods to get IPTV in Plex. I hope you found this Plex IPTV guide helpful. Do not hesitate to share your comments and experiences in the comments below.