tellytv / telly

An IPTV proxy
MIT License
750 stars 105 forks source link

Cant parse m3u file correctly ("expected element type <tv> but have <html>") #259

Closed junkyhlm closed 4 years ago

junkyhlm 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):

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

Description of problem: Cant import m3u file correctly

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

Note on running multiple instances of telly

There are three things that make up a "key" for a given Telly Virtual DVR:

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 the telly virtual DVR will provide

This is often 1, but is set by your iptv provider; for example,

                        # Vaders provides 5

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

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.2:6077" # Set this to the IP address of the machine telly runs on Listen-Address = "0.0.0.0:6077" # this can stay as-is

THIS SECTION IS NOT USEFUL ======================================================================

[SchedulesDirect] # If you have a Schedules Direct account, fill in details and then

                         # UNCOMMENT THIS SECTION

Username = "" # This is under construction; no provider

Password = "" # works with it 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 = "" # Name is optional and is used mostly for logging purposes

Provider = "Iris" # named providers currently supported are "area51" and "Iris"

IF YOUR PROVIDER IS NOT ONE OF THE ABOVE, CONFIGURE IT AS A "Custom" PROVIDER; SEE BELOW

Username = "YOUR_IPTV_USERNAME"

Password = "YOUR_IPTV_PASSWORD"

THE FOLLOWING KEYS ARE OPTIONAL IN THEORY, REQUIRED IN PRACTICE

Filter = "YOUR|FILTER|*REGEX"

FilterKey = "group-title" # FilterKey normally defaults to whatever the provider file says is best,

otherwise you must set this.

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

[[Source]]

Name = "" # Name is optional and is used mostly for logging purposes

Provider = "IPTV-EPG" # DO NOT CHANGE THIS IF YOU ARE USING THIS PROVIDER

Username = "M3U-Identifier" # From http://iptv-epg.com/[M3U-Identifier].m3u

Password = "XML-Identifier" # 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 = ""

[[Source]] Name = "Northstar IPTV" # 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://nsclient.xyz:2095/get.php?username=REDACTED&password=REDACTED&type=m3u_plus&output=ts" # These can be either URLs or fully-qualified paths. EPG = "http://myprovider.com/epg.xml"

THE FOLLOWING KEYS ARE OPTIONAL IN THEORY, REQUIRED IN PRACTICE

Filter = "Sports|Premium Movies|United States.*|USA"

FilterKey = "group-title" # FilterKey normally defaults to whatever the provider file says is best,

otherwise you must set this.

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

./telly


**telly or docker log:**

INFO[2019-09-05T21:26:41+02:00] telly is preparing to go live (version=1.1.0.6, branch=dev, revision=dafac1f21a0f5397511965d9f0a2ae930d51fe95) INFO[2019-09-05T21:26:41+02:00] Loading M3U from http://nsclient.xyz:2095/get.php?username=REDACTED&password=REDACTED&type=m3u_plus&output=ts INFO[2019-09-05T21:26:42+02:00] Loading XMLTV from http://myprovider.com/epg.xml ERRO[2019-09-05T21:26:42+02:00] Could not decode xmltv programme error="expected element type but have " ERRO[2019-09-05T21:26:42+02:00] error when parsing EPG error="expected element type but have " ERRO[2019-09-05T21:26:42+02:00] error when preparing provider error="expected element type but have " ERRO[2019-09-05T21:26:42+02:00] error when processing provider error="expected element type but have " INFO[2019-09-05T21:26:42+02:00] telly is live and on the air!
INFO[2019-09-05T21:26:42+02:00] Broadcasting from http://0.0.0.0:6077/
INFO[2019-09-05T21:26:42+02:00] EPG URL: http://0.0.0.0:6077/epg.xml



**Additional information:**
chazlarson commented 4 years ago

It looks like that epg.xml file is malformed. It shouldn’t start with . What does the file look like if you retrieve it from that machine?

junkyhlm commented 4 years ago

I didn't get a EPG link. It's only a 24 hour trial account. I wanted to check if I was working before subscribing.

chazlarson commented 4 years ago

Delete the example epg link from the config.

EPG = "http://myprovider.com/epg.xml"

Telly’s trying to retrieve and parse that as an EPG file.

chazlarson commented 4 years ago

Actually, the epg link for that provider is probably http://nsclient.xyz:2095/xmltv.php?username=REDACTED&password=REDACTED

junkyhlm commented 4 years ago

I actually tried that link formatting but with no luck. I'll try to delete the EPG link and see how it acts then. Thanks for your input