add-ons / plugin.video.vtm.go

Kodi add-on to watch video-on-demand content and live streams from VTM GO.
https://github.com/add-ons/plugin.video.vtm.go/wiki
GNU General Public License v3.0
78 stars 26 forks source link

Kodi crashes on library update of TV Shows with VTM Go 1.2.6 matrix #280

Closed badoneti closed 2 years ago

badoneti commented 3 years ago

Describe the bug Kodi crashes on kodi library update using VTM Go 1.2.6 matrix Not sure whether it is related: watching VTM Go via the addon seems to work, but for TV shows it doesn't indicate which episode were already watched.

To Reproduce Steps to reproduce the behavior:

  1. Start kodi with update library option enabled (all fine when this is disabled)
  2. Update scans movies OK
  3. Update scans tv shows --> crash log `#24044 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24045 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24046 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24047 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24048 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24049 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24050 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24051 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24052 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24053 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24054 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24055 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24056 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24057 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24058 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24059 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24060 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24061 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24062 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24063 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24064 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24065 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24066 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24067 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24068 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24069 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24070 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24071 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24072 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24073 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24074 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24075 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24076 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24077 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24078 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24079 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24080 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24081 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24082 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24083 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24084 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24085 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24086 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24087 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24088 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24089 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24090 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24091 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24092 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24093 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24094 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24095 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24096 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24097 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24098 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24099 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24100 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24101 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24102 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24103 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24104 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24105 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24106 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24107 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24108 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24109 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24110 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24111 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24112 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24113 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24114 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24115 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24116 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24117 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24118 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24119 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24120 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24121 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24122 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24123 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24124 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24125 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24126 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24127 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24128 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24129 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24130 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24131 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24132 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24133 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24134 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24135 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24136 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24137 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24138 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24139 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24140 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24141 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24142 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24143 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24144 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24145 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24146 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24147 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24148 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24149 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24150 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24151 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24152 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24153 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24154 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24155 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24156 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24157 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24158 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24159 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24160 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24161 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24162 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24163 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24164 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24165 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24166 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24167 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24168 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24169 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24170 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24171 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24172 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24173 0x0000000000dbf2ce in XFILE::COverrideFile::Stat(CURL const&, stat64*) ()

    24174 0x0000000000dbb00d in XFILE::CFile::Stat(CURL const&, stat64*) ()

    24175 0x0000000000dbb346 in XFILE::CFile::Stat(std::string const&, stat64*) ()

    24176 0x00000000008facab in CVideoDatabase::AddPathToTvShow(int, std::string const&, std::string const&, CDateTime const&) ()

    24177 0x000000000090504a in CVideoDatabase::SetDetailsForTvShow(std::vector<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > > const&, CVideoInfoTag&, std::map<std::string, std::string, std::less, std::allocator<std::pair<std::string const, std::string> > > const&, std::map<int, std::map<std::string, std::string, std::less, std::allocator<std::pair<std::string const, std::string> > >, std::less, std::allocator<std::pair<int const, std::map<std::string, std::string, std::less, std::allocator<std::pair<std::string const, std::string> > > > > > const&, int) ()

    24178 0x000000000093c212 in VIDEO::CVideoInfoScanner::AddVideo(CFileItem, CONTENT_TYPE const&, bool, bool, CVideoInfoTag const, bool) ()

    24179 0x000000000093e12d in VIDEO::CVideoInfoScanner::RetrieveInfoForTvShow(CFileItem, bool, std::shared_ptr&, bool, CScraperUrl, bool, CGUIDialogProgress*) ()

    24180 0x000000000093f330 in VIDEO::CVideoInfoScanner::RetrieveVideoInfo(CFileItemList&, bool, CONTENT_TYPE, bool, CScraperUrl, bool, CGUIDialogProgress) ()

    24181 0x00000000009404d2 in VIDEO::CVideoInfoScanner::DoScan(std::string const&) ()

    24182 0x0000000000937360 in VIDEO::CVideoInfoScanner::Process() ()

    24183 0x00000000008b9f3d in CVideoLibraryScanningJob::Work(CVideoDatabase&) ()

    24184 0x00000000008bf0ed in CVideoLibraryJob::DoWork() ()

    24185 0x000000000098e3ea in CJobWorker::Process() ()

    24186 0x00000000009c1cd2 in CThread::Action() ()

    24187 0x0000000000e29055 in ?? ()

    24188 0x00000000009cb2c0 in ?? ()

    24189 0x00007efcfeb64040 in ?? () from /usr/lib/libstdc++.so.6

    24190 0x00007efd01dd6ebe in start_thread (arg=0x7efccb015640) at pthread_create.c:463

    24191 0x00007efcfed58c8f in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95`

Expected behavior TV shows update like before (v1.2.5 before the API issue)

System

FilipDem commented 3 years ago

Similar problem here. I installed the new version from the ZIP... Installation was successful however login did not succeeded. Afterwards I removed the app (not the data) and installed it again. It leads to the same problem. If I ask the version number of the app, it still says 1.2.5

2021-05-04 21:22:15.643 T:1254     INFO <general>: Python interpreter interrupted by user
2021-05-04 21:22:23.157 T:720      INFO <general>: Loading skin file: FileBrowser.xml, load type: KEEP_IN_MEMORY
2021-05-04 21:22:30.175 T:1319     INFO <general>: CAddonMgr::FindAddon: plugin.video.vtm.go v1.2.6+matrix.1 installed
2021-05-04 21:22:30.203 T:1326     INFO <general>: initializing python engine.
2021-05-04 21:22:30.407 T:720   WARNING <general>: CGUIMediaWindow::OnMessage - updating in progress
2021-05-04 21:22:31.430 T:1326    ERROR <general>: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--
                                                    - NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS!
                                                   Error Type: <class 'resources.lib.vtmgo.exceptions.InvalidTokenException'>
                                                   Error Contents: 401 Client Error: Unauthorized for url: https://lfvp-api.dpgmedia.net/vtmgo/catalog?pageSize=2000
                                                   Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/vtmgo/util.py", line 42, in http_get
                                                       return _request('GET', url=url, params=params, token=token, profile=profile, headers=headers)
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/vtmgo/util.py", line 177, in _request
                                                       response.raise_for_status()
                                                     File "/storage/.kodi/addons/script.module.requests/lib/requests/models.py", line 943, in raise_for_status
                                                       raise HTTPError(http_error_msg, response=self)
                                                   requests.exceptions.HTTPError: 401 Client Error: Unauthorized for url: https://lfvp-api.dpgmedia.net/vtmgo/catalog?pageSize=2000

                                                   During handling of the above exception, another exception occurred:

                                                   Traceback (most recent call last):
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/service_entry.py", line 17, in <module>
                                                       run()
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/service.py", line 191, in run
                                                       BackgroundService().run()
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/service.py", line 40, in run
                                                       self._update_metadata()
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/service.py", line 65, in _update_metadata
                                                       success = Metadata().fetch_metadata(callback=update_status)
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/modules/metadata.py", line 52, in fetch_metadata
                                                       items = self._vtm_go.get_items()
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/vtmgo/vtmgo.py", line 221, in get_items
                                                       response = util.http_get(API_ENDPOINT + '/%s/catalog' % self._mode(),
                                                     File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/vtmgo/util.py", line 45, in http_get
                                                       raise InvalidTokenException(exc)
                                                   resources.lib.vtmgo.exceptions.InvalidTokenException: 401 Client Error: Unauthorized for url: https://lfvp-api.dpgmedia.net/vtmgo/catalog?pageSize=2000
                                                   -->End of Python script error report<--

2021-05-04 21:22:31.430 T:1326     INFO <general>: CPythonInvoker(14, /storage/.kodi/addons/plugin.video.vtm.go/service_entry.py): waiting on thread 2527986336
mediaminister commented 3 years ago

You need to open the VTM GO Add-on once after installing the update! Kodi Library should work afterwards.

FilipDem commented 3 years ago

OK, works now. Thank you very much!

badoneti commented 3 years ago

I did open VTM Go updated version and tried this again, unfortunately it doesn't solve my case.

vermope commented 3 years ago

Same here, can only use 'Live TV' nothing on demand... Logged out and in VTM GO app and Kodi App.

ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--

mediaminister commented 3 years ago

@vermope Please ensure you are using the new v1.2.6 version of the VTM Go Add-on

@badoneti I can reproduce a Kodi crash when adding a tv series to mylist in Kodi 19. Can you confirm if the library worked flawlessly with the previous VTM GO Add-on version in Kodi 19?

badoneti commented 3 years ago

Thanks for investigating. Indeed, the kodi library integration worked well before with v1.2.5 (before the API issue appeared) It looks still working fine for movies in v1.2.6 but crashes on TV Shows.

vermope commented 3 years ago

@mediaminister thinks are working now, was indeed back on 1.2.5 after a reinstall trough Kodi Repo.. thank you!

freynder commented 3 years ago

I also had a similar issue with 1.2.6 on both CoreElec and CoreElec Matrix versions.

05 20:53:50.213 T:3903898432 NOTICE: [plugin.video.vtm.go] [urllib3.connectionpool] Starting new HTTPS connection (1): lfvp-api.dpgmedia.net:443 2021-05-05 20:53:50.396 T:3903898432 NOTICE: [plugin.video.vtm.go] [urllib3.connectionpool] https://lfvp-api.dpgmedia.net:443 "GET /vtmgo/catalog?pageSize=2000 HTTP/1.1" 401 0 2021-05-05 20:53:50.400 T:3903898432 NOTICE: [plugin.video.vtm.go] [resources.lib.vtmgo.util] Got response (status=401): 2021-05-05 20:53:50.404 T:3903898432 ERROR: EXCEPTION Thrown (PythonToCppException) : -->Python callback/script returned the following error<--

  • NOTE: IGNORING THIS CAN LEAD TO MEMORY LEAKS! Error Type: <class 'resources.lib.vtmgo.exceptions.InvalidTokenException'> Error Contents: 401 Client Error: Unauthorized for url: https://lfvp-api.dpgmedia.net/vtmgo/catalog?pageSize=2000 Traceback (most recent call last): File "/storage/.kodi/addons/plugin.video.vtm.go/service_entry.py", line 17, in run() File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/service.py", line 191, in run BackgroundService().run() File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/service.py", line 40, in run self._update_metadata() File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/service.py", line 65, in _update_metadata success = Metadata().fetch_metadata(callback=update_status) File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/modules/metadata.py", line 52, in fetch_metadata items = self._vtm_go.get_items() File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/vtmgo/vtmgo.py", line 224, in get_items profile=self._tokens.profile if self._tokens else None) File "/storage/.kodi/addons/plugin.video.vtm.go/resources/lib/vtmgo/util.py", line 45, in http_get raise InvalidTokenException(exc) InvalidTokenException: 401 Client Error: Unauthorized for url: https://lfvp-api.dpgmedia.net/vtmgo/catalog?pageSize=2000 -->End of Python script error report<-- 2021-05-05 20:53:55.970 T:3583476544 NOTICE: [plugin.video.vtm.go] [resources.lib.vtmgo.vtmgoauth] JWT is valid

I disabled updates and installed the addon from zip.

This coincides with a mail I received from DPG media about unification of accounts for their services, including VTM go. I believe this caused the JWT token to be invalidated on their servers, and the addon uses a cached version.

I temporarily forced a new login in vtmgoauth.py:login function by modifying the code, restarting the plugin (which did the forced login and generated a new JWT token), and changing the code back. There is probably a better way to do so, but this worked for me.

contents of DPG notification mail:

Je hebt met dit e-mailadres een account waarmee je kunt inloggen bij VTM GO en/of de radiozenders Qmusic en Joe. Deze merken zijn onderdeel van DPG Media. Je hebt met ditzelfde e-mailadres ook een account waarmee je kunt inloggen bij de nieuwsmedia en magazines van DPG Media zoals HLN, De Morgen en HUMO.

Deze twee accounts worden samengevoegd. Zo kun je gemakkelijk met één account inloggen bij alle merken van DPG Media. Wat betekent dit voor jou wanneer je inlogt? Het wachtwoord waarmee je inlogde bij VTM GO en/of de radiozenders Qmusic en Joe komt te vervallen. Je kunt voortaan inloggen met het wachtwoord dat je al gebruikte bij (een van) de nieuwsmedia en magazines. Ben je dit wachtwoord vergeten? Dan kun je dit opnieuw instellen via de 'wachtwoord vergeten'-functie.

Je accountgegevens Je kunt je gegevens controleren en eventueel aanpassen wanneer je ingelogd bent op de website bij een van de merken.

frankdpGH commented 3 years ago

Having the same issue with TV shows content update => Kodi crashes. No errors on authorization/fetching, Movies are working.

2021-05-19 12:15:52.486 T:8784 INFO : Starting Kodi (19.1 (19.1.0) Git:20210508-85e05228b4). Platform: Android ARM 64-bit 2021-05-19 12:15:52.487 T:8784 INFO : Running on rockchip A95XZ2 with Android 9.0.0 API level 28, kernel: Linux ARM 64-bit version 4.4.179 2021-05-19 12:15:55.626 T:8811 DEBUG : ADDONS: update check: addonID = plugin.video.vtm.go / Origin = repository.xbmc.org / Version = 1.2.6+matrix.1

for movies working OK after fetching info: 2021-05-19 12:16:51.792 T:8845 DEBUG : VideoInfoScanner: Scanning dir 'plugin://plugin.video.vtm.go/library/movies/' as not in the database 2021-05-19 12:16:51.804 T:8845 DEBUG : GetMovieId (plugin://plugin.video.vtm.go/library/movies/?movie=d75e43a1-35db-4ec3-8d65-2022d6c86988), query = select idMovie from movie where idFile=1 2021-05-19 12:16:51.814 T:8845 DEBUG : VideoInfoScanner: Adding new item to movies:plugin://plugin.video.vtm.go/library/movies/?movie=d75e43a1-35db-4ec3-8d65-2022d6c86988 2021-05-19 12:16:51.818 T:8845 DEBUG : GetMovieId (plugin://plugin.video.vtm.go/library/movies/?movie=d75e43a1-35db-4ec3-8d65-2022d6c86988), query = select idMovie from movie where idFile=1 2021-05-19 12:16:51.923 T:8845 DEBUG : Skipped 1 duplicate messages.. 2021-05-19 12:16:51.923 T:8845 DEBUG : GetMovieId (plugin://plugin.video.vtm.go/library/movies/?movie=9ddbe44e-a769-400d-99f6-4fe7fb47c3bd), query = select idMovie from movie where idFile=2 ... 2021-05-19 12:16:52.483 T:8845 DEBUG : VideoInfoScanner: Finished adding information from dir plugin://plugin.video.vtm.go/library/movies/ 2021-05-19 12:16:52.498 T:8845 INFO : VideoInfoScanner: Finished scan. Scanning for video info took 00:05

For TV shows after fetching info: 2021-05-19 12:17:40.293 T:8974 DEBUG : VideoInfoScanner: Adding new item to tvshows:plugin://plugin.video.vtm.go/library/tvshows/?program=848e83d8-f600-4441-aace-b975259b5e1d => dead!!!

log attached kodi.log

badoneti commented 3 years ago

I confirm this issue is still existing with final LibreElec v10 and Kodi 19.1 Matrix using the latest VTMGo library. This prevents me from using the media library features in Kodi. Everyhting works fine from within each app. Thanks for the great work!

michaelarnauts commented 2 years ago

Unfortunately, the library support has been removed in v1.3.0, I might add this back later in a different way.

However, this bug should never have happened, since Kodi shouldn't be allowed to crash due tot stuff an Add-on does. There is an ongoing project at Kodi to rewrite the library support, but this has been going on for years, and nobody is interested in picking this up.