plugin.video.tv3.cat icon indicating copy to clipboard operation
plugin.video.tv3.cat copied to clipboard

problem with live channels

Open claudeha opened this issue 3 years ago • 2 comments

Hi, I'm using latest LibreELEC minimal OS for Kodi on rpi4, but had some problems with Live Channels in this plugin/addon for tv3cat (symptom: clicking live channels in the addon ui would just display an error in the top right saying to check log). Here is a log snippet:

2022-05-28 15:35:46.000 T:10478   DEBUG <general>: plugin.video.tv3.cat classe UI - run()  mode = ['directe']
2022-05-28 15:35:46.000 T:10478   DEBUG <general>: -----------------listDirecte--------------------
2022-05-28 15:35:46.413 T:10478   ERROR <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'AttributeError'>
                                                   Error Contents: 'str' object has no attribute 'get'
                                                   Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.tv3.cat/addon.py", line 32, in <module>
                                                       ui.run(mode, url)
                                                     File "/storage/.kodi/addons/plugin.video.tv3.cat/resources/lib/ui/UI.py", line 116, in run
                                                       lVideos = self.tv3.listDirecte()
                                                     File "/storage/.kodi/addons/plugin.video.tv3.cat/resources/lib/tv3cat/TV3cat.py", line 314, in listDirecte
                                                       nameChannel = c[i].get('ara_fem', {}).get('codi_canal', None)
                                                   AttributeError: 'str' object has no attribute 'get'
                                                   -->End of Python script error report<--

I edited plugin.video.tv3.cat/resources/lib/tv3cat/TV3cat.py to add try/except around line 314 and following, and then the error changed:

2022-05-28 15:43:37.483 T:10532   DEBUG <general>: -----------------listDirecte--------------------
2022-05-28 15:43:37.775 T:10532   ERROR <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'UnboundLocalError'>
                                                   Error Contents: local variable 'infotv3' referenced before assignment
                                                   Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.tv3.cat/addon.py", line 32, in <module>
                                                       ui.run(mode, url)
                                                     File "/storage/.kodi/addons/plugin.video.tv3.cat/resources/lib/ui/UI.py", line 116, in run
                                                       lVideos = self.tv3.listDirecte()
                                                     File "/storage/.kodi/addons/plugin.video.tv3.cat/resources/lib/tv3cat/TV3cat.py", line 346, in listDirecte
                                                       infolabelstv3['plot'] = infotv3
                                                   UnboundLocalError: local variable 'infotv3' referenced before assignment
                                                   -->End of Python script error report<--

so I just initialized like infotv3 = 'n/a' (and the other similar variables) before the blocks where they are set/used...

Here are all the changes I made that got live Catalan TV working for me:

$ diff -u TV3cat.py.orig TV3cat.py
--- TV3cat.py.orig	2022-05-28 15:50:13.127127849 +0100
+++ TV3cat.py	2022-05-28 15:50:13.099127586 +0100
@@ -311,6 +311,7 @@
 
                 i = 0
                 while i < 5:
+                  try:
                     nameChannel = c[i].get('ara_fem', {}).get('codi_canal', None)
 
                     if nameChannel == 'tv3':
@@ -325,14 +326,16 @@
                     if nameChannel == '324':
                         arafem324 = c[i].get('ara_fem', {}).get('titol_programa', None)
                         arafem324_sinop = c[i].get('ara_fem', {}).get('sinopsi', None)
-
-                    i = i + 1
+                  except AttributeError:
+                    pass
+                  i = i + 1
 
             infolabelstv3 = {}
             infolabels324 = {}
             infolabels33 = {}
             infolabelsesp3 = {}
 
+            infotv3 = 'n/a'
             if arafemtv3:
                 infolabelstv3['title'] = arafemtv3
                 infotv3 = '[B]' + arafemtv3 + '[/B]' + '[CR]'
@@ -343,6 +346,7 @@
 
             infolabelstv3['plot'] = infotv3
 
+            info33 = 'n/a'
             if arafem33:
                 infolabels33['title'] = arafem33
                 info33 = '[B]' + arafem33 + '[/B]' + '[CR]'
@@ -353,6 +357,7 @@
 
             infolabels33['plot'] = info33
 
+            infoesp3 = 'n/a'
             if arafemesp3:
                 infolabelsesp3['title'] = arafemesp3
                 infoesp3 = '[B]' + arafemesp3 + '[/B]' + '[CR]'
@@ -363,6 +368,7 @@
 
             infolabelsesp3['plot'] = infoesp3
 
+            info324 = 'n/a'
             if arafem324:
                 infolabels324['title'] = arafem324
                 info324 = '[B]' + arafem324 + '[/B]' + '[CR]'

Thanks very much for your work on this plugin/addon, it's really appreciated. If you would prefer, I can make a pull request with the above changes.

claudeha avatar May 28 '22 15:05 claudeha

This fix no longer works.

I think TV3 have changed their streaming system, now the web-based player accesses separate playlists of sound and video fragments (each about 6 seconds long, with slightly different start times) that need to be downloaded and multiplexed somehow.

I'm in the UK, testing the international broadcast streams.

claudeha avatar Jul 01 '22 16:07 claudeha

Hey, from the new website, I made a first iteration. https://github.com/mcr222/plugin.video.3cat/releases/tag/v1.0.0

I have not done live channels though if you wanna collaborate on that.

mcr222 avatar Oct 14 '24 22:10 mcr222