E2m3u2bouquet - discussion & support

There are 1,211 replies in this Thread which was already clicked 86,566 times. The last Post () by pepsik.

  • I found a problem with the URL stored in E2m3u2b_iptv_iptv.sources.xml which contains an "&". This I also wrote an other forum where I downloaded the plug-in originally.


    This is what I noticed:


    I want to also read the EPG and that did not work for me. I tried it with stand-alone EPGimporter and that did also not read any events in.


    I looked in the E2m3u2b_iptv_iptv.sources.xml file and noticed that in the URL's the "&" was replaced with "&". After removing "amp;" the import with the standalone works again. I can't test it with the E2m3u2Bouquet plugin because during the processing the E2m3u2b_iptv_iptv.sources.xml is overwritten.

    Edited once, last by msatter ().

  • I found a problem with the URL stored in E2m3u2b_iptv_iptv.sources.xml which contains an "&"

    This is not a plugin problem from the word "generally" .... This is the problem of the "brainless" who use the unescaped "&" character in the xml file.


    p.s. "&" in XML = "&" Always ! ..... - https://stackoverflow.com/ques…cuments/46637835#46637835 read the first paragraph "Always" ...

  • Thanks for your reply especially in these horrendous and difficult times.


    I looked again at the EPGimport config and the string sent out to servers (WireShark) then the "&" is replaced by "&" and the server is expecting only a "&" and trows a 403 because the URL is not valid.


    So the problem is then on the site where the EPG data is en they have to accept (or rewrite) "&" . Till then I will have to edit the EPGimport file manually each time.


    Thanks and stay strong!

    Edited once, last by msatter ().

  • (WireShark)

    1) What does Wireshark have to do with it? Why go so deep tracking traffic?

    2) What is not clear to you in my previous post regarding the fact that the "&" character MUST be escaped in the xml file?

    3) If in any of the xml files associated with configuring settings for loading EPG in this plugin, there is "&" - then it will unescape when reading from the given file!

    4) From your explanations, it is fundamentally incomprehensible to me how and where you climb to edit anything by hand and why?

    5) In order not to tell you for a long time, take and set in this plugin a link to xmltv in the https scheme and then look at the configuration xml file for the EPG of this provider! You will see escaped characters "&" there ... Moreover .... if you put the download from this source - EVERYTHING WILL WORK


    Therefore - THIS PLUG-IN DID NOT HAVE AND DOESN'T HAVE any problems with correctly formed xml-files, taking into account correctly escaped special characters. Link to theory - a few posts above


    If you think that this is not so, take the trouble to state the essence and procedure of the actions you are taking step by step! With examples!

  • I made traces of the script running, and to my astonishment all is working as you wrote. I don't know why I had success when I removed the "amp;". I am really sorry for my mistake.


    However, the way I have to download the EPG XML from my provider causes the problem shown underneath. It is an XML but has not a correct extension: "php?username=USER&password=PASS" and is so invalid to import as EPG XMLTV file.


    I now download the file with wget and store it the /tmp directory and import it manually. On storing I can give it a valid name like xmltv.xml


    These are the traces I got when creating the bouquets and the EPGimport and underneath the trace of the stand alone EPGimport.


    And again, sorry that I got it that wrong the first time.


    And the journalctl of processing:


    EPGimport 1.86 dorik 1972 (stand alone)

    Code
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGImport] afterDownload /media/hdd/epgimport.php?username=USER&password=PASS
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGImport] download failed: Exception('Unsupported compression type or file: php?username=USER&password=PASS',)
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGDB] still not connected, sorry
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGImport] imported 0 events per 0:00:05.354035
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGImport] EPG cache time updated ...
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGImport] Load the database file /media/SD-card/XMLTV-EPG/epg.db to EPG cache ...
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGImport] Save last import date and count event
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGImport] Run check deep standby after import
    Mar 10 21:12:22 dm920 enigma2[1110]: [EPGImport] #### Finished ####
  • [e2m3u2b] Download failed: Unsupported file type: php?username=USER&password=PASS

    Because you or your IPTV provider does not use a link to an xmltv file but uses a query for a php script on the server... Such a "construction" of an XMLTV download request is not supported. Moreover, it has nothing to do with "&" character escaping ...

    Setting a link for downloading XMLTV in this form is not quite according to the standard, this is a special case invented by your IPTV provider. If you need to set a url link to download a file using a login and password, you must follow RFC3986 (see the picture in attachment) ...

    Thus, the link to the XMLTV file with "authorization" should look like this

    Code
    http://login:passw@www.epg.com/epg.xml.gz

    There is nothing seditious in the link for XMLTV used by your provider, but this link is not to the XMLTV file, but to a certain "web page" which then if the username and password in the query request are correct, redirects to downloading the file ... Alas this option requires reworking the plugin code and it is very significant, this is currently impossible to do (It's hard to write code between fights). Alternatively, you can write an elementary bash script in one line to download this file and organize its launch by cron at any frequency

    Bash
    #!/bin/bash
    curl "http://some.domain.com/php?user=Jhon&password=12345678&token=qwerty" -o /media/hdd/epg.xml.gz

    or using wget instead of curl, whatever you like

    Then write in the provider's card in the EPG url field - file:///media/hdd/epg.xml.gz and everything will work without any manual fixes and other fantasies

  • Thank you so much for your reply and I can't even imagine what is happening to Ukraine and the people of Ukraine.


    I was a bit naughty and looked at the code and the only thing that is stopping the read-in the check on the extension of the file. The file is plain XML and seems to be renamed to epgimport.gz after downloading.


    I am not a programmer and I came up with a change despite it works, it is not working correctly because it also accepts checking for lets say ".phptest" while that is not in the URL.


    These lines are in EPGConfig.py and EPGImport.py


    Trace of a successful import:


    I am not in a hurry and a workaround for it. The Plug-in is that flexible that is has no problem with the unexpected format of the URL in the end.


    Keep strong and all the best to you, your hold dear and to all the people that are suffering because of stupid this war!


    ps. I am still feeling stupid about my earlier conclusion :pleading face:

    Edited 4 times, last by msatter ().

  • Then.....I read , in an other forum, about a URL that is not filterable to my knowledge:


    http://example.com:8086/epg/user/pass


    The retrieved filename is: epg.xml


    Is it then a more suitable option, to add a menu option in the plugin menu, allowing to skip the extension checks?

    This if the user wants to run the risk that the file downloaded is not importable at all, and that he has to restart the whole device and not use again that source as EPG source.


    Something like: No filename checking (DANGEROUS)  NO/YES


    Default is then, still checking for the correct filename extension. And if the user want to run the risk, have EPGImport try to import the file that is download even if the filename extension is know up front. This only works, I think, for plain XML files.

  • The file is plain XML

    Code
    curl "http://some.domain.com/php?user=Jhon&password=12345678&token=qwerty" -o /media/hdd/epg.xml

    What's so difficult to get plain XML?

    Is it then a more suitable option, to add a menu option in the plugin menu, allowing to skip the extension checks?

    You have to understand that XMLTV is standardly set exactly in those "extensions" that are in the plugin code and nothing else.

    The Plug-in is that flexible that is has no problem with the unexpected format of the URL in the end.

    What's the point for one "crazy" who uses a non-standard XMLTV download link to make changes to the plugin code? So far you are the only one with this problem. The rest, more than 1000 users, have not complained yet :winking face:

  • When storing the file in advance, that works with the EPGImport (stand-alone) but not e2m3ubouquet due to that each time the e2m3u2b_iptv_green.sources.xml file is recreated when e2m3ubouquet is being executed.


    If you say that the epg.xml is read in with despite not being mentioned in e2m3u2b_iptv_green.sources.xml then I will give that on that user of e2m3ubouquet.


    It will work in the stand-alone version of EPGImport, if the sources config file is adapted accordingly.


    I am pleased that I can have it working in my situation and that EPGImport is that flexible that it handles that correctly. I would rather see that the EPG provider, would just provide according to what EPGImport is expecting and put it behind a login.

  • but not e2m3ubouquet *****

    If you say that the epg.xml is read in with despite not being mentioned in e2m3u2b_iptv_green.sources.xml then I will give that on that user of e2m3ubouquet.

    Are you sure you know how to use the e2m3u2b mod?

    Then write in the provider's card in the EPG url field - file:///media/hdd/epg.xml.gz and everything will work without any manual fixes and other fantasies

    For whom did I write this? And for what?


    Read carefully and thoughtfully several times, maybe then you will understand -> RE: E2m3u2bouquet Plugin

  • I tried it, exactly as you stated it, but EPGImport is then not working. I think because, in /etc/epgimport and /media/SD-card/E2m3ubouquet no files are created or a link created to the ...E2m3ubouquet/epg/ directory. The trace (journalctl -f) does not show EPGImport, despite it is activated.


    The file I downloaded I saved to: /media/hdd/epg.xml.gz and entered the link in the config.xml file.


    <epgurl><![CDATA[file:///media/hdd/epg.xml.gz]]></epgurl><!-- Forced loading events from the specified XMLTV EPG URL -->


    I could create that all manually including using a backup of the channels file so that EPGImport is able to import from the file.

  • no files are created

    Did I give you an example of how to download files using curl utility to a given folder? What do you not understand there? How does curl work? - information is available from Uncle Google

    From your description, I basically do not understand what files you expect? And why? What prevents you from manually filling in three lines from the RC?

    Code
    Provider Name
    M3U url
    EPG url

    And switch on "Import EPG after bouquet created" in Configuration menu

    /media/hdd/epg.xml.gz

    Are you sure that the XMLTV file you are downloading from the link is GZ? And if it's plain XML, then why are you downloading with GZ extension? Because it was in the example? What if I tell you to jump off a bridge? Will you also do it without delving into and without thinking?

    <epgurl><![CDATA[file:///media/hdd/epg.xml.gz]]></epgurl><!-- Forced loading events from the specified XMLTV EPG URL -->

    This is how the path to the XMLTV file located locally is set. All right. And if the specified file exists, then EPG events will be imported by e2m3u2b mod ...

    but EPGImport is then not working

    Everything can be seen in the plugin operation log. WHERE IS IT? I am not engaged in fortune-telling and fantasies of users.

  • That lines where present but the EPGImport switch was slready on. So I have to try again with disabling and enabling again.


    I have it working with downloading the file manually and reading it in and I am trying this for someone on a other forum.


    The file downloaded is in my case a plain XML file and I tried it with and XML extension and later with xml.gz extension.


    As I wrote there was no mention about EPImport in the trace ( journalctl -f ).


    Then in the end, by disabling the checks on the extensions all works out of the box and without any manually interventions and having the need for any fantasies. :smiling face with sunglasses:

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!