In the provider's m3u8 I will use their original tvg-id as known in the epg.dat .
1) There is no dependency between epg.dat and tvg-id in m3u playlist at all ... epg.dat is the cache file that creates the E2 image you use to store the eEPGCache data ... The unique keys for EPG events and other EPG info in it are not tvg-id, but a combination of SID:TSID:ONID from serviceref record from your "bouquet
I have some channels from a bouquet generating by a plugin, and for these channels I have an EPG.
2) In order to implement your wish, I need to redo the code in such a way that you can specify a list of EPG sources for one playlist. Those, the logic should assume that within the same playlist it contains tvg-id tags with values from different XMLTV sources ... Basically, it's kind of absurd... The fact is that there are certain well-established rules for the EXTM3U format ... These rules assume the presence of certain tags and their values that are associated with certain logic.
Let's look at a simple example
#EXTM3U url-tvg="http://some.domain.com/epg.xml.gz"
#EXTINF:0 group-title="Спорт" tvg-id="6574",FOX SPORTS OKLAHOMA HD
http://some.domain.com/iptv/key/19146/index.m3u8
#EXTINF:0 group-title="Спорт" tvg-id="6575",Bally Sports Great Lakes
http://some.domain.com/iptv/key/19146/index.m3u8
#EXTINF:0 group-title="Спорт" tvg-id="6576",BALLY SPORTS SUN
http://some.domain.com/iptv/key/19146/index.m3u8
#EXTINF:0 group-title="Спорт" tvg-id="6577",BALLY SPORTS SOUTHEAST CAROLINAS
Everything is logical here. We have an EPG source specified as a url-tvg tag value and a tvg-id tag value, data for which must be unambiguously retrieved or found in the specified EPG source
Now a small example of what you want
#EXTM3U url-tvg="http://some.domain.com/epg.xml.gz, http://some.domain.com/epg2.xml.gz"
#EXTINF:0 group-title="Спорт" tvg-id="6574",FOX SPORTS OKLAHOMA HD http://some.domain.com/iptv/key/19146/index.m3u8 #EXTINF:0 group-title="Спорт" tvg-id="6575",Bally Sports Great Lakes http://some.domain.com/iptv/key/19146/index.m3u8 #EXTINF:0 group-title="Спорт" tvg-id="6576",BALLY SPORTS SUN http://some.domain.com/iptv/key/19146/index.m3u8 #EXTINF:0 group-title="Спорт" tvg-id="6577",BALLY SPORTS SOUTHEAST CAROLINAS
In which of the EPG sources, in this case, to look for data for the values of the tag tvg-id="6574"? And for tvg-id="6577"? In both? But XMLTV doesn't support searching by index... it always iterates over each row looking for the right one... By adding records from different playlists to m3u and adding different EPG sources there, you significantly increase the data processing time, since you have to "iterate through" exactly as many EPG sources as specified ... 70% of the EPG sources I've come across contain millions of records... how fast will that work?
All "commercial" providers use the first variant of the formation of the logic for building m3u playlists described by me in the "simple example"
The second option (your wish) I met only in "home-made" playlists found on the Internet that were "blinded" by some enthusiasts who completely do not understand what EXTM3U is and how it works then in the code of any m3u playlist parser
Thus, should I deviate from the established rules and norms of the EXTM3U standard in the plugin code, which is used by 99% of "commercial" providers for the sake of 1% of enthusiasts?