tellytv / telly

An IPTV proxy
MIT License
768 stars 107 forks source link

Telly not parsing M3U/XML + Plex can't find it (Synology NAS) #251

Open Saidou83 opened 5 years ago

Saidou83 commented 5 years ago

telly release with the issue:

telly, version 1.1.0.3 (branch: dev, revision: cec8d730177b15a6d1f60d879d2db493f9de51a3) build user: root@7a0e0684991b build date: 20180905-23:20:50 go version: go1.10.3

Last working telly release (if known): first install

Operating environment (Docker/Windows/Linux/QNAP, etc.):

Synology DSM6.2 & Linux Ubuntu 19.4

Description of problem:

Can't get Telly to work on my Synology NAS.

  1. When starting the program in Terminal on my Synology I get the error seen in the log. Tried Telly on Ubuntu and I'm getting the same errors (once in a while it parses the M3U without errors) When trying Telly on Windows, it just works...
  2. When trying to find Telly (Windows) in Plex (running on Synology), it doesn't find it... When entering the IP of my NAS I get the error: "There was a problem adding the device..." (see attached screenshot)

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 = "hdhomeruntc_atsc"
  Device-Firmware-Version = "20150826"
  Device-Friendly-Name = "telly"
  Device-Manufacturer = "Silicondust"
  Device-Model-Number = "HDTC-2US"
  SSDP = true

# 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 = 1               # number of simultaneous streams that telly virtual tuner will provide
                            # This is often 1, but is set by your iptv provider
  Starting-Channel = 10000  # 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 = "192.168.1.101: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.
  Listen-Address = "0.0.0.0:6077" # this can stay as-is

# THIS SECTION IS OPTIONAL ========================================================================
#[SchedulesDirect]           # If you have a Schedules Direct account, fill in details and then
                             # UNCOMMENT THIS SECTION
#  Username = ""             # This is under construction; There is no provider
#  Password = ""             # that works with it fully at this time

# AT LEAST ONE SOURCE IS REQUIRED #################################################################
# DELETE OR COMMENT OUT SOURCES THAT YOU ARE NOT USING ############################################
# NONE OF THESE EXAMPLES WORK AS-IS; IF YOU DON'T CHANGE IT, DELETE IT ############################

[[Source]]
  Name = "MyTVOnline"                 # Name is optional and is used mostly for logging purposes
  Provider = "Custom"       # DO NOT CHANGE THIS IF YOU ARE ENTERING URLS OR FILE PATHS
                            # "Custom" is telly's internal identifier for this 'Provider'
                            # If you change it to "NAMEOFPROVIDER" telly's reaction will be
                            # "I don't recognize a provider called 'NAMEOFPROVIDER'."
  M3U = "http://mytvonline.nl/get.php?username=REDACTED&password=REDACTED&type=m3u_plus&output=ts"  # This can be either URL or fully-qualified path.
                            # This needs to be an M3Uplus file
                            # IT CANNOT BE A STREAM ADDRESS
                            # IT CANNOT BE AN M3U THAT LINKS TO ANOTHER M3U
  EPG = "http://mytvonline.nl/xmltv.php?username=REDACTED&password=REDACTED&next_days=7"       # This can be either URL or fully-qualified path.
  # THE FOLLOWING KEYS ARE OPTIONAL IN THEORY, REQUIRED IN PRACTICE
  Filter = "Belgium|Belgium Sports|NL Sport|France Sports|UK SKY Sport"     #|USA Sports|USA Locals|Nederland|Spain|Spain Sports|France|UK|USA
                            # Telly is written in Go, and uses the Go regular expression system, 
                            # which is limited compared to other regular expression parsers.
  FilterKey = "group-title" # Telly applies the regular expression to the contents of this key in the M3U.
  FilterRaw = false         # FilterRaw will run your regex on the entire line instead of just specific keys.
  Sort = "group-title"      # Sort will alphabetically sort your channels by the M3U key provided
# END TELLY CONFIG  ###############################################################################

Command line used to run telly [if applicable]:

./telly

telly or docker log:

saidou@j-js-xps-15-ubuntu:~/telly/telly-1.1.0.3.linux-amd64$ ./telly
INFO[2019-05-18T01:30:10+02:00] telly is preparing to go live (version=1.1.0.3, branch=dev, revision=cec8d730177b15a6d1f60d879d2db493f9de51a3) 
INFO[2019-05-18T01:30:10+02:00] Loading M3U from http://mytvonline.nl/get.php?username=REDACTED&password=REDACTED&type=m3u_plus&output=ts 
INFO[2019-05-18T01:30:13+02:00] Loading XMLTV from http://mytvonline.nl/xmltv.php?username=REDACTED&password=REDACTED&next_days=7 
ERRO[2019-05-18T01:30:27+02:00] Could not decode xmltv programme              error="XML syntax error on line 1279: unexpected EOF"
ERRO[2019-05-18T01:30:27+02:00] error when parsing EPG                        error="XML syntax error on line 1279: unexpected EOF"
ERRO[2019-05-18T01:30:27+02:00] error when preparing provider                 error="XML syntax error on line 1279: unexpected EOF"
ERRO[2019-05-18T01:30:27+02:00] error when processing provider                error="XML syntax error on line 1279: unexpected EOF"
INFO[2019-05-18T01:30:27+02:00] telly is live and on the air!                
INFO[2019-05-18T01:30:27+02:00] Broadcasting from http://0.0.0.0:6077/       
INFO[2019-05-18T01:30:27+02:00] EPG URL: http://0.0.0.0:6077/epg.xml

plex_telly

dskvr commented 5 years ago

Keep trying, keep reducing the number of channels you provide and you will eventually get it setup and it will work for 4-12 hours. Then it will crash again. Has to do with the sheer size of the EPG. Sometimes it's a panic (docker) other times it's a timeout issue. Other times it's Plex having a bad day and taking it out on you.

<rant> The real culprit here is EPG, it's an abysmal, myopic "unstandard."

Would help minimize domain-specific fragility and would also help with Plex's inherent signal issues (which are often related to EPG size!) </rant>