Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Parsing Error when using Channels DVR XMLTV #283

Open
mikeregister opened this issue Dec 30, 2020 · 0 comments
Open

Parsing Error when using Channels DVR XMLTV #283

mikeregister opened this issue Dec 30, 2020 · 0 comments

Comments

@mikeregister
Copy link

**telly release with the issue:1.1.0.8

Last working telly release (if known):

**Operating environment (Docker/Windows/Linux/QNAP, etc.):Same issue on Windows 10 and Synology NAS (Docker)

Description of problem:

Channels DVR recently added the ability to export XMLTV from their guide provider and also the ability to add custom m3u/xml lists in to their system. A combined and/or individual m3u/XMLTV can be pulled from the source(s) in Channels DVR. When using the Channels DVR m3u/XMLTV file I am getting a parsing error with their XMLTV URL. If I input their XMLTV in xTeVe and then use the xTeVe URL within Telly it works fine. Possible issue is that Telly is assuming "channel" is an integer. Provided examples of the m3u/XMLTV at the bottom under "Additional Information".

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

  • REMEMBER TO DELETE ANY CREDENTIALS IN CONFIG FILES OR COMMAND LINES
# 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.227: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

# 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 #################################################################
# COPY/PASTE THIS BLOCK TO ADD MORE SOURCES #######################################################
# THIS EXAMPLE WILL NOT WORK AS-IS ################################################################
[[Source]]
  Name = ""                 # Name is optional and is used mostly for logging purposes
  Provider = "Custom"       # DO NOT CHANGE THIS
                            # "Custom" is telly's internal identifier for this 'Provider'
                            # If you change it to "SOMETHING ELSE", telly's reaction will be
                            # "I don't recognize a provider called 'SOMETHING ELSE'."
  M3U = "http://192.168.1.238:8089/devices/ANY/channels.m3u?format=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://192.168.1.238:8089/devices/ANY/guide/xmltv?duration=82400"       # This can be either URL or fully-qualified path.
  # THE FOLLOWING KEYS ARE OPTIONAL IN THEORY, REQUIRED IN PRACTICE
#  Filter = "YOUR_FILTER_REGULAR_EXPRESSION"
                            # 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]:

  • REMEMBER TO DELETE ANY CREDENTIALS IN CONFIG FILES OR COMMAND LINES
C:\Users\Mike\Downloads\telly-1.1.0.8.windows-amd64>telly.exe
time="2020-12-30T16:44:22-05:00" level=info msg="telly is preparing to go live (version=1.1.0.8, branch=dev, revision=96424a4719f33de9c1b66d8d2186e0452e45a234)"
time="2020-12-30T16:44:22-05:00" level=info msg="Loading M3U from http://192.168.1.238:8089/devices/ANY/channels.m3u?format=ts"
time="2020-12-30T16:44:22-05:00" level=info msg="Loading XMLTV from http://192.168.1.238:8089/devices/ANY/guide/xmltv?duration=82400"
time="2020-12-30T16:44:23-05:00" level=error msg="Could not decode xmltv programme" error="strconv.ParseInt: parsing \"2.1\": invalid syntax"
time="2020-12-30T16:44:23-05:00" level=error msg="error when parsing EPG" error="strconv.ParseInt: parsing \"2.1\": invalid syntax"
time="2020-12-30T16:44:23-05:00" level=error msg="error when preparing provider" error="strconv.ParseInt: parsing \"2.1\": invalid syntax"
time="2020-12-30T16:44:23-05:00" level=error msg="error when processing provider" error="strconv.ParseInt: parsing \"2.1\": invalid syntax"
time="2020-12-30T16:44:23-05:00" level=info msg="telly is live and on the air!"
time="2020-12-30T16:44:23-05:00" level=info msg="Broadcasting from http://192.168.1.227:6077/"
time="2020-12-30T16:44:23-05:00" level=info msg="EPG URL: http://192.168.1.227:6077/epg.xml"
time="2020-12-30T16:44:23-05:00" level=info msg="Lineup JSON: http://192.168.1.227:6077/lineup.json"

Docker run command used to run telly [if applicable]:

  • REMEMBER TO DELETE ANY CREDENTIALS IN CONFIG FILES OR COMMAND LINES

telly or docker log:


Additional information:

M3U Example:
#EXTM3U

#EXTINF:-1 channel-id="2.1" tvg-chno="2.1" tvg-logo="https://tmsimg.fancybits.co/assets/s28708_ll_h3_ab.png" tvg-name="WMARDT" group-title="Favorites",ABC
http://192.168.1.238:8089/devices/ANY/channels/2.1/stream.mpg?format=ts

#EXTINF:-1 channel-id="8.1" tvg-chno="8.1" tvg-logo="https://tmsimg.fancybits.co/assets/s28717_ll_h3_ac.png" tvg-name="WGALDT" group-title="Favorites",NBC
http://192.168.1.238:8089/devices/ANY/channels/8.1/stream.mpg?format=ts
XMLTV Example:
<tv source-info-name="channels-dvr">
<channel id="2.1">
<lcn>2.1</lcn>
<display-name>WMARDT</display-name>
<display-name>ABC</display-name>
<icon src="https://tmsimg.fancybits.co/assets/s28708_ll_h3_ab.png"/>
</channel>
<programme start="20201230200000 +0000" stop="20201230210000 +0000" channel="2.1">
<title>Dateline</title>
<sub-title>A Crack in Everything</sub-title>
<desc>
A woman's death is ruled a suicide, but when a new investigation begins, police suspect murder.
</desc>
<category>Episode</category>
<category>Series</category>
<category>Newsmagazine</category>
<category>Mystery</category>
<category>Crime</category>
<icon src="https://tmsimg.fancybits.co/assets/p13159645_b_h6_ad.jpg"/>
<series-id system="tms">13159645</series-id>
<date>20190925</date>
<episode-num system="tms">EP024874280258</episode-num>
<episode-num system="onscreen">S3E3</episode-num>
<credits>
<actor>Natalie Morales</actor>
<actor>Craig Melvin</actor>
</credits>
</programme>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant