diff --git a/resources/lib/clientinfo.py b/resources/lib/clientinfo.py index 44ed98f2..4479d8b9 100644 --- a/resources/lib/clientinfo.py +++ b/resources/lib/clientinfo.py @@ -44,7 +44,8 @@ class ClientInfo(): if utils.settings('deviceNameOpt') == "false": # Use Kodi's deviceName - deviceName = xbmc.getInfoLabel('System.FriendlyName').decode('utf-8') + deviceName = xbmc.getInfoLabel('System.FriendlyName') + deviceName = utils.normalize_string(deviceName) else: deviceName = utils.settings('deviceName') deviceName = deviceName.replace("\"", "_") diff --git a/resources/lib/downloadutils.py b/resources/lib/downloadutils.py index 578c932c..1c244e74 100644 --- a/resources/lib/downloadutils.py +++ b/resources/lib/downloadutils.py @@ -274,7 +274,6 @@ class DownloadUtils(): verify=verifyssl) elif type == "POST": - print url r = requests.post(url, json=postBody, headers=header, diff --git a/resources/lib/playbackutils.py b/resources/lib/playbackutils.py index 4ab5ba0f..3ec60b64 100644 --- a/resources/lib/playbackutils.py +++ b/resources/lib/playbackutils.py @@ -189,7 +189,7 @@ class PlaybackUtils(): # For transcoding only, ask for audio/subs pref if utils.window('emby_%s.playmethod' % playurl) == "Transcode": - playurl = playutils.audioSubsPref(playurl) + playurl = playutils.audioSubsPref(playurl, listitem) utils.window('emby_%s.playmethod' % playurl, value="Transcode") listitem.setPath(playurl) @@ -232,7 +232,7 @@ class PlaybackUtils(): playmethod = utils.window('%s.playmethod' % embyitem) # Only for direct play and direct stream subtitles = self.externalSubs(playurl) - if playmethod in ("DirectStream", "Transcode"): + if playmethod != "Transcode": # Direct play automatically appends external listitem.setSubtitles(subtitles) diff --git a/resources/lib/playutils.py b/resources/lib/playutils.py index 10575a71..8b5474aa 100644 --- a/resources/lib/playutils.py +++ b/resources/lib/playutils.py @@ -323,7 +323,7 @@ class PlayUtils(): # max bit rate supported by server (max signed 32bit integer) return bitrate.get(videoQuality, 2147483) - def audioSubsPref(self, url): + def audioSubsPref(self, url, listitem): # For transcoding only # Present the list of audio to select from audioStreamsList = {} @@ -331,6 +331,7 @@ class PlayUtils(): audioStreamsChannelsList = {} subtitleStreamsList = {} subtitleStreams = ['No subtitles'] + downloadableStreams = [] selectAudioIndex = "" selectSubsIndex = "" playurlprefs = "%s" % url @@ -361,8 +362,8 @@ class PlayUtils(): audioStreams.append(track) elif 'Subtitle' in type: - if stream['IsExternal']: - continue + '''if stream['IsExternal']: + continue''' try: track = "%s - %s" % (index, stream['Language']) except: @@ -370,10 +371,14 @@ class PlayUtils(): default = stream['IsDefault'] forced = stream['IsForced'] + downloadable = stream['IsTextSubtitleStream'] + if default: track = "%s - Default" % track if forced: track = "%s - Forced" % track + if downloadable: + downloadableStreams.append(index) subtitleStreamsList[track] = index subtitleStreams.append(track) @@ -401,7 +406,19 @@ class PlayUtils(): # User selected subtitles selected = subtitleStreams[resp] selectSubsIndex = subtitleStreamsList[selected] - playurlprefs += "&SubtitleStreamIndex=%s" % selectSubsIndex + + # Load subtitles in the listitem if downloadable + if selectSubsIndex in downloadableStreams: + + itemid = item['Id'] + url = [("%s/Videos/%s/%s/Subtitles/%s/Stream.srt" + % (self.server, itemid, itemid, selectSubsIndex))] + self.logMsg("Set up subtitles: %s %s" % (selectSubsIndex, url), 1) + listitem.setSubtitles(url) + else: + # Burn subtitles + playurlprefs += "&SubtitleStreamIndex=%s" % selectSubsIndex + else: # User backed out of selection playurlprefs += "&SubtitleStreamIndex=%s" % mediasources.get('DefaultSubtitleStreamIndex', "")