fix: video_details empty content, update client versions

This commit is contained in:
ThetaDev 2022-10-12 00:24:08 +02:00
parent 0d1e569248
commit d4d029c3ce
3 changed files with 9 additions and 8 deletions

View file

@ -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";

View file

@ -25,7 +25,7 @@ use super::{
#[serde(rename_all = "camelCase")]
pub struct VideoDetails {
/// Video metadata + recommended videos
pub contents: Contents,
pub contents: Option<Contents>,
/// Video ID
pub current_video_endpoint: Option<CurrentVideoEndpoint>,
/// Video chapters + comment section

View file

@ -92,6 +92,9 @@ impl MapResponse<VideoDetails> for response::VideoDetails {
) -> Result<MapResult<VideoDetails>, 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<VideoDetails> 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<VideoDetails> 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| {