-
Notifications
You must be signed in to change notification settings - Fork 132
IPTV
Summarising the steps taken to enable IPTV in Plex via the built in DVR:
THESE STEPS ARE BASED ON THE NEW TELLY ROLE CURRENTLY IN COMMUNITY DEVELOP BRANCH
- Subscribe to an IPTV service that provides an m3u playlist for their streams (like Iris, Vaders etc). Specifics as to what telly requires are over at the telly wiki.
- You'll probably need to contact your provider and ask them to enable VPN access so that you can use it on Hetzner, OVH etc. Some IPTV providers will not enable their version of this feature and will not work from a datacenter server. YMMV, but Vader has fallen into this bucket for some.
- You'll need to trim down the available channels to 420 or less for use with Plex. There are paid and free ways to accomplish this. See the telly wiki on channel count. Telly 1.0 will soldier on with channel counts higher than 420, possibly leading to bad behavior in Plex. Telly 1.1 will quit if your channel count is > 420 to prevent that bad behavior.
- You'll then need to add reliable EPG data to your new filtered channels list. You can use your provider's EPG or a paid service like IPTV-EPG (500 channels subscription recommended) to add the correct EPG data. Use your m3u from Xtreme Editor with IPTV-EPG if you subscribe to both.
- For IPTV-EPG: you'll need to contact them and ask them to enable VPN access for you to be able to add it to your Cloudbox.
- For IPTV-EPG: With telly 1.0, you can enable
Display LCN tag in EPG XML
in your account settings to get better channel numbers in Plex.
Before running the telly
tag, you'll need to copy telly.yml.sample
to telly.yml
:
cp telly.yml.sample telly.yml
You choose the version of telly you want to install in telly.yml:
telly:
version: 1.1
1.0, 1.1, and 1.5 are the available versions. 1.1 is recommended by telly team.
The telly.yml
config file contains all the available telly settings; you will not need to change most of these:
telly10:
TELLY_FILTER_REGEX_MODE: true
TELLY_FILTER_REGEX: "USA"
TELLY_IPTV_PLAYLIST: "M3U_URL"
TELLY_LOG_LEVEL: "Info"
TELLY_LOG_REQUESTS: false
TELLY_IPTV_DIRECT: false
TELLY_IPTV_STARTING_CHANNEL: "10000"
TELLY_IPTV_STREAMS: "1"
TELLY_DISCOVERY_DEVICE_ID: "12345678"
TELLY_DISCOVERY_DEVICE_FRIENDLY_NAME: "telly"
TELLY_DISCOVERY_DEVICE_AUTH: "telly123"
TELLY_DISCOVERY_DEVICE_MANUFACTURER: "Silicondust"
TELLY_DISCOVERY_DEVICE_MODEL_NUMBER: "HDTC-2US"
TELLY_DISCOVERY_DEVICE_FIRMWARE_NAME: "hdhomeruntc_atsc"
TELLY_DISCOVERY_DEVICE_FIRMWARE_VERSION: "20150826"
TELLY_DISCOVERY_SSDP: true
The only ones you will likely need to change are:
TELLY_FILTER_REGEX_MODE: true
TELLY_FILTER_REGEX: "USA"
TELLY_IPTV_PLAYLIST: "http://iptv.server:80/get.php?username=USERNAME&password=PASSWORD&type=m3u_plus&output=ts"
TELLY_IPTV_STREAMS: "1"
-
TELLY_FILTER_REGEX
is the regular expression applied to each channel in the M3U -
TELLY_FILTER_REGEX_MODE
controls the behavior of the regex; iftrue
it's inclusive, iffalse
[or missing] it's exclusive. -
TELLY_IPTV_PLAYLIST
is a link or path to your m3u playlist. -
TELLY_IPTV_STREAMS
is the number of connections you want to use [some IPTV providers offer more than one]
See the telly wiki for more details.
With telly 1.0, if you want to adjust settings you will need to change them here and then re-run the role to recreate the docker container.
If your IPTV provider's channel list is pretty static, you may want to consider downloading a copy of the m3u for faster access and loading the file rather than the URL in telly.
Similarly, you may wish to download a copy of your EPG-XML file, whether from provider or another source. Download it into /opt/telly
.
Settings:
telly11:
streams: 1
provider_name: CloudTV
m3u_url: http://iptv.server:80/get.php?username=USERNAME&password=PASSWORD&type=m3u_plus&output=ts
epg_url: http://iptv.server:80/xmltv.php?username=USERNAME&password=PASSWORD
filter: USA
Telly 1.1 uses a config file, which will be written to /opt/telly/telly.config.json
. Once that config file is created, you can adjust settings by editing that file and restarting the container. The values here are used in creating that initial config file.
There are more settings available in the config file; all will be at their defaults except for the four above. See the telly wiki for config file details.
-
streams
is the number of connections you want to use [some IPTV providers offer more than one] -
provider_name
is the name of your IPTV provider, and is used only cosmetically. -
m3u_url
is a link or path to your m3u playlist -
epg_url
is a link or path to your egg xml file -
filter
is a regex as in 1.0, but it is always inclusive.
Defining the filter is beyond the scope of this article. See the telly wiki about filtering.
telly 1.5 is configured using a web interface and is an early unsupported alpha. There is no documentation currently available for 1.5.
- Install telly in your Cloudbox via the 'telly' tag.
sudo ansible-playbook community --tags telly
. - Restart your Plex Docker (
docker stop plex && docker start plex
).
- [All together now] The telly wiki covers adding telly to Plex in great detail.
- Open Plex Web, go to Settings, Server, Live TV & DVR. If the telly DVR doesn't show up automatically, enter
telly:6077
as yourHDHOMERUN DEVICE ADDRESS
, hit Connect once, then "Continue". - Choose a region. Unless you're using Plex' EPG, this setting doesn't really matter.
- for telly 1.0, add the EPG URL or path, then fix any errors as you go through the wizard. Add any missing guide data in the channel mapper.
- for telly 1.1, enter
http://telly:6077/epg.xml
for the EPG. All the channels will auto-match. - Hit save.
- Wait for Plex to load your guide, enjoy DVR via Plex.
- airdcpp
- Airsonic
- alltube
- always
- amongus
- Apprise
- archivebox
- arrX (SonarrX, RadarrX, BazarrX)
- AssHama
- autoscan
- Bazarrx
- Beets
- Bitwarden
- Booksonic
- Bookstack
- btrfsmaintenance
- calibre-web
- calibre
- Coder
- comicstreamer
- comixed
- couchpotato
- Dashmachine
- deemix
- deezloader-remix
- Deluge
- DelugeVPN
- Drive STRM
- eBooks: Calibre and Calibre web
- emby2
- embystat
- EPMS
- Filebot
- Filebrowser
- filezilla
- FlareSolverr
- Funkwhale
- Gazee
- Gitea
- Glances
- Goplaxt
- gotify
- grafana
- Guacamole
- Handbrake
- Heimdall
- Hetzner NFS VLAN
- influxdb
- InvoiceNinja
- JDownloader2
- Jellyfin
- Jirafeau
- KCPTUN
- Kitana
- komga
- Krusader
- LazyLibrarian
- lidarrx
- Logarr
- Mango
- Mediabutler
- medusa
- Mellow
- Minecraft
- Monitorr
- Mylar
- mylar3
- navidrome
- Nextcloud
- NowShowing
- NZBHydra (v1)
- ombix
- Organizr (v1)
- ouroboros
- overseerr
- paperless-ng
- plex2
- Pyload
- qBittorrent
- qbittorrentvpn
- Quassel
- RadarrX
- redbot
- requestrr
- requestrrx
- resilio-sync
- rocketchat
- sickchill
- searx
- SonarrX
- Speedtest
- SSHswifty
- stash
- Subsonic
- SyncLounge
- Tdarr
- telegraf
- Telly
- TheLounge
- transmissionvpn
- transmissionx
- ubooquity
- Unifi
- unmanic
- Varken
- vnstat
- wallabag
- Watchtower
- Wordpress
- Xteve
- ZNC
- Custom python plexlibrary libraries
- Speed up Plex / Emby / Jellyfin
- Tautulli Custom Scripts
- Plex Scanners and Agents