From d4d029c3cea6e9e0e18e985639fc42259b08281c Mon Sep 17 00:00:00 2001 From: ThetaDev Date: Wed, 12 Oct 2022 00:24:08 +0200 Subject: [PATCH] fix: video_details empty content, update client versions --- src/client/mod.rs | 6 +++--- src/client/response/video_details.rs | 2 +- src/client/video_details.rs | 9 +++++---- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/src/client/mod.rs b/src/client/mod.rs index 9910c32..981e4f2 100644 --- a/src/client/mod.rs +++ b/src/client/mod.rs @@ -141,13 +141,13 @@ const YOUTUBE_MUSIC_V1_URL: &str = "https://music.youtube.com/youtubei/v1/"; const DISABLE_PRETTY_PRINT_PARAMETER: &str = "&prettyPrint=false"; -const DESKTOP_CLIENT_VERSION: &str = "2.20220909.00.00"; +const DESKTOP_CLIENT_VERSION: &str = "2.20221011.00.00"; const DESKTOP_API_KEY: &str = "AIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8"; const TVHTML5_CLIENT_VERSION: &str = "2.0"; const DESKTOP_MUSIC_API_KEY: &str = "AIzaSyC9XL3ZjWddXya6X74dJoCTL-WEYFDNX30"; -const DESKTOP_MUSIC_CLIENT_VERSION: &str = "1.20220831.01.02"; +const DESKTOP_MUSIC_CLIENT_VERSION: &str = "1.20221005.01.00"; -const MOBILE_CLIENT_VERSION: &str = "17.29.35"; +const MOBILE_CLIENT_VERSION: &str = "17.39.35"; const ANDROID_API_KEY: &str = "AIzaSyA8eiZmM1FaDVjRy-df2KTyQ_vz_yYM39w"; const IOS_API_KEY: &str = "AIzaSyB-63vPrdThhKuerbB2N_l7Kwwcxj6yUAc"; const IOS_DEVICE_MODEL: &str = "iPhone14,5"; diff --git a/src/client/response/video_details.rs b/src/client/response/video_details.rs index c2fe982..17087c3 100644 --- a/src/client/response/video_details.rs +++ b/src/client/response/video_details.rs @@ -25,7 +25,7 @@ use super::{ #[serde(rename_all = "camelCase")] pub struct VideoDetails { /// Video metadata + recommended videos - pub contents: Contents, + pub contents: Option, /// Video ID pub current_video_endpoint: Option, /// Video chapters + comment section diff --git a/src/client/video_details.rs b/src/client/video_details.rs index 7a1e1f6..731d1d8 100644 --- a/src/client/video_details.rs +++ b/src/client/video_details.rs @@ -92,6 +92,9 @@ impl MapResponse for response::VideoDetails { ) -> Result, ExtractionError> { let mut warnings = Vec::new(); + let contents = self + .contents + .ok_or_else(|| ExtractionError::ContentUnavailable("Video not found".into()))?; let current_video_endpoint = self .current_video_endpoint .ok_or_else(|| ExtractionError::ContentUnavailable("Video not found".into()))?; @@ -104,8 +107,7 @@ impl MapResponse for response::VideoDetails { ))); } - let mut primary_results = self - .contents + let mut primary_results = contents .two_column_watch_next_results .results .results @@ -247,8 +249,7 @@ impl MapResponse for response::VideoDetails { _ => return Err(ExtractionError::InvalidData("invalid channel link".into())), }; - let recommended = self - .contents + let recommended = contents .two_column_watch_next_results .secondary_results .and_then(|sr| {