diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/Progress.cs b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/Progress.cs
new file mode 100644
index 0000000..d4e6ce7
--- /dev/null
+++ b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/Progress.cs
@@ -0,0 +1,53 @@
+using Newtonsoft.Json;
+
+namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
+{
+ ///
+ /// A class representing TubeArchivist API video progress data.
+ ///
+ public class Progress
+ {
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// Playback progress in seconds.
+ /// Video YouTube id.
+ /// Playback progress user id.
+ public Progress(
+ long position,
+ string? youtubeId,
+ long? userId)
+ {
+ YoutubeId = youtubeId;
+ UserId = userId;
+ Position = position;
+ }
+
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// Playback progress in seconds.
+ public Progress(long position)
+ {
+ Position = position;
+ }
+
+ ///
+ /// Gets or sets the video YouTube id.
+ ///
+ [JsonProperty(PropertyName = "youtube_id")]
+ public string? YoutubeId { get; set; }
+
+ ///
+ /// Gets or sets playback progress user id.
+ ///
+ [JsonProperty(PropertyName = "user_id")]
+ public long? UserId { get; set; }
+
+ ///
+ /// Gets or sets video playback progress (in seconds).
+ ///
+ [JsonProperty(PropertyName = "position")]
+ public long Position { get; set; }
+ }
+}
diff --git a/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs
index ce7565e..294bacf 100644
--- a/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs
+++ b/Jellyfin.Plugin.TubeArchivistMetadata/TubeArchivist/TubeArchivistApi.cs
@@ -159,12 +159,7 @@ namespace Jellyfin.Plugin.TubeArchivistMetadata.TubeArchivist
{
var progressEndpoint = $"/api/video/{videoId}/progress/";
var url = new Uri(Utils.SanitizeUrl(Plugin.Instance!.Configuration.TubeArchivistUrl + progressEndpoint));
- var body = JsonConvert.SerializeObject(new
- {
- position = progress
- });
-
- var sc = new StringContent(body, Encoding.UTF8, "application/json");
+ var body = JsonConvert.SerializeObject(new Progress(progress));
var response = await client.PostAsync(url, new StringContent(body, Encoding.UTF8, "application/json")).ConfigureAwait(true);