kodi-pvr / pvr.iptvsimple

IPTV Simple client for Kodi PVR
GNU General Public License v2.0
770 stars 372 forks source link

EPG info is missing for half of the channels #642

Open mYnDstrEAm opened 1 year ago

mYnDstrEAm commented 1 year ago

I don't know if these are the most up-to-date and best files to use* (for German-language TV) but I used the following EPG file for testing:

https://iptv-org.github.io/epg/guides/ch/tv.blue.ch.epg.xml.gz

which has this:

<channel id="DasErste.de"><display-name>Das Erste</display-name><icon src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Das_Erste_2014.svg/512px-Das_Erste_2014.svg.png"/><url>https://tv.blue.ch</url></channel>

and one of the m3u files at the bottom of https://github.com/satmike1/channels which has this:

#EXTINF:-1 tvg-id="ARD.de" tvg-name="Das_Erste_HD" tvg-shift="" radio="" tvg-logo="{...}" group-title="German",Das Erste HD (DE)
{url}

However, in Kodi there is no EPG info for "Das Erste HD". Around half of the channels have the same issue (EPG info is shown for the other half).


I previously discussed this issue to some extent in #640. I don't know how this problem could be solved most easily or in the best way, but here are my ideas so far:

phunkyfish said:

This should be manageable within the confines of the M3U and XMLTV formats. Channel synonyms are already supported via the display-name Element in the XMLTV

So I think we need some repo which provides some standardized unique names per channel or assigns some unique IDs to channels for many synonyms beyond trimming spaces and underscores (like ARD.de=ARD=DasErste=DasErsteHd). Maybe some trusted person could run this repo (and maybe only be able to update it if the changes pass various checks by at least some other devs). Current EPG files and/or m3u files would be translated to these standardized versions. This could also be done internally (by shipping a key-value store of channel synonyms) but the described way could roughly be the most straightforward way.


*making them easily findable or integrating them via a repo and dropdown options within the addon would be a separate issue. Moreover, I hope all the icons are cached only once and that changing the option does refresh the EPG / channels (there's no feedback like a popup saying "channels changed successfully").

phunkyfish commented 1 year ago

The problem is that the XMLTV channel entry is missing a synonym, this would work:

<channel id="DasErste.de">
   <display-name>Das Erste</display-name>
   <display-name>Das Erste HD</display-name>
   <icon src="https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Das_Erste_2014.svg/512px-Das_Erste_2014.svg.png"/> 
  <url>https://tv.blue.ch</url>
</channel>

Note the extra display-name that was added.

mYnDstrEAm commented 1 year ago

Thanks. However, that's not the solution for the issue of course.

phunkyfish commented 1 year ago

Thanks. However, that's not the solution for the issue of course.

  • Around half of the channels are affected, many but not all (or maybe even most) of them are small ones that I don't care much about whether or not they have EPG info.
  • This would need to be added to some EPG file in some repo.

Can you explain what you mean here further? Does the additional display-name fix the issue in question? If so it is the solution.

Please also bear in mind that the addon is not an XML aggregation tool and never will be. You would need to find other solutions to those problems. Such as IPTVMerge

mYnDstrEAm commented 1 year ago

Sure, it is not the full solution for the following reasons:

Extracting the xml file from the .gz file and manually editing it in a text-editor to add this synonym made the EPG info for the channel show up, thanks. Again, there needs to be a file people can use where all the channels have the EPG info set without requiring any manual changes by the user, which would solve the problem for all the channels and this open issue.

phunkyfish commented 1 year ago

There are countless tools available for manipulating XML files, the addon simply reads the file and assumes it is the complete set of data.

iptvsimple is different in that it’s a PVR addon with no backend. The files are the backend, manipulating these files should jot be done in the addon.

mYnDstrEAm commented 1 year ago

That's useful info but it doesn't negate anything what I've said in the comment above.

Your comment concerns only the 4th point, and there I would suggest that the addon does not manipulate the XML file but build this into internal logic that is run after reading file, which isn't changed. Basically like so:

keyValueStore = readEpgAndM3uFIles(config.epgurl, config.m3url);
matchedEpgAndM3u = unifyChannelsAndEpgInfo(keyValueStore);

where unifyChannelsAndEpgInfo does things like trimming spaces for all unmatched items and checking against a list of synonyms such as channelName + "HD" (as well as "ARD" for "DasErste" etc which can be gathered from the files).

phunkyfish commented 1 year ago

What’s stopping you from creating your own webservice that does exactly what you want?

You could parse the XML and output exactly the output you require. The addon would not need to change at all. WebGrab+ probably does everything you need if you have a custom set of channels and EPG data.

mYnDstrEAm commented 1 year ago

I guess somebody could do that, thanks for the infos. Some of the things are currently lack of time, and/or lack of skill and experience with the addon/Kodi internals etc for it to cost only a reasonable amount of time, ...

Also it would be better if this was done within the addon because then it doesn't depend so much on quality files / continuous maintenance of the EPG&M3U files or at the very least by somebody committing this in a way that people learn about it and use it such as telerising or https://github.com/iptv-org. (Other ideas are welcome and maybe I'll post an issue at the latter repo; maybe somebody else would like to code this or something like this within the addon.)

Lastly, for a more immediate solution, maybe I just need to get some other M3U and EPG files which are already up-to-date and properly matching than the ones above? If so, please comment too.

phunkyfish commented 1 year ago

What does “telerising” mean? We would never promote any source of iptv in the addon.

mYnDstrEAm commented 1 year ago

It's a link I found in some tutorial. Those tutorials are often outdated or include mismatching or dysfunctional EPG & M3U links.

You wouldn't need to promote any source of iptv in the addon to make things at least a bit simpler for the users. I would find a dropdown with simple options to select from best (maybe it shows only after installing some additional addon), but it would be good if you included some info that helps the user find up-to-date and matching EPG & M3U files.

I found https://github.com/Optickal/Test but that's not the (full) solution.

phunkyfish commented 1 year ago

I’m sorry but this functionally would never be added to the add-on. We point blank would never offer a selection of M3U or XML files.