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; } +}