Guide fetch fails with illegal character code U+0002

2024/04/13 21:16:02.388478 [M3U] Refreshed lineup for Plutojg with 393 channels
2024/04/13 21:16:26.967031 [DVR] Fetched guide data for XMLTV-Plutojg in 129ms
2024/04/13 21:16:27.600565 [ERR] No stations available in lineup XMLTV-Plutojg after guide data download: XML syntax error on line 129230: illegal character code U+0002
2024/04/13 21:16:28.227784 [ERR] Failed to get placeholder channels for lineup XMLTV-Plutojg: XML syntax error on line 129230: illegal character code U+0002

Waiting to see if the Maddox sourced Pluto source also fails.
It's choking on this BBC Home & Garden airing tomorrow night
The character code U+0002 is in the <desc> field between foot and ball-mad

Pluto EPG json in Maddox docker shows foot\u0002ball-mad

"description": "For Carol and Dick Hughes from Harborne in Birmingham, the needs of their four foot\u0002ball-mad, bicycle-riding sons must combine with the couple's penchant for outdoor entertaining and their dreams of simply using the garden to relax.",

But the Maddox docker cleans it up for export

<desc lang="en">For Carol and Dick Hughes from Harborne in Birmingham, the needs of their four football-mad, bicycle-riding sons must combine with the couple&apos;s penchant for outdoor entertaining and their dreams of simply using the garden to relax.</desc>

That means no more guide data for the jgomez Pluto docker until after 9pm tomorrow night.

@joagomez
Any chance you can add this function from your Plex docker to your Pluto for Channels docker?

Sounds like the EPG failed to complete download. Sources usually disappear also when that happens. Deleting the affected xml file will force sources to reappear and then you regt the xml file. Sometimes it takes a few tries before a complete xml file downloads. I get this usually 1-2x a week on one of my many sources so problem originates with provider having EPG issues. The xml files are located in the channels DVR data folder

Thanks for the reply, but here's the situation.
Channels DVR downloaded the XMLTV guide data but failed to parse that downloaded XMLTV because of the invalid character (as evidenced in the log).
The invalid character in the guide data won't go away until after its airtime is passed and a new guide fetch happens, or the dev for the source fixes the docker to strip invalid characters.
Displaying the grid guide, the latest airings shown on all channels are 6pm tonight (and it takes a long time for Channels DVR to populate the guide for display while it uses 26% CPU).

I just tried a Delete and Recreate guide database, but the root cause of the error is what I just explained, and now Channels DVR doesn't display any guide data and it still takes a long time for Channels DVR to populate the guide for display while it uses 26% CPU.

Just a heads up that the next record also shares the same issue:

But these were the only two I saw. I manually update the XML to replace the character "" (which trust me, is there between the quote marks, but the board can't render it either) with nothing and then reloaded the XML. Channels was much happier after that. I suppose that will only keep me safe until the next update in four hours, but at least there are some workarounds until @joagomez can update the code.


PS: This is what it looks like to me:
image

I was curious if that \u0002 character is there on the Pluto.tv website.
It is! Of course it's not visible.

But copying the description there and pasting it in Notepad++ I can see it.

FYI:

Man step away for one day and all heck breaks loose - lol

Updated the with the same error handling as my plex docker so hopefully that avoids these issues. Also updated the url to use a channel_id_format parameter (still left the old url as well for those using it). Hopefully I didn't break anything else as I rushed through it :slight_smile:

4 Likes

Got your update running and so far, so good!

I don’t see any reason to just reimplement what @joagomez has done, especially with his quick fix and being attentive.

I’m going to officially retire the original Pluto for Channels and point at @joagomez’s repo.

Long live @joagomez, the person now responsible for Pluto for Channels! :joy:

Thanks @joagomez!

Congrats @joagomez .... just switched to yours eliminated maddox :handshake:

Actually, @maddox, please leave your container up... recordings in your container work as they should, but with the @joagomez container they end up interrupted. I'm crossposting here just to make sure you don't retire your container just yet!