diff --git a/CHANGELOG.md b/CHANGELOG.md index 02580ae23..b69761346 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -73,6 +73,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Fix multi-part episode grouping logic so that it does NOT require release date metadata for episodes within a single show - When **Treat Collections As Shows** is enabled (i.e. for crossover episodes) release date metadata is required for proper grouping - Fix *many* cases of duplicate names; enforce case-insensitive unique names at the db schema level +- Fix playback when using `ETV_BASE_URL` by @JamesDearlove ### Changed - No longer round framerate to nearest integer when normalizing framerate diff --git a/ErsatzTV/Controllers/IptvController.cs b/ErsatzTV/Controllers/IptvController.cs index d10f37de3..21bf3ec93 100644 --- a/ErsatzTV/Controllers/IptvController.cs +++ b/ErsatzTV/Controllers/IptvController.cs @@ -292,7 +292,7 @@ public class IptvController : StreamingControllerBase private async Task GetMultiVariantPlaylist(string channelNumber) { var variantPlaylist = - $"{Request.Scheme}://{Request.Host}/iptv/session/{channelNumber}/hls.m3u8{AccessTokenQuery()}"; + $"{Request.Scheme}://{Request.Host}{Request.PathBase}/iptv/session/{channelNumber}/hls.m3u8{AccessTokenQuery()}"; Option maybeStreamingSpecs = await _mediator.Send(new GetChannelStreamingSpecs(channelNumber)); diff --git a/ErsatzTV/Startup.cs b/ErsatzTV/Startup.cs index 1127336a3..219ba1fb6 100644 --- a/ErsatzTV/Startup.cs +++ b/ErsatzTV/Startup.cs @@ -527,6 +527,18 @@ public class Startup try { app.UsePathBase(baseUrl); + + // for testing - make path base required + // app.Use(async (context, next) => + // { + // if (context.Request.PathBase != baseUrl) + // { + // context.Response.StatusCode = 404; + // return; + // } + // + // await next(context); + // }); } catch (Exception ex) {