first successful download

This commit is contained in:
ThetaDev 2022-08-06 23:37:27 +02:00
parent a6041a013b
commit beb1177a11
16 changed files with 4076 additions and 121 deletions

View file

@ -29,32 +29,32 @@ pub struct Thumbnail {
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MusicItem {
thumbnail: MusicThumbnailRenderer,
playlist_item_data: PlaylistItemData,
pub thumbnail: MusicThumbnailRenderer,
pub playlist_item_data: PlaylistItemData,
#[serde(default)]
#[serde_as(as = "VecSkipError<_>")]
flex_columns: Vec<MusicColumn>,
pub flex_columns: Vec<MusicColumn>,
#[serde(default)]
#[serde_as(as = "VecSkipError<_>")]
fixed_columns: Vec<MusicColumn>,
pub fixed_columns: Vec<MusicColumn>,
}
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MusicThumbnailRenderer {
music_thumbnail_renderer: MusicThumbnailRenderer2,
pub music_thumbnail_renderer: MusicThumbnailRenderer2,
}
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MusicThumbnailRenderer2 {
thumbnail: Thumbnails,
pub thumbnail: Thumbnails,
}
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PlaylistItemData {
video_id: String,
pub video_id: String,
}
#[derive(Clone, Debug, Deserialize)]
@ -63,12 +63,12 @@ pub struct MusicColumn {
rename = "musicResponsiveListItemFlexColumnRenderer",
alias = "musicResponsiveListItemFixedColumnRenderer"
)]
renderer: MusicColumnRenderer,
pub renderer: MusicColumnRenderer,
}
#[serde_as]
#[derive(Clone, Debug, Deserialize)]
pub struct MusicColumnRenderer {
#[serde_as(as = "crate::serializer::text::TextLink")]
text: TextLink,
pub text: TextLink,
}

View file

@ -235,5 +235,5 @@ pub struct PlayerMicroformatRenderer {
pub category: String,
pub publish_date: NaiveDate,
// Only on YT Music
pub tags: Option<Vec<String>>
pub tags: Option<Vec<String>>,
}

View file

@ -4,7 +4,7 @@ use serde_with::{json::JsonString, DefaultOnError, VecSkipError};
use crate::serializer::text::TextLink;
use super::{Thumbnails, MusicItem};
use super::{MusicItem, Thumbnails};
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
@ -42,19 +42,19 @@ pub struct ItemSection {
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PlaylistVideoList {
pub playlist_video_list_renderer: ContentsRenderer<PlaylistVideoItem>
pub playlist_video_list_renderer: ContentsRenderer<PlaylistVideoItem>,
}
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PlaylistVideoItem {
playlist_video_renderer: PlaylistVideo,
pub playlist_video_renderer: PlaylistVideo,
}
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PlaylistMusicItem {
music_responsive_list_item_renderer: MusicItem,
pub music_responsive_list_item_renderer: MusicItem,
}
#[serde_as]
@ -94,12 +94,12 @@ pub struct HeaderRenderer {
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ContentRenderer<T> {
pub content: T
pub content: T,
}
#[derive(Clone, Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ContentsRenderer<T> {
#[serde(alias = "tabs")]
pub contents: Vec<T>
pub contents: Vec<T>,
}