diff --git a/src/all/jellyfin/build.gradle b/src/all/jellyfin/build.gradle index d3a63ebf1..0217802db 100644 --- a/src/all/jellyfin/build.gradle +++ b/src/all/jellyfin/build.gradle @@ -6,7 +6,7 @@ ext { extName = 'Jellyfin' pkgNameSuffix = 'all.jellyfin' extClass = '.Jellyfin' - extVersionCode = 6 + extVersionCode = 7 libVersion = '13' } diff --git a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/DataModel.kt b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/DataModel.kt index 9d4c5638a..bf3a33dd7 100644 --- a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/DataModel.kt +++ b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/DataModel.kt @@ -44,6 +44,7 @@ data class SessionResponse( val Index: Int, val Type: String, val SupportsExternalStream: Boolean, + val IsExternal: Boolean, val Language: String? = null, val DisplayTitle: String? = null, val Height: Int? = null, diff --git a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/Jellyfin.kt b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/Jellyfin.kt index c80696c87..a500bf106 100644 --- a/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/Jellyfin.kt +++ b/src/all/jellyfin/src/eu/kanade/tachiyomi/animeextension/all/jellyfin/Jellyfin.kt @@ -351,19 +351,21 @@ class Jellyfin : ConfigurableAnimeSource, AnimeHttpSource() { if (media.Language != null) { if (media.Language == prefSub) { try { - subtitleList.add(0, Track(subUrl, media.DisplayTitle!!)) + if (media.IsExternal) { + subtitleList.add(0, Track(subUrl, media.DisplayTitle!!)) + } } catch (e: Error) { subIndex = media.Index } } else { - try { + if (media.IsExternal) { subtitleList.add(Track(subUrl, media.DisplayTitle!!)) - } catch (_: Error) {} + } } } else { - try { + if (media.IsExternal) { subtitleList.add(Track(subUrl, media.DisplayTitle!!)) - } catch (_: Error) {} + } } } else { if (media.Language != null && media.Language == prefSub) { @@ -387,7 +389,7 @@ class Jellyfin : ConfigurableAnimeSource, AnimeHttpSource() { JFConstants.QUALITIES_LIST.forEach { quality -> if (width < quality.width && height < quality.height) { val url = "$baseUrl/Videos/$id/stream?static=True&api_key=$apiKey" - videoList.add(Video(url, "Best", url)) + videoList.add(Video(url, "Best", url, subtitleTracks = subtitleList)) return videoList.reversed() } else { @@ -419,11 +421,7 @@ class Jellyfin : ConfigurableAnimeSource, AnimeHttpSource() { url.addQueryParameter("h264-deinterlace", "true") url.addQueryParameter("TranscodeReasons", "VideoCodecNotSupported,AudioCodecNotSupported,ContainerBitrateExceedsLimit") - try { - videoList.add(Video(url.toString(), quality.description, url.toString(), subtitleTracks = subtitleList)) - } catch (_: Error) { - videoList.add(Video(url.toString(), quality.description, url.toString())) - } + videoList.add(Video(url.toString(), quality.description, url.toString(), subtitleTracks = subtitleList)) } }