tellytv / telly

An IPTV proxy
MIT License
769 stars 106 forks source link

IPTV-EPG provider no longer works in v1.1.0.6 #265

Closed paul-chambers closed 4 years ago

paul-chambers commented 4 years ago

telly release with the issue: telly, version 1.1.0.6 (branch: dev, revision: dafac1f21a0f5397511965d9f0a2ae930d51fe95) build user: root@c8b3d5116b6b build date: 20190509-14:43:23 go version: go1.12.5

Last working telly release (if known): unknown

Operating environment (Docker/Windows/Linux/QNAP, etc.): Linux: Ubuntu 18.04 inside a KVM virtual machine

Description of problem:

The 'IPTV-EPG' provider no longer works. This appears to be because IPTV-EPG is now using Cloudflare, and Telly isn't providing a 'host' header when making the HTTP request, so Cloudflare doesn't know which HTTP host the request is for.

If I use the 'Custom' provider, and provide the M3U and EPG URLs explicitly, Telly does start successfully.

Contents of telly.config.toml [if you're using a version above 1.1]:

# 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 = ""
  Device-Firmware-Version = ""
  Device-Friendly-Name = "telly"
  Device-Manufacturer = "Telly TV"
  Device-Model-Number = "HDT-Telly"
  SSDP = false

# Note on running multiple instances of telly
# There are three things that make up a "key" for a given Telly Virtual Tuner:
# Device-ID [required], Device-UUID [optional], and port [required]
# When you configure your additional telly instances, change:
# the Device-ID [above] AND
# the Device-UUID [above, if you're entering one] AND
# the port [below in the "Web" section]

# THIS SECTION IS REQUIRED ########################################################################
[IPTV]
  Streams = 2               # number of simultaneous streams that telly virtual tuner will provide
                            # This is often 1, but is set by your iptv provider
  Starting-Channel = 9000   # When telly assigns channel numbers it will start here
# XMLTV-Channels = true     # if true, any channel numbers specified in your M3U file will be used.
# FFMpeg = true             # if this is uncommented, streams are buffered through ffmpeg;
                            # ffmpeg must be installed and on your $PATH
                            # if you want to use this with Docker, be sure you use the correct docker image
# if you DO NOT WANT TO USE FFMPEG leave this commented; DO NOT SET IT TO FALSE [Issue #185]

# THIS SECTION IS REQUIRED ########################################################################
[Log]
  Level = "info"            # Only log messages at or above the given level. [debug, info, warn, error, fatal]
  Requests = true           # Log HTTP requests made to telly

# THIS SECTION IS REQUIRED ########################################################################
[Web]
  Base-Address = "10.11.1.188:6077" # Set this to the IP address of the machine telly runs on AS SEEN BY PLEX
                                    # telly will be telling Plex to connect to URLs at this address.
                                    # DO NOT REMOVE THE PORT
                                    # Just change the 0.0.0.0 to your IP address.
  Listen-Address = "0.0.0.0:6077"   # this can stay as-is

[[Source]]

 Name = "Iconic Streams"     # Name is optional and is used mostly for logging purposes
 Provider = "IPTV-EPG"       # DO NOT CHANGE THIS IF YOU ARE USING THIS PROVIDER
 Username = "xxxxx-zzzzzz"   # From http://iptv-epg.com/[M3U-Identifier].m3u
 Password = "yyyy-zzzzz"    # From http://iptv-epg.com/[XML-Identifier].xml
 # NOTE: THOSE KEY NAMES DO NOT MAKE SENSE FOR THIS PROVIDER ################
 # THIS IS JUST AN IMPLEMENTATION DETAIL.  JUST GO WITH IT.
 # For this purpose, IPTV-EPG does not have a "username" and "password", HOWEVER,
 # telly's scaffolding for a "Named provider" does. Rather than special-casing this provider,
 # the username and password are used to hold the two required bits of information.
 # THIS IS JUST AN IMPLEMENTATION DETAIL.  JUST GO WITH IT.
 # NOTE: THOSE KEY NAMES DO NOT MAKE SENSE FOR THIS PROVIDER ################
 # THE FOLLOWING KEYS ARE OPTIONAL HERE; IF YOU"RE USING IPTV-EPG YOU'VE PROBABLY DONE YOUR
 # FILTERING THERE ALREADY
 # Filter = ""
 # FilterKey = ""
 # FilterRaw = false
 # Sort = ""

# END TELLY CONFIG  ###############################################################################

Command line used to run telly [if applicable]:

paul@media:~$ cat /lib/systemd/system/telly.service
[Unit]
Description=Telly TV
After=network.target

[Service]
User=telly
Group=media
UMask=002

Type=simple
ExecStart=/var/lib/telly/telly --config.file /var/lib/telly/telly.config.toml
TimeoutStopSec=20
KillMode=process
Restart=on-failure

[Install]
WantedBy=multi-user.target

telly or docker log:

Jan 10 00:43:23 media telly[19857]: time="2020-01-10T00:43:23-08:00" level=info msg="telly is preparing to go live (version=1.1.0.6, branch=dev, revision=dafac1f21a0f5397511965d9f0a2ae930d51fe95)"
Jan 10 00:43:23 media telly[19857]: time="2020-01-10T00:43:23-08:00" level=info msg="Loading M3U from http://iptv-epg.com/xxxxx-zzzzzz.m3u"
Jan 10 00:43:29 media telly[19857]: time="2020-01-10T00:43:29-08:00" level=info msg="Loading XMLTV from http://iptv-epg.com/yyyy-zzzzzz.xml"

and then crickets...

Additional information:

chazlarson commented 4 years ago

This will probably be addressed by removing the IPTV-EPG custom provider since there's no particular advantage to using it over the custom provider, which does work.

chazlarson commented 4 years ago

named providers will be removed from the next release; they don't add any value at this point.