Fix live tv hls playback

This commit is contained in:
crobibero 2020-11-19 16:15:20 -07:00
parent b5ff91c281
commit fe8531f74e

View File

@ -132,13 +132,25 @@ namespace Jellyfin.Api.Controllers
var normalizedPlaylistId = playlistId; var normalizedPlaylistId = playlistId;
var playlistPath = _fileSystem.GetFilePaths(transcodeFolderPath) var filePaths = _fileSystem.GetFilePaths(transcodeFolderPath);
.FirstOrDefault(i => // Add . to start of segment container for future use.
string.Equals(Path.GetExtension(i), ".m3u8", StringComparison.OrdinalIgnoreCase) segmentContainer = segmentContainer.Insert(0, ".");
&& i.IndexOf(normalizedPlaylistId, StringComparison.OrdinalIgnoreCase) != -1) string? playlistPath = null;
?? throw new ResourceNotFoundException($"Provided path ({transcodeFolderPath}) is not valid."); foreach (var path in filePaths)
{
var pathExtension = Path.GetExtension(path);
if ((string.Equals(pathExtension, segmentContainer, StringComparison.OrdinalIgnoreCase)
|| string.Equals(pathExtension, ".m3u8", StringComparison.OrdinalIgnoreCase))
&& path.IndexOf(normalizedPlaylistId, StringComparison.OrdinalIgnoreCase) != -1)
{
playlistPath = path;
break;
}
}
return GetFileResult(file, playlistPath); return playlistPath == null
? NotFound("Hls segment not found.")
: GetFileResult(file, playlistPath);
} }
private ActionResult GetFileResult(string path, string playlistPath) private ActionResult GetFileResult(string path, string playlistPath)