This repository has been archived on 2024-12-22. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
elliebot/src/EllieBot/Modules/Searches/Search/Youtube/InvidiousSearchResponse.cs

63 lines
1.7 KiB
C#
Raw Normal View History

2024-09-21 14:42:25 +12:00
using System.Text.Json.Serialization;
namespace EllieBot.Modules.Searches;
public sealed class InvidiousSearchResponse
{
[JsonPropertyName("videoId")]
public required string VideoId { get; init; }
[JsonPropertyName("title")]
public required string Title { get; init; }
[JsonPropertyName("videoThumbnails")]
public required List<InvidiousThumbnail> Thumbnails { get; init; }
[JsonPropertyName("lengthSeconds")]
public required int LengthSeconds { get; init; }
[JsonPropertyName("description")]
public required string Description { get; init; }
}
public sealed class InvidiousVideoResponse
{
[JsonPropertyName("title")]
public required string Title { get; init; }
[JsonPropertyName("videoId")]
public required string VideoId { get; init; }
[JsonPropertyName("lengthSeconds")]
public required int LengthSeconds { get; init; }
[JsonPropertyName("videoThumbnails")]
public required List<InvidiousThumbnail> Thumbnails { get; init; }
[JsonPropertyName("adaptiveFormats")]
public required List<InvidiousAdaptiveFormat> AdaptiveFormats { get; init; }
}
public sealed class InvidiousAdaptiveFormat
{
[JsonPropertyName("url")]
public required string Url { get; init; }
[JsonPropertyName("audioQuality")]
public string? AudioQuality { get; init; }
}
public sealed class InvidiousPlaylistResponse
{
[JsonPropertyName("title")]
public required string Title { get; init; }
[JsonPropertyName("videos")]
public required List<InvidiousVideoResponse> Videos { get; init; }
}
public sealed class InvidiousThumbnail
{
[JsonPropertyName("url")]
public required string Url { get; init; }
}