[CHANGE] Implementation video data

This commit is contained in:
max
2025-10-21 20:46:31 +02:00
parent ed1b7406a6
commit 97f7f5dcf6
5 changed files with 182 additions and 62 deletions

View File

@@ -1,61 +1,36 @@
using System.Text.Json.Serialization;
using Manager.YouTube.Models.Innertube;
namespace Manager.YouTube.Models;
public class YouTubeVideo
{
[JsonPropertyName("videoId")]
public required string VideoId { get; set; }
[JsonPropertyName("title")]
public string Title { get; set; } = "";
[JsonPropertyName("description")]
public string Description { get; set; } = "";
[JsonPropertyName("hashTags")]
public string[] HashTags { get; set; } = [];
[JsonPropertyName("viewCount")]
public long ViewCount { get; set; }
[JsonPropertyName("likeCount")]
public long LikeCount { get; set; }
[JsonPropertyName("channelId")]
public string ChannelId { get; set; } = "";
[JsonPropertyName("author")]
public string Author { get; set; } = "";
[JsonPropertyName("playabilityStatus")]
public string PlayabilityStatus { get; set; } = "";
[JsonPropertyName("lengthSeconds")]
public long LengthSeconds { get; set; }
[JsonPropertyName("isOwnerViewing")]
public string[] Keywords { get; set; } = [];
public bool IsOwnerViewing { get; set; }
[JsonPropertyName("allowRating")]
public bool AllowRating { get; set; }
[JsonPropertyName("isCrawlable")]
public bool IsCrawlable { get; set; }
[JsonPropertyName("isPrivate")]
public bool IsPrivate { get; set; }
[JsonPropertyName("isUnpluggedCorpus")]
public bool IsUnpluggedCorpus { get; set; }
[JsonPropertyName("isLive")]
public bool IsLive { get; set; }
[JsonPropertyName("isFamilySafe")]
public bool IsFamilySave { get; set; }
[JsonPropertyName("availableCountries")]
public string[] AvailableCountries { get; set; } = [];
[JsonPropertyName("isUnlisted")]
public bool IsUnlisted { get; set; }
[JsonPropertyName("hasYpcMetadata")]
public bool HasYpcMetadata { get; set; }
[JsonPropertyName("publishDate")]
public DateTime PublishDate { get; set; }
[JsonPropertyName("uploadDate")]
public DateTime UploadDate { get; set; }
[JsonPropertyName("isShortsEligible")]
public bool IsShortsEligible { get; set; }
[JsonPropertyName("category")]
public string Category { get; set; } = "";
public StreamingData StreamingData { get; set; } = new();
[JsonPropertyName("thumbnail")]
public StreamingData? StreamingData { get; set; }
public List<WebImage> Thumbnails { get; set; } = [];
public PlayerConfig? PlayerConfig { get; set; }