diff --git a/src/YouTubeSubtitlesExtractor/Models/VideoDetails.cs b/src/YouTubeSubtitlesExtractor/Models/VideoDetails.cs
new file mode 100644
index 0000000..d24acf2
--- /dev/null
+++ b/src/YouTubeSubtitlesExtractor/Models/VideoDetails.cs
@@ -0,0 +1,117 @@
+using Newtonsoft.Json;
+
+namespace Aliencube.YouTubeSubtitlesExtractor.Models;
+
+///
+/// This represents the entity of YouTube video details.
+///
+public class VideoDetails
+{
+ ///
+ /// Gets or sets the video ID.
+ ///
+ public virtual string? VideoId { get; set; }
+
+ ///
+ /// Gets or sets the video title.
+ ///
+ public virtual string? Title { get; set; }
+
+ ///
+ /// Gets or sets the video length in seconds.
+ ///
+ [JsonProperty("lengthSeconds")]
+ public virtual int? LengthInSeconds { get; set; }
+
+ ///
+ /// Gets or sets the list of keywords of the video.
+ ///
+ public virtual List Keywords { get; set; } = new List();
+
+ ///
+ /// Gets or sets the channel ID.
+ ///
+ public virtual string? ChannelId { get; set; }
+
+ ///
+ /// Gets or sets the value indicating whether it's owner view or not.
+ ///
+ public virtual bool IsOwnerViewing { get; set; }
+
+ ///
+ /// Gets or sets the short description of the video.
+ ///
+ public virtual string? ShortDescription { get; set; }
+
+ ///
+ /// Gets or sets the value indicating whether it's crawlable or not.
+ ///
+ public virtual bool IsCrawlable { get; set; }
+
+ ///
+ /// Gets or sets the value.
+ ///
+ public virtual Thumbnail? Thumbnail { get; set; }
+
+ ///
+ /// Gets or sets the value indicating whether to allow ratings or not.
+ ///
+ public virtual bool AllowRatings { get; set; }
+
+ ///
+ /// Gets or sets the video count.
+ ///
+ public virtual int? ViewCount { get; set; }
+
+ ///
+ /// Gets or sets the video author.
+ ///
+ public virtual string? Author { get; set; }
+
+ ///
+ /// Gets or sets the value indicating whether it's private or not.
+ ///
+ public virtual bool IsPrivate { get; set; }
+
+ ///
+ /// Gets or sets the value indicating whether it's unplugged corpus or not.
+ ///
+ public virtual bool IsUnpluggedCorpus { get; set; }
+
+ ///
+ /// Gets or sets the value indicating whether it's live content or not.
+ ///
+ public virtual bool IsLiveContent { get; set; }
+}
+
+///
+/// This represents the thumbnail entity.
+///
+public class Thumbnail
+{
+ ///
+ /// Gets or sets the list of thumbnails.
+ ///
+ public virtual List Thumbnails { get; set; } = new List();
+}
+
+///
+/// This represents the thumbnail item entity.
+///
+public class ThumbnailItem
+{
+ ///
+ /// Gets or sets the thumbnail URL.
+ ///
+ public virtual string? Url { get; set; }
+
+ ///
+ /// Gets or sets the thumbnail width.
+ ///
+ public virtual int? Width { get; set; }
+
+ ///
+ /// Gets or sets the thumbnail height.
+ ///
+ public virtual int? Height { get; set; }
+}