E2m3u2bouquet - discussion & support

There are 1,215 replies in this Thread which was already clicked 89,818 times. The last Post () by pepsik.

  • For a reason I don't understand, using PIL enabled, no picon are displayed on AOTV 7.4b.

    The only thing I can think of is that this image uses the latest version of PIL and in this version "Image.ANTIALIAS" is deprecated... but it should be visible in the plugin's DEBUG log. I'll install this latest version of OpenATV tomorrow and check what's up with the PIL library

    Currently oatv 7.4 is only in beta version and is outdated for a lot of packages. A lot of commits have to be made in oe-a 5.4 and oatv master repositories.

  • UPDATE


    1.2


    2) A step back in the naming of userbouquet files. Returned the previous file names due to repeated requests of users for userbouquets created by this plugin. Made for compatibility with other plugins in which the mandatory prefix "userbouquet" and suffix "key" in names of user bouquets is strictly set.

    Hello,


    Is the algorithm the same as the one used in 1.1. In fact are the generated ServiceRefs the same in both versions?


    Thanks

  • One question, how the process know which epgimport to process. In fact I have 4 providers in my epgimport directory, only 3 are processed. The fourth is a provider for which there is a problem with the m3u8 grab, unable to reach the source.

    But I'd like to process the epgimport for this provider because the xml is reachable and the .tv file exists because it was created before the problem to grab the m3u8.


    Thanks

  • , how the process know which epgimport to process.

    I don't understand the logic of what you explained ... but I will try to describe the algorithm of how the EPG is imported.


    There are two "branches" of logic

    1) If a link to the EPG source is NOT set in the provider's "card", it is considered that EPG link is set directly in the M3U file. In this case, the same M3U file must present tvg-id tags with values that coincide with the values of channel_id tags of a given EPG. Events will be selected by matching tvg-id and channel_id tag values

    2) If you have set the EPG source in the provider's "card", then in this case the EPG source will be searched for events by matching the channel name in M3U and the display-name of the EPG source.


    Regardless of which of the points 1) or 2) the logic worked out, the further behavior of the algorithm is the same

    1) Download EPG source (in RAM or on /tmp, it depends on the size of the downloaded file and availability of free space).

    2) A table of correspondence between serviceref and channel_id is created (these are the files you see in the /epg folder). These files are always saved again based on the results obtained by parsing M3U and downloaded EPG (from the previous point).

    3) Iterate over the EPG source and select the events for channel_id that are in the matching file (created in the previous point) and give this data as tuples to the standard eEPGCache class of the image you are using.

    4) Simplified and to understand the logic - eEPGCache, receives the data (previous point) and "creates" the epg.dat cache file


    If at any of the steps of the described logic a failure occurs, e.g. when downloading the EPG source... or the data received from the EPG source does not correspond to the data from M3U, etc. - there will be no EPG import


    Thus... no previously saved data is ever and under any circumstances used when importing an EPG

  • but it always creates only 2 bouquets,

    RE: [Plugin] E2m3u2bouquet - Clause 4.. This clause applies to all versions starting from 1.0.90

    4) This version is "Donationware" ... The basic functionality of the plugin, starting from this version, is limited to the ability to use the plugin with one provider and create bouquets containing no more than 300 channels. Everyone who has made a donation (ever) to the development will receive a key file that removes any restrictions


    thank you.

  • Hello pepsik, hello everyone,


    unfortunetely only few providers have markers in the groups (bouquets) of their playlists.


    So i thought, it would be a good thing, to have an option to create them, whenever bouquets based on custom sorting are created.


    Here is an example to illustrate, what I mean:


    If in ***override.xml a tvg-id="Marker" is found (or "9999" for example), then on generating the .channels.xml,

    it would be mapped to a channel with servicetype 64 (not hidden marker).


    ../override/****-sort-override.xml:
           <channels>
                  <groupe name="-- Общие --">
                         <channel enabled="1" name="== Уфа ==" tvg-id="Marker"/>
                         <channel enabled="1" name="ТНТ +2 (Уфа)" nameOverride="" tvg-id="3022" tvgidOverride="" reftypeOverride=""/>
                         <channel enabled="1" name="НТВ +2 (Уфа)" nameOverride="" tvg-id="2036" tvgidOverride="" reftypeOverride=""/>
                         <channel enabled="1" name="== Омск ==" tvg-id="Marker"/>
                         <channel enabled="1" name="ТНТ +4 (Омск)" nameOverride="" tvg-id="3012" tvgidOverride="" reftypeOverride=""/>
                         <channel enabled="1" name="НТВ +3 (Омск)" nameOverride="" tvg-id="2016" tvgidOverride="" reftypeOverride=""/>
                  </groupe>
           </channels>


    .../epgimport/e2m3u2b_*****.channels.xml.gz
           <channels>
                  <groupe name="-- Общие --">
                         <channel id="Marker">1:64:32:0:0:0:dddd0000:0:0:0:</channel><!-- == Уфа == -->
                         <channel id="3022">1:0:1:a492:e194:d17:dddd0000:0:0:0</channel><!-- ТНТ +2 (Уфа) -->
                         <channel id="2036">1:0:1:b9c5:2993:d17:dddd0000:0:0:0</channel><!-- НТВ +2 (Уфа) -->
                         <channel id="Marker">1:64:32:0:0:0:dddd0000:0:0:0:</channel><!-- == Омск == -->
                         <channel id="2034">1:0:1:aa14:47ef:d17:dddd0000:0:0:0</channel><!-- ТНТ +4 (Омск) -->
                         <channel id="3000">1:0:1:b065:329c:d17:dddd0000:0:0:0</channel><!-- НТВ +3 (Омск) -->
                  </groupe>
           </channels>


    Would be a nice feature to have. They would appear as a real marker in bouquets on our STB with all the amenities a marker has.

    What dou you think ?





    Edited 3 times, last by Box313 ().

  • 1:64

    I misunderstood your question. Apparently, you want to have "subgroups" within "groups" of channels...

    1:64:0 - by default, in any image it is reserved for a “named marker” (paperclip) in the bouquet... You propose to split the group using markers with a given name inside the bouquet. Right?


    p.s.Most likely it can be implemented using this logic


           <channels>
                  <groupe name="-- Общие --">

    <marker name="== Уфа == " id= "1:64:d17:0:0:0:0:0:0:0:">
                              <channel id="3022">1:0:1:a492:e194:d17:dddd0000:0:0:0</channel><!-- ТНТ +2 (Уфа) -->
                              <channel id="2036">1:0:1:b9c5:2993:d17:dddd0000:0:0:0</channel><!-- НТВ +2 (Уфа) -->

    <marker/>

    <marker name="== Омск == " id= "1:64:d17:0:0:0:0:0:0:0:">
                              <channel id="2034">1:0:1:aa14:47ef:d17:dddd0000:0:0:0</channel><!-- ТНТ +4 (Омск) -->
                              <channel id="3000">1:0:1:b065:329c:d17:dddd0000:0:0:0</channel><!-- НТВ +3 (Омск) --

    <marker/>

                  </groupe>
           </channels>


    Снимок экрана 2024-01-17 в 11.20.01.png


    But... adding markers is only possible manually... It is not possible to automate this process since there is nowhere to initially get data about either the name of the marker or its location in the list of channels

  • Or in a syntax that will be easier to implement when parsing XML


          <channels>

                  <groupe name="-- Общие --">

    <marker name="== Уфа == " >1:64:d17:0:0:0:0:0:0:0</marker>

                              <channel id="3022">1:0:1:a492:e194:d17:dddd0000:0:0:0</channel><!-- ТНТ +2 (Уфа) -->

                              <channel id="2036">1:0:1:b9c5:2993:d17:dddd0000:0:0:0</channel><!-- НТВ +2 (Уфа) -->

    <marker name="== Омск == " >1:64:d17:0:0:0:0:0:0:0</marker>

                              <channel id="2034">1:0:1:aa14:47ef:d17:dddd0000:0:0:0</channel><!-- ТНТ +4 (Омск) -->

                              <channel id="3000">1:0:1:b065:329c:d17:dddd0000:0:0:0</channel><!-- НТВ +3 (Омск) --

                  </groupe>

           </channels>

  • Hello,


    Did you change something with the last version on the load epg process? It seems that the load is not executed at the end of the process but during it. This has a strange effect, during this continuous load the epg isn't consistent and display bad epg. The epg is ok only at the end of the process, and this process can last several minutes.

    Another effect is to have on the screen the infobar signaling a new program but not the good one.

  • Yes, “named marker” (paperclip) in the bouquet... is exactly what i mean, by simply manually adding new lines in overwrite.xml and use them as a dummy.


    The screenshot you made, shows it perfectly. DId you already write some new code and try it?


    I thought, since you are loooping throu the tvg-id anyway, its easier to check against tvg-id value, like:


    if tvg-id="Marker" then create serviceref = "1:64:[counter]:0:0:0:00000000:0:0:0"


    but a <marker> tag is also a nice way


    i think, you cant use d17 as placeholder at third position because it is a counter.


    And of course some Infotext about this option at the top of the overwrite xml would be nice.

    Edited 12 times, last by Box313 ().

  • Did you change something with the last version on the load epg process?

    No. I have already answered this question for you. In the latest version, I simply returned the names of the bouquet files using the suffix "userbouqet" and the "extension" (prefix) - tv... No changes were made to the EPG import code

    OK so I've detected the issue I described in my previous post.

    Edited once, last by jeepcook ().

  • I thought, since you are loooping throu the tvg-id anyway, its easier to check against tvg-id value, like:

    Not quite like that... XML is converted into OrderedDict... and only then “playing” with OrderedDict - we get (generate) records in bouquet files. tvg-id is used to form a hash of the string... If you quickly read the topic 5-10 pages ago you will see a correspondence with jeepcook about this and why this is so...

  • during this continuous load the epg isn't consistent and display bad epg. The epg is ok only at the end of the process, and this process can last several minutes.

    From the point of view of the logic of the algorithm for importing data from XMLTV, there is no difference whether it is the first record, the tenth, or 100500... The process and logic are absolutely the same for each record... each event “node” in XMLTV is converted into a tuple of a certain format and given to the eEPGCache function of the image you are using.. The sources are available, moreover, they are carefully commented with reference to the DVB standard... you can see it for yourself

Participate now!

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