Kodi Community Forum

Full Version: IPTV Recorder
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Full EPG only shows channels and no data when clicking them

Enabled debug menu

Hit service and nothing happening

Hit Nuke and it looks like it re-downloads the xmltv but still no epg data available

M3U Example:

#EXTM3U
#EXTINF:-1 tvg-name="502_WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS
http://IP:8080/auto/v502
#EXTINF:-1 tvg-name="504_WNBCDT" tvg-logo="special://home/media\Logos\NBC.png",NBC
http://IP:8080/auto/v504

XMLTV Example:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv source-info-url="http://tvschedule.zap2it.com/" source-info-name="zap2it.com" generator-info-name="zap2xml" generator-info-url="[email protected]">
    <channel id="C502wcbsdt.zap2it.com">
        <display-name>502 WCBSDT</display-name>
        <display-name>502</display-name>
        <display-name>WCBSDT</display-name>
        <icon src="https://zap2it.tmsimg.com/h3/NowShowing/16689/s28711_h3_aa.png"/>
    </channel>
    <channel id="C504wnbcdt.zap2it.com">
        <display-name>504 WNBCDT</display-name>
        <display-name>504</display-name>
        <display-name>WNBCDT</display-name>
        <icon src="https://zap2it.tmsimg.com/h3/NowShowing/20459/s28717_h3_aa.png"/>
    </channel>
(2018-04-10, 19:30)hotshot2k3 Wrote: [ -> ]Full EPG only shows channels and no data when clicking them

Enabled debug menu

Hit service and nothing happening

Hit Nuke and it looks like it re-downloads the xmltv but still no epg data available

M3U Example:

#EXTM3U
#EXTINF:-1 tvg-name="502_WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS
http://IP:8080/auto/v502
#EXTINF:-1 tvg-name="504_WNBCDT" tvg-logo="special://home/media\Logos\NBC.png",NBC
http://IP:8080/auto/v504

XMLTV Example:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE tv SYSTEM "xmltv.dtd">
<tv source-info-url="http://tvschedule.zap2it.com/" source-info-name="zap2it.com" generator-info-name="zap2xml" generator-info-url="[email protected]">
    <channel id="C502wcbsdt.zap2it.com">
        <display-name>502 WCBSDT</display-name>
        <display-name>502</display-name>
        <display-name>WCBSDT</display-name>
        <icon src="https://zap2it.tmsimg.com/h3/NowShowing/16689/s28711_h3_aa.png"/>
    </channel>
    <channel id="C504wnbcdt.zap2it.com">
        <display-name>504 WNBCDT</display-name>
        <display-name>504</display-name>
        <display-name>WNBCDT</display-name>
        <icon src="https://zap2it.tmsimg.com/h3/NowShowing/20459/s28717_h3_aa.png"/>
    </channel>
That won't match.

You need to have a tvg-id field in the m3u that matches the channel id in the xmltv.

eg

Code:
#EXTINF:-1 tvg-id="C502wcbsdt.zap2it.com" tvg-name="502_WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS

<channel id="C502wcbsdt.zap2it.com">

or less nice but possible

Code:
#EXTINF:-1  tvg-name="502_WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS

<channel id="CBS">
zap2it has been changing the channel id's almost weekly and its too much work to keep changing it, the only thing that doesn't change is the name

I tried this but it did not work, is that what you meant by the 2nd example?

#EXTINF:-1 channel-id="CBS" tvg-name="502_WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS
(2018-04-10, 19:50)hotshot2k3 Wrote: [ -> ]zap2it has been changing the channel id's almost weekly and its too much work to keep changing it, the only thing that doesn't change is the name

I tried this but it did not work, is that what you meant by the 2nd example?

#EXTINF:-1 channel id="CBS" tvg-name="502_WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS
 "channel id" is an xmltv thing.
"tvg-id" is an m3u thing.
the name after the comma "," is an m3u thing.

If you get the xmltv from zap or elsewhere and have no control over it, then I would recommend you make a local copy of the m3u file and add the tvg-id fields in so that they match the xmltv channel ids.

You could add in a hack in main.py to automate it if you know a bit of python.
This might help you understand what is going on.

xmltv format
http://wiki.xmltv.org/index.php/XMLTVFormat

m3u format
https://kodi.wiki/view/Add-on:IPTV_Simple_Client#Usage
Got it,  I see what you are saying, probably won't work for me since I have no control over the xmltv data.

Hopefully in the future you could add a setting to add support for the "tvg-name" parameter which corresponds to the display-name in the xmltv file

IPTV Simple PVR works with the tvg-name parameter and does not need a channel-id in the .m3u
I'll see if I can add it in for you.
It looks like it would be a lot of work for you to do by hand.
Try 0.0.16.

I've put a fallback in for you.
If there is no tvg-id in the stream it will try to match the tvg-name to the first display-name in the xmltv file and set the tvg-id to the channel id.
If there is also no tvg-name it will try to match the name after the comma to the first display-name.

I really don't want to check against all the display names as this is getting complicated enough already.
I get this when clicking Channel Groups --> All Channels
Full EPG is also unchanged

17:57:05.961 T:2100  NOTICE: [xbmcswift2] Request for "/group/All+Channels" matches rule for function "group"
17:57:05.963 T:2100 WARNING: [xbmcswift2] No converter provided, unicode should be used, but returning str value
17:57:05.964 T:2100   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.AttributeError'>
                                            Error Contents: 'NoneType' object has no attribute 'encode'
                                            Traceback (most recent call last):
                                              File "C:\Users\timot\AppData\Roaming\Kodi\addons\plugin.video.iptv.recorder\main.py", line 2070, in <module>
                                                plugin.run()
                                              File "C:\Users\timot\AppData\Roaming\Kodi\addons\script.module.xbmcswift2\lib\xbmcswift2\plugin.py", line 332, in run
                                                items = self._dispatch(self.request.path)
                                              File "C:\Users\timot\AppData\Roaming\Kodi\addons\script.module.xbmcswift2\lib\xbmcswift2\plugin.py", line 306, in _dispatch
                                                listitems = view_func(**items)
                                              File "C:\Users\timot\AppData\Roaming\Kodi\addons\plugin.video.iptv.recorder\main.py", line 1466, in group
                                                channelid =channelid.encode("utf8")
                                            AttributeError: 'NoneType' object has no attribute 'encode'
                                            -->End of Python script error report<--
17:57:05.981 T:6476   ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.video.iptv.recorder/group/All+Channels
17:57:05.981 T:6476   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.iptv.recorder/group/All+Channels) failed
17:57:06.278 T:5180 WARNING: [xbmcswift2] No converter provided, unicode should be used, but returning str value
17:57:06.288 T:5180  NOTICE: [xbmcswift2] Request for "/groups" matches rule for function "groups"
17:57:06.289 T:5180 WARNING: [xbmcswift2] No converter provided, unicode should be used, but returning str value
17:57:11.859 T:7524 WARNING: Previous line repeats 1 times.
17:57:11.859 T:7524  NOTICE: [xbmcswift2] Request for "/full_service" matches rule for function "full_service"
17:57:11.930 T:7524 WARNING: [xbmcswift2] No converter provided, unicode should be used, but returning str value
Should I be able to record the same show on a weekly basis without any user input?

Say I want to record “GNS” on BBC1 and it starts on Friday 15.30 MST for 1 hour.

Will it record BBC1 weekly starting at 15.30 MST every week regardless of what is playing? Or will it look and see if a different show is playing in the guide,if so not record?

Obviously can’t record 2 shows at the same time but if I set 2 shows to record on the same day at different times, should it record both without any input?

Thanks for another amazing addon @primeval you are by far the best dev I have had the pleasure of knowing. Always there to help.
(2018-04-11, 00:00)hotshot2k3 Wrote: [ -> ]I get this when clicking Channel Groups --> All Channels
Full EPG is also unchanged

17:57:05.961 T:2100  NOTICE: [xbmcswift2] Request for "/group/All+Channels" matches rule for function "group"
17:57:05.963 T:2100 WARNING: [xbmcswift2] No converter provided, unicode should be used, but returning str value
17:57:05.964 T:2100   ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                             - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                            Error Type: <type 'exceptions.AttributeError'>
                                            Error Contents: 'NoneType' object has no attribute 'encode'
                                            Traceback (most recent call last):
                                              File "C:\Users\timot\AppData\Roaming\Kodi\addons\plugin.video.iptv.recorder\main.py", line 2070, in <module>
                                                plugin.run()
                                              File "C:\Users\timot\AppData\Roaming\Kodi\addons\script.module.xbmcswift2\lib\xbmcswift2\plugin.py", line 332, in run
                                                items = self._dispatch(self.request.path)
                                              File "C:\Users\timot\AppData\Roaming\Kodi\addons\script.module.xbmcswift2\lib\xbmcswift2\plugin.py", line 306, in _dispatch
                                                listitems = view_func(**items)
                                              File "C:\Users\timot\AppData\Roaming\Kodi\addons\plugin.video.iptv.recorder\main.py", line 1466, in group
                                                channelid =channelid.encode("utf8")
                                            AttributeError: 'NoneType' object has no attribute 'encode'
                                            -->End of Python script error report<--
17:57:05.981 T:6476   ERROR: XFILE::CDirectory::GetDirectory - Error getting plugin://plugin.video.iptv.recorder/group/All+Channels
17:57:05.981 T:6476   ERROR: CGUIMediaWindow::GetDirectory(plugin://plugin.video.iptv.recorder/group/All+Channels) failed
17:57:06.278 T:5180 WARNING: [xbmcswift2] No converter provided, unicode should be used, but returning str value
17:57:06.288 T:5180  NOTICE: [xbmcswift2] Request for "/groups" matches rule for function "groups"
17:57:06.289 T:5180 WARNING: [xbmcswift2] No converter provided, unicode should be used, but returning str value
17:57:11.859 T:7524 WARNING: Previous line repeats 1 times.
17:57:11.859 T:7524  NOTICE: [xbmcswift2] Request for "/full_service" matches rule for function "full_service"
17:57:11.930 T:7524 WARNING: [xbmcswift2] No converter provided, unicode should be used, but returning str value
 It looks like your streams aren't getting read in from the m3u file.

The addon caches the xmltv and m3u files locally.
Look in the contents of these files to see if they have been downloaded properly.
userdata\addon_data\plugin.video.iptv.recorder\channels1.m3u
userdata\addon_data\plugin.video.iptv.recorder\xmltv1.xml

Then use something like this to look in the xmltv.db file in the same directory.
http://sqlitebrowser.org/

Look in the streams table in Browse Data and see if the tvg_id values are filled in and match the channelid values in the programmes table.

The streams table is from the m3u and the channels table is from the xmltv.

If everything looks ok pm me your data and I'll have a look.
(2018-04-11, 01:43)ed_davidson01 Wrote: [ -> ]Should I be able to record the same show on a weekly basis without any user input?

Say I want to record “GNS” on BBC1 and it starts on Friday 15.30 MST for 1 hour.

Will it record BBC1 weekly starting at 15.30 MST every week regardless of what is playing? Or will it look and see if a different show is playing in the guide,if so not record?

Obviously can’t record 2 shows at the same time but if I set 2 shows to record on the same day at different times, should it record both without any input?

Thanks for another amazing addon @primeval you are by far the best dev I have had the pleasure of knowing. Always there to help.
 Thanks.

If you use the Daily Record it will match any day at the same time with the same title.
If "GNS" is only on Friday at 15:30 it will just record that every week.
If GNS is also on Monday at 15:30 it will record that too.

If you do another GNS Daily Record at a different time it will record that too but with the different time rule.
The match is for Title,Start,Stop.

Record Always just matches Title.

All current Rules are on the same channel.

You can also make a Rule to do a Wildcard Title or Plot Search by right clicking on the Channel.
So you could record all shows on a channel that mention something you are interested in in the plot or description.
I found the issue:

This doesn't work:
#EXTINF:-1 tvg-name="502_WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS

This does work:
#EXTINF:-1 tvg-name="502 WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS

The difference is the underscore between 502 WCBSDT.  IPTV simple client can't read it without the underscore but your addon can.
If its not fixable on your end I might just make a local copy of the .m3u without the underscores
(2018-04-11, 13:20)hotshot2k3 Wrote: [ -> ]I found the issue:

This doesn't work:
#EXTINF:-1 tvg-name="502_WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS

This does work:
#EXTINF:-1 tvg-name="502 WCBSDT" tvg-logo="special://home/media\Logos\CBS.png",CBS

The difference is the underscore between 502 WCBSDT.  IPTV simple client can't read it without the underscore but your addon can.
If its not fixable on your end I might just make a local copy of the .m3u without the underscores
 Are you sure you have the latest version because I do a replacement of _ for spaces?
Code:
tvg_name = tvg_name.replace("_"," ")
https://github.com/primaeval/plugin.vide...n.py#L1930

Try commenting out that line and do a NUKE or Reload Data.
To comment it out put a # before the tvg_name
Code:
#tvg_name = tvg_name.replace("_"," ")
Yep on the latest version. I tried commenting it out but it still does not show any EPG info unless I take out the underscore