diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ea65946f..efc8aa7e4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Support combination NFO metadata for movies, shows, artists and music videos - Note that ErsatzTV does not scrape any metadata; any URLs after the XML will be ignored - Fix bug causing some Jellyfin and Emby content to incorrectly show as unavailable +- Fix extracting embedded `mov_text` subtitles +- Properly extract embedded subtitles on playouts where subtitles are only enabled on schedule items (and not on the channel itself) ### Added - Use `Sort Title` from Movie NFO metadata if available diff --git a/ErsatzTV.Application/Subtitles/Commands/ExtractEmbeddedSubtitlesHandler.cs b/ErsatzTV.Application/Subtitles/Commands/ExtractEmbeddedSubtitlesHandler.cs index 2a34019d3..ef0db6178 100644 --- a/ErsatzTV.Application/Subtitles/Commands/ExtractEmbeddedSubtitlesHandler.cs +++ b/ErsatzTV.Application/Subtitles/Commands/ExtractEmbeddedSubtitlesHandler.cs @@ -68,7 +68,9 @@ public class ExtractEmbeddedSubtitlesHandler : IRequestHandler requestedPlayout = await dbContext.Playouts - .Filter(p => p.Channel.SubtitleMode != ChannelSubtitleMode.None) + .Filter( + p => p.Channel.SubtitleMode != ChannelSubtitleMode.None || + p.ProgramSchedule.Items.Any(psi => psi.SubtitleMode != ChannelSubtitleMode.None)) .SelectOneAsync(p => p.Id, p => p.Id == request.PlayoutId.IfNone(-1)); playoutIdsToCheck.AddRange(requestedPlayout.Map(p => p.Id)); @@ -77,7 +79,9 @@ public class ExtractEmbeddedSubtitlesHandler : IRequestHandler p.Channel.SubtitleMode != ChannelSubtitleMode.None) + .Filter( + p => p.Channel.SubtitleMode != ChannelSubtitleMode.None || + p.ProgramSchedule.Items.Any(psi => psi.SubtitleMode != ChannelSubtitleMode.None)) .Map(p => p.Id) .ToList(); } @@ -285,7 +289,8 @@ public class ExtractEmbeddedSubtitlesHandler : IRequestHandler $"{name}.srt", "ass" => $"{name}.ass", "webvtt" => $"{name}.vtt", + "mov_text" => $"{name}.srt", _ => string.Empty };