diff --git a/addon.xml b/addon.xml index c95106ce..a9acba3b 100644 --- a/addon.xml +++ b/addon.xml @@ -1,5 +1,5 @@ - + @@ -91,7 +91,10 @@ Plex를 Kodi에 기본 통합 Kodi를 Plex Media Server에 연결합니다. 이 플러그인은 Plex로 모든 비디오를 관리하고 Kodi로는 관리하지 않는다고 가정합니다. Kodi 비디오 및 음악 데이터베이스에 이미 저장된 데이터가 손실 될 수 있습니다 (이 플러그인이 직접 변경하므로). 자신의 책임하에 사용하십시오! 자신의 책임하에 사용 - version 3.4.0: + version 3.4.1: +- Fix PMS setting `List of IP addresses and networks that are allowed without auth` causing Kodi to take forever to start playback + +version 3.4.0: - Improve logging for converting Unix timestamps - Remove dependency on script.module.defusedxml - that module is now included in PKC - version 3.3.3-3.3.5 for everyone diff --git a/changelog.txt b/changelog.txt index 6bc0e4f8..d1103671 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,6 @@ +version 3.4.1: +- Fix PMS setting `List of IP addresses and networks that are allowed without auth` causing Kodi to take forever to start playback + version 3.4.0: - Improve logging for converting Unix timestamps - Remove dependency on script.module.defusedxml - that module is now included in PKC diff --git a/resources/lib/plex_api/media.py b/resources/lib/plex_api/media.py index 0f9586d1..1a828dbd 100644 --- a/resources/lib/plex_api/media.py +++ b/resources/lib/plex_api/media.py @@ -1,6 +1,7 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- from logging import getLogger +import re from ..utils import cast from ..downloadutils import DownloadUtils as DU @@ -10,6 +11,9 @@ from .. import plex_functions as PF LOG = getLogger('PLEX.api') +REGEX_VIDEO_FILENAME = re.compile(r'''\/file\.[a-zA-Z0-9]{1,5}$''') + + class Media(object): def optimized_for_streaming(self): """ @@ -286,6 +290,12 @@ class Media(object): headers = clientinfo.getXArgsDeviceInfo() if action == v.PLAYBACK_METHOD_DIRECT_PLAY: path = self.xml[self.mediastream][self.part].get('key') + # Kodi 19 will try to look for subtitles in the directory containing the file. + # '/' and '/file.*'' both point to the file, and Kodi will happily try to read + # the whole file without recognizing it isn't a directory. + # To get around that, we omit the filename here since it is unnecessary. + # We do this for library videos only, not for e.g. trailers (does not work) + path = REGEX_VIDEO_FILENAME.sub('/', path, count=1) # e.g. Trailers already feature an '?'! return utils.extend_url(app.CONN.server + path, headers) # Direct Streaming and Transcoding