diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs
index 18e4672..f9585f3 100644
--- a/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs
+++ b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs
@@ -1,4 +1,5 @@
using System;
+using System.Collections.Generic;
using System.Data;
using System.Net;
using System.Net.Http;
@@ -201,5 +202,34 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
return response.StatusCode;
}
+
+ ///
+ /// Retrieves the playlists from TubeArchivist.
+ ///
+ /// A task.
+ public async Task?> GetPlaylists()
+ {
+ ResponseContainer?>? playlists = null;
+
+ var playlistsEndpoint = "/api/playlist/";
+ var url = new Uri(Utils.SanitizeUrl(Plugin.Instance?.Configuration.TubeArchivistUrl + playlistsEndpoint));
+ var response = await client.GetAsync(url).ConfigureAwait(true);
+ while (response.StatusCode == HttpStatusCode.Moved)
+ {
+ url = response.Headers.Location;
+ _logger.LogInformation("{Message}", "Received redirect to: " + url);
+ response = await client.GetAsync(url).ConfigureAwait(true);
+ }
+
+ _logger.LogInformation("{Message}", url + ": " + response.StatusCode);
+
+ if (response.IsSuccessStatusCode)
+ {
+ string rawData = await response.Content.ReadAsStringAsync().ConfigureAwait(true);
+ playlists = JsonConvert.DeserializeObject?>>(rawData);
+ }
+
+ return playlists?.Data;
+ }
}
}