Seconded. I've been working on a tool for my own use to munge M3U files from providers into something more sensible - automatically, since I've become tired of the constant maintenance required when using iptveditor or 'EPG for IPTV'. M3U files are anything but static.
Both M3U and XMLTV are interpreted somewhat 'loosely' by some providers, and it's hard to code something that 'just works' without user intervention when fed with some of the 'creative' interpretations you're presented with. Some of the metadata I want to extract (e.g. country of origin, resolution) are often only found in the group title or channel title, and not always strictly correct (SD/HD/FHD in a channel title vs. the group title it's in, US channels appearing in Canadian groups, etc.) Then there's the fun and games of trying to make sense of the same stream appearing under different channel names in different groups, fun stuff like making sure that 'BBC 1' and 'BBC One' are seen to be the same, but different from 'BBC 1 Scotland' etc.
None of these particular examples are that difficult to solve individually, but the sheer number of them, and the possibility of the solutions to one problem interacting with another, make the goal of it just doing 'the right thing' every time surprisingly difficult. And I haven't even gotten to the issues with how many different ways are used to identify local channels. I'm still pondering if there's an automatic way I can reliably map M3U streams to EPG listings - it's not looking that promising, even after I've canonicalized the station name to something somewhat consistent.