updates
This commit is contained in:
@@ -60,21 +60,33 @@ impl VideoEmbed {
|
||||
#[derive(serde::Serialize, Debug, Clone)]
|
||||
pub struct VideoItem {
|
||||
pub duration: u32, // 110,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub views: Option<u32>, // 14622653,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub rating: Option<f32>, // 0.0,
|
||||
pub id: String, // "c85017ca87477168d648727753c4ded8a35f173e22ef93743e707b296becb299",
|
||||
pub title: String, // "20 Minutes of Adorable Kittens BEST Compilation",
|
||||
pub url: String, // "https://www.youtube.com/watch?v=y0sF5xhGreA",
|
||||
pub channel: String, // "youtube",
|
||||
pub thumb: String, // "https://i.ytimg.com/vi/y0sF5xhGreA/hqdefault.jpg",
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub uploader: Option<String>, // "The Pet Collective",
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub uploaderUrl: Option<String>, // "https://www.youtube.com/@petcollective",
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub verified: Option<bool>, // false,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub tags: Option<Vec<String>>, // [],
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub uploadedAt: Option<u64>, // 1741142954
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub formats: Option<Vec<VideoFormat>>, // Additional HTTP headers if needed
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub embed: Option<VideoEmbed>, // Optional embed information
|
||||
pub preview: Option<String>
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub preview: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
pub aspectRation: Option<f32>
|
||||
}
|
||||
#[allow(dead_code)]
|
||||
impl VideoItem {
|
||||
@@ -102,7 +114,8 @@ impl VideoItem {
|
||||
uploadedAt: None,
|
||||
formats: None, // Placeholder for formats
|
||||
embed: None, // Placeholder for embed information
|
||||
preview: None
|
||||
preview: None,
|
||||
aspectRation: None
|
||||
}
|
||||
}
|
||||
pub fn tags(mut self, tags: Vec<String>) -> Self {
|
||||
@@ -152,6 +165,11 @@ impl VideoItem {
|
||||
self.preview = Some(preview);
|
||||
self
|
||||
}
|
||||
|
||||
pub fn aspect_ratio(mut self, aspect_ratio: f32) -> Self {
|
||||
self.aspectRation = Some(aspect_ratio);
|
||||
self
|
||||
}
|
||||
}
|
||||
|
||||
#[derive(serde::Serialize, Debug, Clone)]
|
||||
@@ -159,27 +177,49 @@ pub struct VideoFormat {
|
||||
url: String,
|
||||
quality: String,
|
||||
format: String,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
format_id: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
format_note: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
filesize: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
asr: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
fps: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
width: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
height: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
tbr: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
language: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
language_preference: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
ext: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
vcodec: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
acodec: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
dynamic_range: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
abr: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
vbr: Option<u32>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
container: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
protocol: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
audio_ext: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
video_ext: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
resolution: Option<String>,
|
||||
#[serde(skip_serializing_if = "Option::is_none")]
|
||||
http_headers: Option<HashMap<String, String>>,
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user