No 'TV' menu entry, even after enabling PVR
#1
I have installed Kodi on my new Fire TV, enabled the MythTV PVR Client, enabled TV, and configured everything. System/System Info/PVR Service shows the MythTV version and server name, correct disk size and 193 recordings, but zero channels. However, the main Kodi menu bar (Pictures | Videos | Music | Programs | System) doesn't have a 'TV' entry, so I can't play any of my recorded television programs.

I am running:
- Amazon Fire TV v5.1.0 API level 22 (kernel: Linux 3.10.61+)
- Kodi v15.2
- MythTV PVR Client v2.7.4
- MythTV backend v0.27.5-60 (MythBuntu)

I installed Log Viewer for Kodi and see these errors:

- PVR...cannot find channel-1 on client 1
- AddOnLog: MythTV PVR Client: (CPPMyth)GetChannelList1_2: unexpected content
- AddOnLog: MythTV PVR Client: (CPPMyth)Document: failed to parse: 1:illegal unprintable codepoint in string

Has anyone seen (and hopefully fixed) this before? What additional troubleshooting should I do?

Thank you for your help!
Reply
#2
One (or more) of your channels contains an invalid character in its name or callsign. You have to clean up using mythtv-setup.
To check consistency of data try the URL using your favorite brower to your backend: http://[your backend IP]:6544/Channel/GetChannelInfoList . If your browser is able to read the document then all are fixed.
Reply
#3
Merci janbar; this was a very helpful suggestion.

http://[ip address]:6544/Channel/GetChannelInfoList parses fine in a browser, but all of the entries are zero or null:

<ChannelInfoList version="1.0" serializerVersion="1.1"><StartIndex>0</StartIndex><Count>81</Count><CurrentPage>1</CurrentPage><TotalPages>1</TotalPages><TotalAvailable>81</TotalAvailable><AsOf>2015-12-06T20:27:55Z</AsOf><Version>0.27.20151025-1</Version><ProtoVer>77</ProtoVer><ChannelInfos><ChannelInfo><ChanId>0</ChanId><ChanNum/><CallSign/><IconURL/><ChannelName/><MplexId>0</MplexId><TransportId>0</TransportId><ServiceId>0</ServiceId><NetworkId>0</NetworkId><ATSCMajorChan>0</ATSCMajorChan><ATSCMinorChan>0</ATSCMinorChan><Format/><Modulation/><Frequency>0</Frequency><FrequencyId/><FrequencyTable/><FineTune>0</FineTune><SIStandard/><ChanFilters/><SourceId>0</SourceId><InputId>0</InputId><CommFree>0</CommFree><UseEIT>false</UseEIT><Visible>true</Visible><XMLTVID/><DefaultAuth/><Programs/></ChannelInfo>

There are 80 more entries just like this one, ChanId = 0, no channel number, callsign, name, etc.

Looking at the Listings in http://[ip address]/mythweb/tv/list everything looks fine; I can see the channels, callsigns, and their guide data.

Looking at them in the channel editor I found two that had no name and two that had 'box' characters after the name. I edited all of those but GetChannelInfoList still returns zeroes and nulls. I then checked every channel name and callsign in the channel editor; some of them had what appeared to be blanks after the names; I deleted the blanks. Still no joy.

So, this is clearly a MythTV problem and I will post over there, but thank you again, and if anyone else has suggestions as useful as janbar's I would love to hear them.
Reply
#4
Aha, after reading https://github.com/MythTV-Clients/MythTV...issues/107 I tried http://[ip address]:6544/Channel/GetChannelInfoList?SourceID=1 and got a complete list with channel numbers, callsigns, logos, etc.

So what is the meaning of '?SourceID=1', and how do I:
1) get MythTV to return the full list without having to specify ?SourceID=1
OR
2) get the Kodi MythTV PVR addon to specify ?SourceID=1 when it asks for the channel listings?
Reply
#5
Hmmm, the MythTV documentation for GetChannelInfoList (https://www.mythtv.org/wiki/Channel_Serv...elInfoList) says that 'SourceID' is REQUIRED.

Asking Myth for a list of my video sources (http://[ip address]:6544/Channel/GetVideoSourceList) returns:

<VideoSourceList version="1.0" serializerVersion="1.1"><AsOf>2015-12-06T22:17:34Z</AsOf><Version>0.27.20151025-1</Version><ProtoVer>77</ProtoVer><VideoSources><VideoSource><Id>1</Id><SourceName>Antenna</SourceName><Grabber>schedulesdirect1</Grabber><UserId>*****</UserId><FreqTable>default</FreqTable><LineupId>PC:*****</LineupId><Password>*****</Password><UseEIT>true</UseEIT><ConfigPath/><NITId>-1</NITId></VideoSource></VideoSources></VideoSourceList>

This says that I have only one video source, with ID=1. So the Kodi MythTV PVR addon should already be specifying ?SourceID=1.

I am back to asking for good suggestions; I have no evidence that points clearly to either MythTV or to the Kodi MythTV PVR addon as the source of the problem.
Reply
#6
YES you are right, i missed the parameter SourceID:

http://[ip]:6544/Channel/GetChannelInfoList?SourceID=1

to get channel from source 1.
Reply
#7
So the returned document (xml) has to be conform and it has to be fully readable by your browser. Else you have to update invalid name or callsign of channels containing invalid character(s). Once done the addon will parse and register your channels and live TV will be available.
Reply
#8
http://[ip]:6544/Channel/GetChannelInfoList?SourceID=1 parses just fine in Firefox. I scanned it pretty carefully and didn't see any mis-formatting or invalid characters.
Reply
#9
The fact that the channel list parses correctly in Firefox suggests that the bug is in the Kodi MythTV PVR addon. How can I get additional logs or details of the problem from Kodi?
Reply
#10
If you have yet the error:
AddOnLog: MythTV PVR Client: (CPPMyth)GetChannelList1_2: unexpected content
AddOnLog: MythTV PVR Client: (CPPMyth)Document: failed to parse: 1:illegal unprintable codepoint in string

Please post the XML returned by the call: http://[ip]:6544/Channel/GetChannelInfoList?SourceID=1
You can post the xml using a private message if you think there is sensible informations.
Reply
#11
Addon get JSON content., So if you can provide me JSON it could be better. To do that with Firefox:

- Install the firefox module: "Modify Headers 0.7.1.1.1-signed" par Gareth Hunt, and restart firefox.
- Then in the top right corner you will find the module icon, clic it and select "Open modifyHeaders".
- choose action "Add", enter the header name "Accept", and the header value "application/json" , then clic Add
- clic on icon "Start" on the top left corner. Now you can close the window "Modify Headers".

run the request again: http://[ip]:6544/Channel/GetChannelInfoList?SourceID=1

Now the result should be as JSON content. If not then force refresh typing Ctrl+F5

Please post me the content. Thanks.

Also you can "Stop" the module "Modify headers" , clinking on the icon -> Stop.
Reply
#12
A sample of json content from 0.27:
Code:
{"ChannelInfoList": {"StartIndex": "0", "Count": "40", "CurrentPage": "1", "TotalPages": "1", "TotalAvailable": "40", "AsOf": "2015-12-10T18:08:58Z", "Version": "0.27.20151025-1", "ProtoVer": "77", "ChannelInfos": [{"ChanId": "1021", "ChanNum": "21", "CallSign": "Cinaps", "IconURL": "cinaps.jpg", "ChannelName": "Cinaps", "MplexId": "12", "TransportId": "8", "ServiceId": "2050", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "570166000", "FrequencyId": "33", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "true", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "1022", "ChanNum": "22", "CallSign": "IDF1", "IconURL": "idf1.jpg", "ChannelName": "IDF1", "MplexId": "12", "TransportId": "8", "ServiceId": "2051", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "570166000", "FrequencyId": "33", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "true", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "1024", "ChanNum": "24", "CallSign": "BFM Business Paris", "IconURL": "bfm_business.jpg", "ChannelName": "BFM Business Paris", "MplexId": "12", "TransportId": "8", "ServiceId": "2053", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "570166000", "FrequencyId": "33", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "true", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "1031", "ChanNum": "31", "CallSign": "PARIS PREMIERE", "IconURL": "paris_premiere.jpg", "ChannelName": "PARIS PREMIERE", "MplexId": "10", "TransportId": "4", "ServiceId": "1028", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "546166000", "FrequencyId": "30", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "false", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "1770", "ChanNum": "770", "CallSign": "CANAL+ CINEMA", "IconURL": "canalplus_fr_cinema.jpg", "ChannelName": "CANAL+ CINEMA", "MplexId": "17", "TransportId": "3", "ServiceId": "770", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "482166000", "FrequencyId": "", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "false", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "1771", "ChanNum": "771", "CallSign": "CANAL+ SPORT", "IconURL": "canalplus_pl_sport.jpg", "ChannelName": "CANAL+ SPORT", "MplexId": "17", "TransportId": "3", "ServiceId": "771", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "482166000", "FrequencyId": "", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "false", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "1772", "ChanNum": "772", "CallSign": "PLANETE+", "IconURL": "canalplus_pl_planete.jpg", "ChannelName": "PLANETE+", "MplexId": "17", "TransportId": "3", "ServiceId": "772", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "482166000", "FrequencyId": "", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "false", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "2539", "ChanNum": "1539", "CallSign": "LCI", "IconURL": "lci.jpg", "ChannelName": "LCI", "MplexId": "11", "TransportId": "6", "ServiceId": "1539", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "562166000", "FrequencyId": "", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "false", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "2540", "ChanNum": "1540", "CallSign": "Eurosport ", "IconURL": "eurosport.jpg", "ChannelName": "Eurosport ", "MplexId": "11", "TransportId": "6", "ServiceId": "1540", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "562166000", "FrequencyId": "", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "false", "XMLTVID": "", "DefaultAuth": "", "Programs": []},{"ChanId": "2541", "ChanNum": "1541", "CallSign": "TF6", "IconURL": "tf6.jpg", "ChannelName": "TF6", "MplexId": "11", "TransportId": "6", "ServiceId": "1541", "NetworkId": "8442", "ATSCMajorChan": "0", "ATSCMinorChan": "0", "Format": "", "Modulation": "auto", "Frequency": "562166000", "FrequencyId": "", "FrequencyTable": "france", "FineTune": "0", "SIStandard": "dvb", "ChanFilters": "", "SourceId": "1", "InputId": "0", "CommFree": "0", "UseEIT": "true", "Visible": "false", "XMLTVID": "", "DefaultAu...
Reply
#13
Ha! I tried it again and Kodi now shows me the 'TV' menu entry, and everything works. So you were right, but perhaps it required a reboot, and I didn't retest after rebooting. Merci again!
Reply
#14
MythTV is now returning JSON all the time, rather than XML. I stopped Modify-Headers and even rebooted MythTV but still get JSON. How do I get back to XML?
Reply
#15
I finally fixed it; I did this:
1) Installed Chrome
2) In Chrome, navigated to http://[ip]:6544/Channel/GetChannelInfoList?SourceID=1. This returned XML rather than JSON.
3) In Firefox, disabled Modify-Headers
4) In Firefox, navigated to http://[ip]:6544/Channel/GetChannelInfoList?SourceID=1. This returned XML rather than JSON.

Now in Kodi the MythTV PVR Client works properly.
Reply

Logout Mark Read Team Forum Stats Members Help
No 'TV' menu entry, even after enabling PVR0