diff --git a/allstarr/Controllers/AdminController.cs b/allstarr/Controllers/AdminController.cs
index 3f4358c..11d6a23 100644
--- a/allstarr/Controllers/AdminController.cs
+++ b/allstarr/Controllers/AdminController.cs
@@ -595,10 +595,10 @@ public class AdminController : ControllerBase
}
///
- /// Get all playlists from Jellyfin
+ /// Get all Jellyfin users
///
- [HttpGet("jellyfin/playlists")]
- public async Task GetJellyfinPlaylists()
+ [HttpGet("jellyfin/users")]
+ public async Task GetJellyfinUsers()
{
if (string.IsNullOrEmpty(_jellyfinSettings.Url) || string.IsNullOrEmpty(_jellyfinSettings.ApiKey))
{
@@ -607,8 +607,117 @@ public class AdminController : ControllerBase
try
{
- // Call Jellyfin API to get all playlists
- var url = $"{_jellyfinSettings.Url}/Items?IncludeItemTypes=Playlist&Recursive=true&Fields=ProviderIds,ChildCount";
+ var url = $"{_jellyfinSettings.Url}/Users";
+
+ var request = new HttpRequestMessage(HttpMethod.Get, url);
+ request.Headers.Add("X-Emby-Authorization", GetJellyfinAuthHeader());
+
+ var response = await _jellyfinHttpClient.SendAsync(request);
+
+ if (!response.IsSuccessStatusCode)
+ {
+ var errorBody = await response.Content.ReadAsStringAsync();
+ _logger.LogError("Failed to fetch Jellyfin users: {StatusCode} - {Body}", response.StatusCode, errorBody);
+ return StatusCode((int)response.StatusCode, new { error = "Failed to fetch users from Jellyfin" });
+ }
+
+ var json = await response.Content.ReadAsStringAsync();
+ using var doc = JsonDocument.Parse(json);
+
+ var users = new List