diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b909cd39..cde92e380 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). - Syntax is a number and a unit (days, weeks, months, years) like `1 week` or `2 years` - Allow adding smart collections to multi collections +### Fixed +- Use fake image extension (`.jpg`) for artwork in M3U and XMLTV to make Kodi happy since it detects MIME type from URL + ## [0.0.56-alpha] - 2021-09-10 ### Added - Add Smart Collections diff --git a/ErsatzTV.Core/Iptv/ChannelGuide.cs b/ErsatzTV.Core/Iptv/ChannelGuide.cs index 14e4f0ad1..d7bd48be5 100644 --- a/ErsatzTV.Core/Iptv/ChannelGuide.cs +++ b/ErsatzTV.Core/Iptv/ChannelGuide.cs @@ -276,7 +276,7 @@ namespace ErsatzTV.Core.Iptv _ => "posters" }; - artworkPath = $"{_scheme}://{_host}/iptv/artwork/{artworkFolder}/{artwork.Path}"; + artworkPath = $"{_scheme}://{_host}/iptv/artwork/{artworkFolder}/{artwork.Path}.jpg"; } return artworkPath; diff --git a/ErsatzTV.Core/Iptv/ChannelPlaylist.cs b/ErsatzTV.Core/Iptv/ChannelPlaylist.cs index a025a49d9..6377582db 100644 --- a/ErsatzTV.Core/Iptv/ChannelPlaylist.cs +++ b/ErsatzTV.Core/Iptv/ChannelPlaylist.cs @@ -32,7 +32,7 @@ namespace ErsatzTV.Core.Iptv .Filter(a => a.ArtworkKind == ArtworkKind.Logo) .HeadOrNone() .Match( - artwork => $"{_scheme}://{_host}/iptv/logos/{artwork.Path}", + artwork => $"{_scheme}://{_host}/iptv/logos/{artwork.Path}.jpg", () => $"{_scheme}://{_host}/iptv/images/ersatztv-500.png"); string shortUniqueId = Convert.ToBase64String(channel.UniqueId.ToByteArray()) diff --git a/ErsatzTV/Controllers/ArtworkController.cs b/ErsatzTV/Controllers/ArtworkController.cs index 2d226d022..99fc1f875 100644 --- a/ErsatzTV/Controllers/ArtworkController.cs +++ b/ErsatzTV/Controllers/ArtworkController.cs @@ -36,6 +36,7 @@ namespace ErsatzTV.Controllers } [HttpGet("/iptv/artwork/posters/{fileName}")] + [HttpGet("/iptv/artwork/posters/{fileName}.jpg")] [HttpGet("/artwork/posters/{fileName}")] public async Task GetPoster(string fileName) { @@ -117,6 +118,7 @@ namespace ErsatzTV.Controllers $"photo/:/transcode?url=/{path}&height=220&width=392&minSize=1&upscale=0"); [HttpGet("/iptv/artwork/thumbnails/{fileName}")] + [HttpGet("/iptv/artwork/thumbnails/{fileName}.jpg")] [HttpGet("/artwork/thumbnails/{fileName}")] public async Task GetThumbnail(string fileName) { diff --git a/ErsatzTV/Controllers/IptvController.cs b/ErsatzTV/Controllers/IptvController.cs index 52813d947..c578b66d7 100644 --- a/ErsatzTV/Controllers/IptvController.cs +++ b/ErsatzTV/Controllers/IptvController.cs @@ -71,6 +71,7 @@ namespace ErsatzTV.Controllers error => BadRequest(error.Value))); [HttpGet("iptv/logos/{fileName}")] + [HttpGet("iptv/logos/{fileName}.jpg")] public async Task GetImage(string fileName) { Either cachedImagePath =