diff --git a/Jellyfin.Plugin.SRFPlay/Controllers/RecordingController.cs b/Jellyfin.Plugin.SRFPlay/Controllers/RecordingController.cs
index 6c75811..00b182a 100644
--- a/Jellyfin.Plugin.SRFPlay/Controllers/RecordingController.cs
+++ b/Jellyfin.Plugin.SRFPlay/Controllers/RecordingController.cs
@@ -40,6 +40,7 @@ public class RecordingController : ControllerBase
///
/// The recording manager HTML page.
[HttpGet("Page")]
+ [AllowAnonymous]
[ProducesResponseType(StatusCodes.Status200OK)]
[ProducesResponseType(StatusCodes.Status404NotFound)]
public IActionResult GetRecordingPage()
diff --git a/Jellyfin.Plugin.SRFPlay/Plugin.cs b/Jellyfin.Plugin.SRFPlay/Plugin.cs
index 33d3e87..58eb0ce 100644
--- a/Jellyfin.Plugin.SRFPlay/Plugin.cs
+++ b/Jellyfin.Plugin.SRFPlay/Plugin.cs
@@ -45,16 +45,13 @@ public class Plugin : BasePlugin, IHasWebPages
{
Name = Name,
EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.configPage.html", GetType().Namespace)
- },
- new PluginPageInfo
- {
- Name = "SRF Play Recordings",
- DisplayName = "SRF Sport Recordings",
- EmbeddedResourcePath = string.Format(CultureInfo.InvariantCulture, "{0}.Configuration.recordingPage.html", GetType().Namespace),
- EnableInMainMenu = true,
- MenuSection = "Live TV",
- MenuIcon = "fiber_smart_record"
}
+
+ // Note: the recordings manager is intentionally NOT registered as a plugin
+ // page. Plugin pages live under the admin Dashboard and are admin-gated, which
+ // both caused a redirect to the recordings page and made it inaccessible to
+ // normal users. Recordings are served as a standalone, user-accessible page at
+ // GET /Plugins/SRFPlay/Recording/Page (see RecordingController).
];
}
}