refactor: update recommended video response model

This commit is contained in:
Theta-Dev 2022-10-17 12:50:07 +02:00
parent 999ebf7c36
commit 71c77fcfb6
19 changed files with 1100 additions and 863 deletions

View file

@ -1,7 +1,5 @@
use crate::error::{Error, ExtractionError};
use crate::model::{
Comment, ContinuationEndpoint, Paginator, PlaylistVideo, RecommendedVideo, YouTubeItem,
};
use crate::model::{Comment, ContinuationEndpoint, Paginator, PlaylistVideo, YouTubeItem};
use crate::serializer::MapResult;
use crate::util::TryRemove;
@ -52,7 +50,9 @@ impl<T: TryFrom<YouTubeItem>> MapResponse<Paginator<T>> for response::Continuati
lang: crate::param::Language,
_deobf: Option<&crate::deobfuscate::Deobfuscator>,
) -> Result<MapResult<Paginator<T>>, ExtractionError> {
let mut actions = self.on_response_received_actions;
let mut actions = self
.on_response_received_actions
.ok_or(ExtractionError::Retry)?;
let items = some_or_bail!(
actions.try_swap_remove(0),
Err(ExtractionError::InvalidData(
@ -137,9 +137,7 @@ macro_rules! paginator {
}
paginator!(Comment, RustyPipeQuery::video_comments);
paginator!(PlaylistVideo, RustyPipeQuery::playlist_continuation);
paginator!(RecommendedVideo, RustyPipeQuery::video_recommendations);
impl<T: TryFrom<YouTubeItem>> Paginator<T> {
pub async fn next(&self, query: RustyPipeQuery) -> Result<Option<Self>, Error> {
@ -205,6 +203,7 @@ mod tests {
use crate::{
client::{response, MapResponse},
error::ExtractionError,
model::{Paginator, PlaylistItem, YouTubeItem},
param::Language,
serializer::MapResult,
@ -213,6 +212,7 @@ mod tests {
#[rstest]
#[case("search", "search/cont")]
#[case("startpage", "trends/startpage_cont")]
#[case("recommendations", "video_details/recommendations")]
fn map_continuation_items(#[case] name: &str, #[case] path: &str) {
let filename = format!("testfiles/{}.json", path);
let json_path = Path::new(&filename);
@ -228,7 +228,7 @@ mod tests {
"deserialization/mapping warnings: {:?}",
map_res.warnings
);
insta::assert_ron_snapshot!(format!("map_cont_{}", name), map_res.c, {
insta::assert_ron_snapshot!(format!("map_{}", name), map_res.c, {
".items.*.publish_date" => "[date]",
});
}
@ -250,6 +250,21 @@ mod tests {
"deserialization/mapping warnings: {:?}",
map_res.warnings
);
insta::assert_ron_snapshot!(format!("map_cont_{}", name), map_res.c);
insta::assert_ron_snapshot!(format!("map_{}", name), map_res.c);
}
#[test]
fn map_recommendations_empty() {
let filename = format!("testfiles/video_details/recommendations_empty.json");
let json_path = Path::new(&filename);
let json_file = File::open(json_path).unwrap();
let recommendations: response::Continuation =
serde_json::from_reader(BufReader::new(json_file)).unwrap();
let map_res: Result<MapResult<Paginator<YouTubeItem>>, ExtractionError> =
recommendations.map_response("", Language::En, None);
let err = map_res.unwrap_err();
assert!(matches!(err, crate::error::ExtractionError::Retry));
}
}

View file

@ -19,7 +19,6 @@ pub use trends::Trending;
pub use url_endpoint::ResolvedUrl;
pub use video_details::VideoComments;
pub use video_details::VideoDetails;
pub use video_details::VideoRecommendations;
pub use video_item::YouTubeListItem;
pub use video_item::YouTubeListMapper;
@ -497,9 +496,12 @@ pub struct Continuation {
/// Number of search results
#[serde_as(as = "Option<JsonString>")]
pub estimated_results: Option<u64>,
#[serde(alias = "onResponseReceivedCommands")]
#[serde_as(as = "VecSkipError<_>")]
pub on_response_received_actions: Vec<ContinuationActionWrap>,
#[serde(
alias = "onResponseReceivedCommands",
alias = "onResponseReceivedEndpoints"
)]
#[serde_as(as = "Option<VecSkipError<_>>")]
pub on_response_received_actions: Option<Vec<ContinuationActionWrap>>,
}
#[derive(Debug, Deserialize)]

View file

@ -10,9 +10,10 @@ use crate::serializer::{
MapResult, VecLogError,
};
use super::YouTubeListItem;
use super::{
url_endpoint::BrowseEndpoint, ContinuationEndpoint, ContinuationItemRenderer, Icon,
MusicContinuation, Thumbnails, VideoListItem, VideoOwner,
MusicContinuation, Thumbnails, VideoOwner,
};
/*
@ -282,7 +283,7 @@ pub struct RecommendationResultsWrap {
pub struct RecommendationResults {
/// Can be `None` for age-restricted videos
#[serde_as(as = "Option<VecLogError<_>>")]
pub results: Option<MapResult<Vec<VideoListItem>>>,
pub results: Option<MapResult<Vec<YouTubeListItem>>>,
#[serde_as(as = "Option<VecSkipError<_>>")]
pub continuations: Option<Vec<MusicContinuation>>,
}
@ -416,36 +417,6 @@ pub struct CommentItemSectionHeaderMenuItem {
pub service_endpoint: ContinuationEndpoint,
}
/*
#RECOMMENDATIONS CONTINUATION
*/
/// Video recommendations continuation response
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VideoRecommendations {
#[serde(default)]
#[serde_as(as = "VecSkipError<_>")]
pub on_response_received_endpoints: Vec<RecommendationsContItem>,
}
/// Video recommendations continuation
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RecommendationsContItem {
pub append_continuation_items_action: AppendRecommendations,
}
/// Video recommendations continuation
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AppendRecommendations {
#[serde_as(as = "VecLogError<_>")]
pub continuation_items: MapResult<Vec<VideoListItem>>,
}
/*
#COMMENTS CONTINUATION
*/

View file

@ -84,6 +84,7 @@ pub struct VideoRenderer {
pub title: String,
#[serde(rename = "shortBylineText")]
pub channel: Option<TextComponent>,
pub channel_thumbnail: Option<Thumbnails>,
pub channel_thumbnail_supported_renderers: Option<ChannelThumbnailSupportedRenderers>,
#[serde_as(as = "Option<Text>")]
pub published_time_text: Option<String>,
@ -221,8 +222,10 @@ impl<T> YouTubeListMapper<T> {
name: c.name,
avatar: video
.channel_thumbnail_supported_renderers
.map(|tn| tn.channel_thumbnail_with_link_renderer.thumbnail.into())
.unwrap_or_default(),
.map(|tn| tn.channel_thumbnail_with_link_renderer.thumbnail)
.or(video.channel_thumbnail)
.unwrap_or_default()
.into(),
verification: video.owner_badges.into(),
subscriber_count: None,
})

View file

@ -1,11 +1,11 @@
---
source: src/client/video_details.rs
source: src/client/pagination.rs
expression: map_res.c
---
Paginator(
count: None,
items: [
RecommendedVideo(
Video(VideoItem(
id: "WPdWvnAAurg",
title: "aespa 에스파 \'Savage\' MV",
length: Some(259),
@ -21,7 +21,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -33,14 +33,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("11 months ago"),
view_count: 216222873,
view_count: Some(216222873),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "Y8JFxS1HlDo",
title: "IVE 아이브 \'LOVE DIVE\' MV",
length: Some(179),
@ -56,7 +58,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCYDmx2Sfpnaxg488yBpZIGg",
name: "starshipTV",
avatar: [
@ -68,14 +70,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 months ago"),
view_count: 155106313,
view_count: Some(155106313),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "NoYKBAajoyo",
title: "EVERGLOW (에버글로우) - DUN DUN MV",
length: Some(209),
@ -91,7 +95,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC_pwIXKXNm5KGhdEVzmY60A",
name: "Stone Music Entertainment",
avatar: [
@ -103,14 +107,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 265238677,
view_count: Some(265238677),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "yQUU29NwNF4",
title: "aespa(에스파) - Black Mamba @인기가요 inkigayo 20201122",
length: Some(213),
@ -126,7 +132,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCS_hnpJLQTvBkqALgapi_4g",
name: "스브스케이팝 X INKIGAYO",
avatar: [
@ -138,14 +144,16 @@ Paginator(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 9989591,
view_count: Some(9989591),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "NU611fxGyPU",
title: "aespa 에스파 \'Black Mamba\' Dance Practice",
length: Some(175),
@ -161,7 +169,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC9GtSLeksfK4yuJ_g1lgQbg",
name: "aespa",
avatar: [
@ -173,14 +181,16 @@ Paginator(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 34588526,
view_count: Some(34588526),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "EaswWiwMVs8",
title: "Stray Kids \"소리꾼(Thunderous)\" M/V",
length: Some(199),
@ -196,7 +206,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -208,14 +218,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 242737870,
view_count: Some(242737870),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "Ujb-gvqsoi0",
title: "Red Velvet - IRENE & SEULGI \'Monster\' MV",
length: Some(182),
@ -231,7 +243,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -243,14 +255,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 126677200,
view_count: Some(126677200),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "gQlMMD8auMs",
title: "BLACKPINK - Pink Venom M/V",
length: Some(194),
@ -266,7 +280,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -278,14 +292,16 @@ Paginator(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 month ago"),
view_count: 335903776,
view_count: Some(335903776),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "BL-aIpCLWnU",
title: "Black Mamba",
length: Some(175),
@ -301,7 +317,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC9GtSLeksfK4yuJ_g1lgQbg",
name: "aespa",
avatar: [
@ -313,14 +329,16 @@ Paginator(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 86125645,
view_count: Some(86125645),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "Jh4QFaPmdss",
title: "(G)I-DLE - \'TOMBOY\' Official Music Video",
length: Some(198),
@ -336,7 +354,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCritGVo7pLJLUS8wEu32vow",
name: "(G)I-DLE (여자)아이들 (Official YouTube Channel)",
avatar: [
@ -348,14 +366,16 @@ Paginator(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 months ago"),
view_count: 170016610,
view_count: Some(170016610),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "Fc-fa6cAe2c",
title: "KAI 카이 \'음 (Mmmh)\' MV",
length: Some(207),
@ -371,7 +391,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -383,14 +403,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 123861096,
view_count: Some(123861096),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "dYRITmpFbJ4",
title: "aespa 에스파 \'Girls\' MV",
length: Some(269),
@ -406,7 +428,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -418,14 +440,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 months ago"),
view_count: 101968219,
view_count: Some(101968219),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "mH0_XpSHkZo",
title: "TWICE \"MORE & MORE\" M/V",
length: Some(241),
@ -441,7 +465,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -453,14 +477,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 322510403,
view_count: Some(322510403),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "uR8Mrt1IpXg",
title: "Red Velvet 레드벨벳 \'Psycho\' MV",
length: Some(216),
@ -476,7 +502,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -488,14 +514,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 345491789,
view_count: Some(345491789),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "f5_wn8mexmM",
title: "TWICE \"The Feels\" M/V",
length: Some(232),
@ -511,7 +539,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -523,14 +551,16 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("11 months ago"),
view_count: 314744776,
view_count: Some(314744776),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "Ky5RT5oGg0w",
title: "aespa 에스파 \'Black Mamba\' The Debut Stage",
length: Some(287),
@ -546,7 +576,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC9GtSLeksfK4yuJ_g1lgQbg",
name: "aespa",
avatar: [
@ -558,14 +588,16 @@ Paginator(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 18830758,
view_count: Some(18830758),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "gU2HqP4NxUs",
title: "BLACKPINK - Pretty Savage 1011 SBS Inkigayo",
length: Some(208),
@ -581,7 +613,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -593,14 +625,16 @@ Paginator(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 282957370,
view_count: Some(282957370),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "KhTeiaCezwM",
title: "[MV] MAMAMOO (마마무) - HIP",
length: Some(211),
@ -616,7 +650,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCuhAUMLzJxlP1W7mEk0_6lA",
name: "MAMAMOO",
avatar: [
@ -628,14 +662,16 @@ Paginator(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 355203298,
view_count: Some(355203298),
is_live: false,
is_short: false,
),
RecommendedVideo(
is_upcoming: false,
short_description: None,
)),
Video(VideoItem(
id: "uxmP4b2a0uY",
title: "EXO 엑소 \'Obsession\' MV",
length: Some(220),
@ -651,7 +687,7 @@ Paginator(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -663,13 +699,15 @@ Paginator(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 157400947,
view_count: Some(157400947),
is_live: false,
is_short: false,
),
is_upcoming: false,
short_description: None,
)),
],
ctoken: Some("CCgSExILWmVlcnJudUxpNUXAAQHIAQEYACrLDDJzNkw2d3l4Q1FxdUNRb0Q4ajRBQ2czQ1Bnb0l4LUM1djltdnBwZ3lDZ1B5UGdBS0RjSS1DZ2pxM0xYRXpkNk00VUVLQV9JLUFBb093ajRMQ1Bqc19JLUVsWTI5MWdFS0FfSS1BQW93MGo0dENpdFNSRU5NUVVzMWRYbGZhekkzZFhVdFJYUlJYMkkxVlRKeU1qWkVUa1JhVDIxT2NVZGtZMk5WU1VkUkNnUHlQZ0FLRHNJLUN3amZ2czJMbjRUcG5iUUJDZ1B5UGdBS0V0SS1Ed29OVWtSYVpXVnljbTUxVEdrMVJRb0Q4ajRBQ2c3Q1Bnc0kzYmJTdThMRy1wS1VBUW9EOGo0QUNnN0NQZ3NJX2JYd2lmQzJ0WlczQVFvRDhqNEFDZzdDUGdzSXpZckE3b0RHbzlMUUFRb0Q4ajRBQ2czQ1Bnb0l0N212dk9fUjVJUnZDZ1B5UGdBS0RjSS1DZ2lBcDdMWDBlYWxyaW9LQV9JLUFBb053ajRLQ0luanlmalZ0dUwxWHdvRDhqNEFDZzNDUGdvSXBKZmozYVR5X2MwZkNnUHlQZ0FLRGNJLUNnamJtNW1MbGRLQTV3Z0tBX0ktQUFvT3dqNExDTFRhOF9UNjE3U3UyQUVLQV9JLUFBb053ajRLQ05xMHBhdXZzS1BDZEFvRDhqNEFDZzdDUGdzSTVQR3E5WTIybWNXZ0FRb0Q4ajRBQ2c3Q1Bnc0lnNkdPN3JidzJjR0tBUW9EOGo0QUNnN0NQZ3NJenEtbWxQUy01SnJoQVFvRDhqNEFDZzdDUGdzSXZNbnBqSUtUeXBYX0FRb0Q4ajRBQ2czQ1Bnb0l1UFdDZ09mWDFmdFlDZ1B5UGdBS0g5SS1IQW9hVWtSRlRWUnVTbmxSZDJsamFHMW5lbm96VGxKSlVIVmxWMUVLQV9JLUFBb053ajRLQ0xxb251clN1SkhoWXdvRDhqNEFDZzNDUGdvSXFzYU90Y0RBZ3NNMkNnUHlQZ0FLRHNJLUN3amU2TUNidlp2Rmdza0JDZ1B5UGdBS0RjSS1DZ2oxa1p2aTM3cXRwelVLQV9JLUFBb053ajRLQ00tdHNlQ2lpOHpWRVFvRDhqNEFDZzNDUGdvSXJjU3kxYV9RdjV0U0NnUHlQZ0FLRHNJLUN3akw4ZXI0ZzRiVGhJRUJDZ1B5UGdBS0RjSS1DZ2oxdEsyRXFjVG0zd1FLQV9JLUFBb053ajRLQ012dG1aX2Fnb1NQSmdvRDhqNEFDZzNDUGdvSTVfYUJ1THJ0NS1jVkNnUHlQZ0FLRGNJLUNnaWUyWlhTNW9tU3duVUtBX0ktQUFvT3dqNExDSnFqbnFUcDY4LS1tQUVLQV9JLUFBb093ajRMQ1BqS291cnRsY09QdVFFS0FfSS1BQW9Od2o0S0NPT00tOHo4a196UGZ3b0Q4ajRBQ2czQ1Bnb0l6SWFhMFBtcGxKY3JDZ1B5UGdBS0RzSS1Dd2pMaXJmd2pfWGhwb0VCQ2dQeVBnQUtEY0ktQ2dpRG52dUVtdEczaWlvS0FfSS1BQW9Pd2o0TENPYWw2LXliX09PTXV3RVNLQUFDQkFZSUNnd09FQklVRmhnYUhCNGdJaVFtS0Nvc0xqQXlORFk0T2p3LVFFSkVSa2hLVEU0YUJBZ0FFQUVhQkFnQ0VBTWFCQWdFRUFVYUJBZ0dFQWNhQkFnSUVBa2FCQWdLRUFzYUJBZ01FQTBhQkFnT0VBOGFCQWdRRUJFYUJBZ1NFQk1hQkFnVUVCVWFCQWdXRUJjYUJBZ1lFQmthQkFnYUVCc2FCQWdjRUIwYUJBZ2VFQjhhQkFnZ0VDRWFCQWdpRUNNYUJBZ2tFQ1VhQkFnbUVDY2FCQWdvRUNrYUJBZ3FFQ3NhQkFnc0VDMGFCQWd1RUM4YUJBZ3dFREVhQkFneUVETWFCQWcwRURVYUJBZzJFRGNhQkFnNEVEa2FCQWc2RURzYUJBZzhFRDBhQkFnLUVEOGFCQWhBRUVFYUJBaENFRU1hQkFoRUVFVWFCQWhHRUVjYUJBaElFRWthQkFoS0VFc2FCQWhNRUUwYUJBaE9FRThxS0FBQ0JBWUlDZ3dPRUJJVUZoZ2FIQjRnSWlRbUtDb3NMakF5TkRZNE9qdy1RRUpFUmtoS1RFNGoPd2F0Y2gtbmV4dC1mZWVkcgA%3D"),
endpoint: browse,

View file

@ -104,7 +104,7 @@ VideoDetails(
recommended: Paginator(
count: None,
items: [
RecommendedVideo(
VideoItem(
id: "aRpkasmB6so",
title: "18 de setembro de 2022",
length: Some(184),
@ -120,7 +120,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCQYl87Oi9aWzz-CLhTw3Rzg",
name: "Allan Nascimento",
avatar: [
@ -132,14 +132,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 days ago"),
view_count: 996,
view_count: Some(996),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "lCXqNCd0m10",
title: "aespa(エスパ) Savage + Next Level + Black Mamba💕Stage Mix Compilation🔥에스파 무대모음 KBS Music Bank",
length: Some(898),
@ -155,7 +157,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCgqMjKxRWAKUvgYqgomighw",
name: "KBS충북",
avatar: [
@ -167,14 +169,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("7 months ago"),
view_count: 7684395,
view_count: Some(7684395),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "tDukIfFzX18",
title: "[MV] Hwa Sa(화사) _ Maria(마리아)",
length: Some(231),
@ -190,7 +194,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCweOkPb1wVVH0Q0Tlj4a5Pw",
name: "1theK (원더케이)",
avatar: [
@ -202,14 +206,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 260984648,
view_count: Some(260984648),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "e-ORhEE9VVg",
title: "Taylor Swift - Blank Space",
length: Some(273),
@ -225,7 +231,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCqECaJ8Gagnn7YCbPEzWH6g",
name: "Taylor Swift",
avatar: [
@ -237,14 +243,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("7 years ago"),
view_count: 3035220118,
view_count: Some(3035220118),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "qfVuRQX0ydQ",
title: "[MV] Weeekly(위클리) _ After School",
length: Some(225),
@ -260,7 +268,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCweOkPb1wVVH0Q0Tlj4a5Pw",
name: "1theK (원더케이)",
avatar: [
@ -272,14 +280,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 138451832,
view_count: Some(138451832),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "tyrVtwE8Gv0",
title: "NCT U 엔시티 유 \'Make A Wish (Birthday Song)\' MV",
length: Some(249),
@ -295,7 +305,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -307,14 +317,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 255458628,
view_count: Some(255458628),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "X-uJtV8ScYk",
title: "Stray Kids \"Back Door\" M/V",
length: Some(218),
@ -330,7 +342,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -342,14 +354,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 274719671,
view_count: Some(274719671),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "MjCZfZfucEc",
title: "ITZY “LOCO” M/V @ITZY",
length: Some(233),
@ -365,7 +379,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -377,14 +391,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 203129706,
view_count: Some(203129706),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "2FzSv66c7TQ",
title: "A E S P A (에스파) ALL SONGS PLAYLIST 2022 | 에스파 노래 모음",
length: Some(3441),
@ -400,7 +416,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCK8S6QMrTk1G8TYQwIyDo-w",
name: "LQ K-POP",
avatar: [
@ -412,14 +428,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 months ago"),
view_count: 531757,
view_count: Some(531757),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CevxZvSJLk8",
title: "Katy Perry - Roar (Official)",
length: Some(270),
@ -435,7 +453,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCYvmuw-JtVrTZQ-7Y4kd63Q",
name: "Katy Perry",
avatar: [
@ -447,14 +465,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("9 years ago"),
view_count: 3656394146,
view_count: Some(3656394146),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "bwmSjveL3Lc",
title: "BLACKPINK - \'붐바야 (BOOMBAYAH)\' M/V",
length: Some(244),
@ -470,7 +490,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -482,14 +502,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 years ago"),
view_count: 1479871637,
view_count: Some(1479871637),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CM4CkVFmTds",
title: "TWICE \"I CAN\'T STOP ME\" M/V",
length: Some(221),
@ -505,7 +527,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -517,14 +539,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 456763969,
view_count: Some(456763969),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "ioNng23DkIM",
title: "BLACKPINK - \'How You Like That\' M/V",
length: Some(184),
@ -540,7 +564,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -552,14 +576,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 1149727787,
view_count: Some(1149727787),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "BL-aIpCLWnU",
title: "Black Mamba",
length: Some(175),
@ -575,7 +601,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC9GtSLeksfK4yuJ_g1lgQbg",
name: "aespa",
avatar: [
@ -587,14 +613,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 86080254,
view_count: Some(86080254),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Jh4QFaPmdss",
title: "(G)I-DLE - \'TOMBOY\' Official Music Video",
length: Some(198),
@ -610,7 +638,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCritGVo7pLJLUS8wEu32vow",
name: "(G)I-DLE (여자)아이들 (Official YouTube Channel)",
avatar: [
@ -622,14 +650,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 months ago"),
view_count: 169858302,
view_count: Some(169858302),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "WPdWvnAAurg",
title: "aespa 에스파 \'Savage\' MV",
length: Some(259),
@ -645,7 +675,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -657,14 +687,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("11 months ago"),
view_count: 216164610,
view_count: Some(216164610),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Z7yNvMzz2zg",
title: "Red Velvet 레드벨벳 \'Psycho\' Performance Video",
length: Some(216),
@ -680,7 +712,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCk9GmdlDTBfgGRb7vXeRMoQ",
name: "Red Velvet",
avatar: [
@ -692,27 +724,29 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 135093083,
view_count: Some(135093083),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
],
ctoken: Some("CBQSExILWmVlcnJudUxpNUXAAQHIAQEYACreBjJzNkw2d3pfQkFyOEJBb0Q4ajRBQ2czQ1Bnb0l5dFdIekt5Tm1ZMXBDZ1B5UGdBS0o5SS1KQW9pVUV4eU1UUldiR05sYkRKVE16UlpSMmw1WlZkRU1rOW9jbU4wVGt4Q1psVk9PUW9EOGo0QUNoTFNQZzhLRFZKRVdtVmxjbkp1ZFV4cE5VVUtBX0ktQUFvT3dqNExDTjIyMHJ2Q3h2cVNsQUVLQV9JLUFBb3cwajR0Q2l0U1JFTk1RVXMxZFhsZmF6STNkWFV0UlhSUlgySTFWVEp5TWpaRVRrUmFUMjFPY1Vka1kyTlZTVWRSQ2dQeVBnQUtEc0ktQ3dqZnZzMkxuNFRwbmJRQkNnUHlQZ0FLRGNJLUNnallxdldKeExEazhYc0tBX0ktQUFvT3dqNExDTlNUMDZfUXlOdjZxUUVLQV9JLUFBb093ajRMQ1AyMThJbnd0cldWdHdFS0FfSS1BQW9Od2o0S0NJbmp5ZmpWdHVMMVh3b0Q4ajRBQ2czQ1Bnb0l4LUM1djltdnBwZ3lDZ1B5UGdBS0RzSS1Dd2kwMnZQMC10ZTBydGdCQ2dQeVBnQUtEY0ktQ2dqUDNLU2s3Nno4OVFrS0FfSS1BQW9Od2o0S0NMZTVyN3p2MGVTRWJ3b0Q4ajRBQ2czQ1Bnb0kyNXVaaTVYU2dPY0lDZ1B5UGdBS0RzSS1Dd2lEb1k3dXR2RFp3WW9CQ2dQeVBnQUtEY0ktQ2dqMXRLMkVxY1RtM3dRS0FfSS1BQW9Od2o0S0NNdnRtWl9hZ29TUEpnb0Q4ajRBQ2czQ1Bnb0l1UFdDZ09mWDFmdFlDZ1B5UGdBS0RjSS1DZ2k0dHNfbnpMZWozbWNTRkFBQ0JBWUlDZ3dPRUJJVUZoZ2FIQjRnSWlRbUdnUUlBQkFCR2dRSUFoQURHZ1FJQkJBRkdnUUlCaEFIR2dRSUNCQUpHZ1FJQ2hBTEdnUUlEQkFOR2dRSURoQVBHZ1FJRUJBUkdnUUlFaEFUR2dRSUZCQVZHZ1FJRmhBWEdnUUlHQkFaR2dRSUdoQWJHZ1FJSEJBZEdnUUlIaEFmR2dRSUlCQWhHZ1FJSWhBakdnUUlKQkFsR2dRSUpoQW5LaFFBQWdRR0NBb01EaEFTRkJZWUdod2VJQ0lrSmdqD3dhdGNoLW5leHQtZmVlZA%3D%3D"),
endpoint: browse,
endpoint: next,
),
top_comments: Paginator(
count: Some(705000),
items: [],
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyJSIRIgtaZWVycm51TGk1RTAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: Some(705000),
items: [],
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyOCIRIgtaZWVycm51TGk1RTABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
endpoint: browse,
endpoint: next,
),
)

View file

@ -104,7 +104,7 @@ VideoDetails(
recommended: Paginator(
count: None,
items: [
RecommendedVideo(
VideoItem(
id: "WPdWvnAAurg",
title: "aespa 에스파 \'Savage\' MV",
length: Some(259),
@ -120,7 +120,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -132,14 +132,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 218055265,
view_count: Some(218055265),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "4TWR90KJl84",
title: "aespa 에스파 \'Next Level\' MV",
length: Some(236),
@ -155,7 +157,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -167,14 +169,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 248023999,
view_count: Some(248023999),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "uR8Mrt1IpXg",
title: "Red Velvet 레드벨벳 \'Psycho\' MV",
length: Some(216),
@ -190,7 +194,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -202,14 +206,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 347102621,
view_count: Some(347102621),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "UUUWIGx3hDE",
title: "ITZY \"WANNABE\" Performance Video",
length: Some(198),
@ -225,7 +231,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCDhM2k2Cua-JdobAh5moMFg",
name: "ITZY",
avatar: [
@ -237,14 +243,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 97453393,
view_count: Some(97453393),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "NoYKBAajoyo",
title: "EVERGLOW (에버글로우) - DUN DUN MV",
length: Some(209),
@ -260,7 +268,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC_pwIXKXNm5KGhdEVzmY60A",
name: "Stone Music Entertainment",
avatar: [
@ -272,14 +280,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 266364690,
view_count: Some(266364690),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "32si5cfrCNc",
title: "BLACKPINK - \'How You Like That\' DANCE PERFORMANCE VIDEO",
length: Some(181),
@ -295,7 +305,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -307,14 +317,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 1254749733,
view_count: Some(1254749733),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CM4CkVFmTds",
title: "TWICE \"I CAN\'T STOP ME\" M/V",
length: Some(221),
@ -330,7 +342,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -342,14 +354,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 459831562,
view_count: Some(459831562),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "UZPZyd5vE1c",
title: "Shut Down",
length: Some(176),
@ -365,7 +379,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -377,14 +391,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 weeks ago"),
view_count: 7118730,
view_count: Some(7118730),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CKZvWhCqx1s",
title: "ROSÉ - \'On The Ground\' M/V",
length: Some(189),
@ -400,7 +416,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -412,14 +428,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 300492226,
view_count: Some(300492226),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "fE2h3lGlOsk",
title: "ITZY \"WANNABE\" M/V @ITZY",
length: Some(219),
@ -435,7 +453,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -447,14 +465,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 469178299,
view_count: Some(469178299),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Y8JFxS1HlDo",
title: "IVE 아이브 \'LOVE DIVE\' MV",
length: Some(179),
@ -470,7 +490,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCYDmx2Sfpnaxg488yBpZIGg",
name: "starshipTV",
avatar: [
@ -482,14 +502,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 months ago"),
view_count: 161053206,
view_count: Some(161053206),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "dNCWe_6HAM8",
title: "LISA - \'MONEY\' EXCLUSIVE PERFORMANCE VIDEO",
length: Some(171),
@ -505,7 +527,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -517,14 +539,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 694135299,
view_count: Some(694135299),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "tyrVtwE8Gv0",
title: "NCT U 엔시티 유 \'Make A Wish (Birthday Song)\' MV",
length: Some(249),
@ -540,7 +564,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -552,14 +576,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 256797155,
view_count: Some(256797155),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "gU2HqP4NxUs",
title: "BLACKPINK - Pretty Savage 1011 SBS Inkigayo",
length: Some(208),
@ -575,7 +601,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -587,14 +613,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 285625201,
view_count: Some(285625201),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Ujb-gvqsoi0",
title: "Red Velvet - IRENE & SEULGI \'Monster\' MV",
length: Some(182),
@ -610,7 +638,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -622,14 +650,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 127297352,
view_count: Some(127297352),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "KhTeiaCezwM",
title: "[MV] MAMAMOO (마마무) - HIP",
length: Some(211),
@ -645,7 +675,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCuhAUMLzJxlP1W7mEk0_6lA",
name: "MAMAMOO",
avatar: [
@ -657,14 +687,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 357346135,
view_count: Some(357346135),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "XJDPzNzQ3RE",
title: "Run BTS! 2022 Special Episode - Fly BTS Fly Part 1",
length: Some(2070),
@ -680,7 +712,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCLkAepWjdylmXSltofFvsYQ",
name: "BANGTANTV",
avatar: [
@ -692,14 +724,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 hours ago"),
view_count: 748983,
view_count: Some(748983),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "0lXwMdnpoFQ",
title: "aespa 에스파 \'도깨비불 (Illusion)\' Dance Practice",
length: Some(210),
@ -715,7 +749,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC473RoZQE2gtgZJ61ZW0ZDQ",
name: "SMP FLOOR",
avatar: [
@ -727,14 +761,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 months ago"),
view_count: 12347702,
view_count: Some(12347702),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "IHNzOHi8sJs",
title: "BLACKPINK - ‘뚜두뚜두 (DDU-DU DDU-DU) M/V",
length: Some(216),
@ -750,7 +786,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -762,27 +798,29 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 years ago"),
view_count: 1964840790,
view_count: Some(1964840790),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
],
ctoken: Some("CBQSExILWmVlcnJudUxpNUXAAQHIAQEYACqiDDJzNkw2d3lTQ1FxUENRb0Q4ajRBQ2czQ1Bnb0l1UFdDZ09mWDFmdFlDZ1B5UGdBS0RzSS1Dd2pPcjZhVTlMN2ttdUVCQ2dQeVBnQUtFdEktRHdvTlVrUmFaV1Z5Y201MVRHazFSUW9EOGo0QUNnN0NQZ3NJLU1xaTZ1MlZ3NC01QVFvRDhqNEFDZzNDUGdvSXNZamU0NGJFeGFKUkNnUHlQZ0FLRGNJLUNnaXF4bzYxd01DQ3d6WUtBX0ktQUFvT3dqNExDTmVSckxfYzNNaTEzd0VLQV9JLUFBb053ajRLQ051Ym1ZdVYwb0RuQ0FvRDhqNEFDZzNDUGdvSTE2YTg4NTI1OXNsUkNnUHlQZ0FLRGNJLUNnamJqcXVGb2V1YjB3Z0tBX0ktQUFvTndqNEtDTW4xbEkzbHUtaW1mQW9EOGo0QUNnM0NQZ29JdXFpZTZ0SzRrZUZqQ2dQeVBnQUtEY0ktQ2dqUGdaejB2OC1sNkhRS0FfSS1BQW9Pd2o0TENQMjE4SW53dHJXVnR3RUtBX0ktQUFvT3dqNExDTXVLdF9DUDllR21nUUVLQV9JLUFBb053ajRLQ0szRXN0V3YwTC1iVWdvRDhqNEFDZzNDUGdvSWc1NzdoSnJSdDRvcUNnUHlQZ0FLRGNJLUNnaVJ1c1BtemZtenlGd0tBX0ktQUFvT3dqNExDTlRBcHMtZGh2eXEwZ0VLQV9JLUFBb053ajRLQ0p2aDhzV0g1OXk1SUFvRDhqNEFDaF9TUGh3S0dsSkVRVTk2ZFZaM1JWbDNZMUZFTkhWMmNHZEJUbU5JU0ZWM0NoX1NQaHdLR2xKRVFVOWZjQzFWYmpCSGVUbHVXRlZ0Wm1kaE0xTlNYMXAzQ2hfU1Bod0tHbEpFUVU5cFEwaENhR3R1VTBSd09HcFZWekJPUzFoWU9FMVJDaF9TUGh3S0dsSkVRVTlYWjBsd1lVbDZha1p6UVhkeE5GOXhWR2hyTlROQkNoX1NQaHdLR2xKRVFVOXFNVkpuZEhkZmVtZHJibWxSWkdkTU5XTnlVRmxCQ2hfU1Bod0tHbEpFUVU4NWExbHRhMU5KVG5CVGFYVldTalEzUjNkT1RWSm5DaF9TUGh3S0dsSkVRVTlGYjNOTlVtbHlhM1ZKTjNvNE1tSmZia0oyUjNoQkNoX1NQaHdLR2xKRVFVOW1PRlExTURaUVZGcFVWRmxDWm01RVRVNURiR0ZSQ2hfU1Bod0tHbEpFUVU5UllqSlhRWGxLYTBwMlRURmhaMGRYZEhkRkxVOUJDaF9TUGh3S0dsSkVRVTlNWDFGNk1scFJRbUZNUkROTFExTnFWalpYZG5wM0NoX1NQaHdLR2xKRVFVOXpjeTFGWVdSRFpHZzBUVmxYV0hsMGFtWkpabFYzQ2hfU1Bod0tHbEpFUVU4MVRraFVXblJGV0ROSGJIWlhRMjgyYTJOdGFrdDNDaF9TUGh3S0dsSkVRVTlMWDBjMVRVZzFaM0ZJUTNRd1VXdENZVlZJTjJwUkNoX1NQaHdLR2xKRVFVOVpUWEZhWlV4U1RXMXhaRW8zZGs5b09UQXRhME5CQ2hfU1Bod0tHbEpFUVU4eVNGbEJhMFpIYzBGSmFWVmthRE5NVUhGRE5UZG5FaFVBQWdRR0NBb01EaEFTRkJZWUdod2VJQ0lrSmlnYUJBZ0FFQUVhQkFnQ0VBTWFCQWdFRUFVYUJBZ0dFQWNhQkFnSUVBa2FCQWdLRUFzYUJBZ01FQTBhQkFnT0VBOGFCQWdRRUJFYUJBZ1NFQk1hQkFnVUVCVWFCQWdXRUJjYUJBZ1lFQmthQkFnYUVCc2FCQWdjRUIwYUJBZ2VFQjhhQkFnZ0VDRWFCQWdpRUNNYUJBZ2tFQ1VhQkFnbUVDY2FCQWdvRUNrYUJBZ29FQ29hQkFnb0VDc2FCQWdvRUN3YUJBZ29FQzBhQkFnb0VDNGFCQWdvRUM4YUJBZ29FREFhQkFnb0VERWFCQWdvRURJYUJBZ29FRE1hQkFnb0VEUWFCQWdvRURVYUJBZ29FRFlhQkFnb0VEY3FGUUFDQkFZSUNnd09FQklVRmhnYUhCNGdJaVFtS0FqD3dhdGNoLW5leHQtZmVlZA%3D%3D"),
endpoint: browse,
endpoint: next,
),
top_comments: Paginator(
count: Some(705000),
items: [],
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyJSIRIgtaZWVycm51TGk1RTAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: Some(705000),
items: [],
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyOCIRIgtaZWVycm51TGk1RTABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
endpoint: browse,
endpoint: next,
),
)

View file

@ -525,7 +525,7 @@ VideoDetails(
recommended: Paginator(
count: None,
items: [
RecommendedVideo(
VideoItem(
id: "t03rmc-prJo",
title: "This PC took 600 HOURS to Build!",
length: Some(1505),
@ -541,7 +541,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -553,14 +553,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 month ago"),
view_count: 3449572,
view_count: Some(3449572),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "4ozYlgOuYis",
title: "They told me I was stupid - heating my pool with computers",
length: Some(691),
@ -576,7 +578,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -588,14 +590,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 months ago"),
view_count: 3209930,
view_count: Some(3209930),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "THxkY59_xko",
title: "Is the fastest GPU ALWAYS the best?",
length: Some(979),
@ -611,7 +615,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -623,14 +627,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 hours ago"),
view_count: 640179,
view_count: Some(640179),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "UJ-KZzVUV7U",
title: "This toaster cost HOW MUCH?? - Revolution InstaGLO R270 Toaster",
length: Some(880),
@ -646,7 +652,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCdBK94H6oZT2Q7l0-b0xmMg",
name: "ShortCircuit",
avatar: [
@ -658,14 +664,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 month ago"),
view_count: 905709,
view_count: Some(905709),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "yayAQAC1XiE",
title: "Intel PLEASE let me Overclock this!",
length: Some(799),
@ -681,7 +689,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -693,14 +701,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("7 days ago"),
view_count: 998245,
view_count: Some(998245),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "y4T374GtKLI",
title: "When The Grid Goes Down: How To Power Essential Devices (i.e., Refrigerator)",
length: Some(1239),
@ -716,7 +726,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCmb2QRAjdnkse21CtxAQ-cA",
name: "City Prepping",
avatar: [
@ -728,14 +738,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 weeks ago"),
view_count: 132460,
view_count: Some(132460),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "b3x28s61q3c",
title: "The most EXPENSIVE thing I own.",
length: Some(887),
@ -751,7 +763,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -763,14 +775,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 month ago"),
view_count: 2372992,
view_count: Some(2372992),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "LQ95XJAwaoc",
title: "My favorite car (sucks) - Lucid Air GT",
length: Some(1162),
@ -786,7 +800,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCdBK94H6oZT2Q7l0-b0xmMg",
name: "ShortCircuit",
avatar: [
@ -798,14 +812,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 weeks ago"),
view_count: 565416,
view_count: Some(565416),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "WVjtK71qqXU",
title: "I bought a SECOND GPU… but NOT for gaming…",
length: Some(754),
@ -821,7 +837,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -833,14 +849,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 day ago"),
view_count: 1199845,
view_count: Some(1199845),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "vtvFVH9JdNI",
title: "I bought every Nintendo Console EVER.",
length: Some(1381),
@ -856,7 +874,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCMiJRAwDNSNzuYeN2uWa0pA",
name: "Mrwhosetheboss",
avatar: [
@ -868,14 +886,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 days ago"),
view_count: 1379793,
view_count: Some(1379793),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "J6Ga4wciA2k",
title: "THIS Wish.com Gaming PC is WORSE!",
length: Some(1545),
@ -891,7 +911,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -903,14 +923,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 months ago"),
view_count: 2775764,
view_count: Some(2775764),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CsoKWsZ-Tyw",
title: "The Personal Gaming Theater - HOLY $H!T Samsung Odyssey Ark",
length: Some(1182),
@ -926,7 +948,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -938,14 +960,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 month ago"),
view_count: 2449262,
view_count: Some(2449262),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "9T98VsMe3oo",
title: "How are we going to do this?",
length: Some(1124),
@ -961,7 +985,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -973,14 +997,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 4321218,
view_count: Some(4321218),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "5Hxr9k5Vdc4",
title: "Building the $1,000,000 Computer",
length: Some(1659),
@ -996,7 +1022,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -1008,14 +1034,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 months ago"),
view_count: 3270062,
view_count: Some(3270062),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "12Hcbx33Rb4",
title: "BREAKING NEWS! - EVGA will no longer do business with NVIDIA",
length: Some(1262),
@ -1031,7 +1059,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCkWQ0gDrqOCarmUKmppD7GQ",
name: "JayzTwoCents",
avatar: [
@ -1043,14 +1071,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 weeks ago"),
view_count: 1274410,
view_count: Some(1274410),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "EHkkwCjQzsc",
title: "Prepper (2016) | Full Post-Apocalyptic Thriller Movie HD",
length: Some(5982),
@ -1066,7 +1096,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCRX7UEyE8kp35mPrgC2sosA",
name: "JoBlo Movies",
avatar: [
@ -1078,14 +1108,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 months ago"),
view_count: 209854,
view_count: Some(209854),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "AOdp09SYhCc",
title: "This Is So Embarrassing! - Building a PC with My Sister",
length: Some(1063),
@ -1101,7 +1133,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -1113,14 +1145,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 weeks ago"),
view_count: 2453269,
view_count: Some(2453269),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CTIpNtHWVtQ",
title: "Why Pay $1000 for a 25 year old PC! - NIXSYS Windows 98 PC",
length: Some(1112),
@ -1136,7 +1170,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -1148,14 +1182,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 month ago"),
view_count: 1478434,
view_count: Some(1478434),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "3RIp7CwkBeA",
title: "I Hope You Have a LOT of Money... RTX 4000 Announced",
length: Some(569),
@ -1171,7 +1207,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -1183,14 +1219,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 weeks ago"),
view_count: 1816036,
view_count: Some(1816036),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "HZiaHEmE9PQ",
title: "Buying a Chromebook was a BIG MISTAKE",
length: Some(880),
@ -1206,7 +1244,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -1218,27 +1256,29 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("9 days ago"),
view_count: 1625226,
view_count: Some(1625226),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
],
ctoken: Some("CBQSExILbkZEQnhCVWZFNzTAAQHIAQEYACqIBjJzNkw2d3lfQkFxOEJBb0Q4ajRBQ2c3Q1Bnc0ltdG1tX1p6ei1xYTNBUW9EOGo0QUNnN0NQZ3NJcThTNW5lQ1N0c2JpQVFvRDhqNEFDZzNDUGdvSXlvel8tN21NbWI1TUNnUHlQZ0FLRGNJLUNnaTFyOUdxODh6aXoxQUtBX0ktQUFvT3dqNExDS0c4MVlXQWlLRFd5UUVLQV9JLUFBb093ajRMQ0xMUnRJMzRfYjNDeXdFS0FfSS1BQW9Od2o0S0NQZlcxdldzM3AyLWJ3b0Q4ajRBQ2czQ1Bnb0loOVhCZ2NtcjNvY3RDZ1B5UGdBS0RjSS1DZ2oxMHFycnU2VzdyRmtLQV9JLUFBb093ajRMQ05McHBmckhxdkh0dmdFS0FfSS1BQW9Od2o0S0NPbUdpTG13M09iUUp3b0Q4ajRBQ2czQ1Bnb0lySjc1czZ6TGd1VUtDZ1B5UGdBS0RzSS1Dd2lLdmZ1WTdJcmZuX1VCQ2dQeVBnQUtEc0ktQ3dqTzY5WHk1UDZhdnVRQkNnUHlQZ0FLRHNJLUN3aS1pOTN2OFkzM3NOY0JDZ1B5UGdBS0RjSS1DZ2pIbmNQR2dwakp2QkFLQV9JLUFBb013ajRKQ0tlSTRxUzl1dHB6Q2dQeVBnQUtEY0ktQ2dqVXJkbU83YWFLbVFrS0FfSS1BQW9Pd2o0TENPQ0xrT0hDdllxSjNRRUtBX0ktQUFvTndqNEtDUFRwazh6RXc2Yk1IUklVQUFJRUJnZ0tEQTRRRWhRV0dCb2NIaUFpSkNZYUJBZ0FFQUVhQkFnQ0VBTWFCQWdFRUFVYUJBZ0dFQWNhQkFnSUVBa2FCQWdLRUFzYUJBZ01FQTBhQkFnT0VBOGFCQWdRRUJFYUJBZ1NFQk1hQkFnVUVCVWFCQWdXRUJjYUJBZ1lFQmthQkFnYUVCc2FCQWdjRUIwYUJBZ2VFQjhhQkFnZ0VDRWFCQWdpRUNNYUJBZ2tFQ1VhQkFnbUVDY3FGQUFDQkFZSUNnd09FQklVRmhnYUhCNGdJaVFtag93YXRjaC1uZXh0LWZlZWQ%3D"),
endpoint: browse,
endpoint: next,
),
top_comments: Paginator(
count: Some(3200),
items: [],
ctoken: Some("Eg0SC25GREJ4QlVmRTc0GAYyJSIRIgtuRkRCeEJVZkU3NDAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: Some(3200),
items: [],
ctoken: Some("Eg0SC25GREJ4QlVmRTc0GAYyOCIRIgtuRkRCeEJVZkU3NDABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
endpoint: browse,
endpoint: next,
),
)

View file

@ -46,12 +46,12 @@ VideoDetails(
count: None,
items: [],
ctoken: Some("Eg0SC0hSS3UwY3Zycl9vGAYyJSIRIgtIUkt1MGN2cnJfbzABeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: None,
items: [],
ctoken: Some("Eg0SC0hSS3UwY3Zycl9vGAYyOCIRIgtIUkt1MGN2cnJfbzABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
endpoint: browse,
endpoint: next,
),
)

View file

@ -51,7 +51,7 @@ VideoDetails(
recommended: Paginator(
count: None,
items: [
RecommendedVideo(
VideoItem(
id: "-YpwsdRKt8Q",
title: "SpiegelMining Reverse Engineering von Spiegel-Online (33c3)",
length: Some(3526),
@ -67,7 +67,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -79,14 +79,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 years ago"),
view_count: 2749364,
view_count: Some(2749364),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "4z3mu63yxII",
title: "Gregor Gysi & Martin Sonneborn",
length: Some(5272),
@ -102,7 +104,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCBWSgdr27NcLig0XzWLq2gQ",
name: "MISS-VERSTEHEN SIE MICH RICHTIG",
avatar: [
@ -114,14 +116,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 2266658,
view_count: Some(2266658),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "WhgRRpA3b2c",
title: "36C3 - Verkehrswende selber hacken",
length: Some(3176),
@ -137,7 +141,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -149,14 +153,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 260941,
view_count: Some(260941),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "5qNHtdN07FM",
title: "GPN16: Wie baut man eigentlich Raumschiffe (urs)",
length: Some(5172),
@ -172,7 +178,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -184,14 +190,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 years ago"),
view_count: 1229987,
view_count: Some(1229987),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "7FeqF1-Z1g0",
title: "David Kriesel: Traue keinem Scan, den du nicht selbst gefälscht hast",
length: Some(3820),
@ -207,7 +215,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -219,14 +227,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("7 years ago"),
view_count: 6095028,
view_count: Some(6095028),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "1vcP9UWrWBI",
title: "Easterhegg 2019 - Kernreaktoren",
length: Some(7263),
@ -242,7 +252,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -254,14 +264,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 years ago"),
view_count: 46470,
view_count: Some(46470),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "jnp1veXQf7U",
title: "Blockchain - Ein außer Kontrolle geratenes Laborexperiment? #GPN19",
length: Some(3362),
@ -277,7 +289,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -289,14 +301,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 years ago"),
view_count: 25136,
view_count: Some(25136),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "77OlKRkaixo",
title: "leyrer, MacLemon: E-Mail. Hässlich, aber es funktioniert #eh16",
length: Some(6998),
@ -312,7 +326,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -324,14 +338,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 years ago"),
view_count: 44410,
view_count: Some(44410),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "u29--YNGMyg",
title: "Physikalisches Kolloquium 22. Juli 2011 - Vortrag von Prof. Dr. Harald Lesch",
length: Some(6715),
@ -347,7 +363,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCvZLsBb-8Og4FvBUom9zPHQ",
name: "Universität Bayreuth",
avatar: [
@ -359,14 +375,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("11 years ago"),
view_count: 4184357,
view_count: Some(4184357),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "urt2_ACal9A",
title: "CCC-Jahresrückblick 2016 (33c3)",
length: Some(8170),
@ -382,7 +400,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -394,14 +412,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 years ago"),
view_count: 36111,
view_count: Some(36111),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "PnBs9oH2Lx8",
title: "Easterhegg 2019 - Wie ich die Regierung gehackt habe",
length: Some(3147),
@ -417,7 +437,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -429,14 +449,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 years ago"),
view_count: 20322,
view_count: Some(20322),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "yaCiVvBD-xc",
title: "Mathias Dalheimer: Wie man einen Blackout verursacht",
length: Some(3748),
@ -452,7 +474,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -464,14 +486,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 years ago"),
view_count: 482258,
view_count: Some(482258),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "1PJnEwoFSXo",
title: "Das Geheimnis der Hieroglyphen | Doku HD | ARTE",
length: Some(5541),
@ -487,7 +511,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCLLibJTCy3sXjHLVaDimnpQ",
name: "ARTEde",
avatar: [
@ -499,14 +523,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("12 days ago"),
view_count: 427756,
view_count: Some(427756),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "iIDZ8pJKLZA",
title: "36C3 ChaosWest: Bahn API Chaos",
length: Some(3056),
@ -522,7 +548,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -534,14 +560,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 26926,
view_count: Some(26926),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "PhUQN6fd5O4",
title: "35C3 - Jahresrückblick des CCC 2018",
length: Some(8102),
@ -557,7 +585,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -569,14 +597,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 years ago"),
view_count: 126093,
view_count: Some(126093),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "bzr0c8qzQoc",
title: "GPN19 - Beton",
length: Some(3972),
@ -592,7 +622,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -604,14 +634,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 years ago"),
view_count: 13243,
view_count: Some(13243),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "IeX1F-Jjq9E",
title: "Lars “Pylon” Weiler (DC4LW): Weltraumkommunikation",
length: Some(5075),
@ -627,7 +659,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -639,14 +671,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 years ago"),
view_count: 80624,
view_count: Some(80624),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "gsnL4m57MCM",
title: "David Kriesel: SpiegelMining Reverse Engineering von Spiegel-Online",
length: Some(3526),
@ -662,7 +696,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCeO-zvUfuEdPMDoNST6hy1A",
name: "Killuminati ∆",
avatar: [
@ -674,14 +708,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 years ago"),
view_count: 29009,
view_count: Some(29009),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "uEEHq6f8RsM",
title: "Leyrer: Moderne Linux Kommandozeilenwerkzeuge - Edition \"Allein zu Haus\"",
length: Some(3716),
@ -697,7 +733,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2TXq_t06Hjdr2g_KdKpHQg",
name: "media.ccc.de",
avatar: [
@ -709,27 +745,29 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 months ago"),
view_count: 67538,
view_count: Some(67538),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
],
ctoken: Some("CBQSExILMHJiOUNmT3ZvamvAAQHIAQEYACqrBjJzNkw2d3paQkFyV0JBb0Q4ajRBQ2c3Q1Bnc0l4Ty1xb3AyV25NWDVBUW9EOGo0QUNnN0NQZ3NJZ29uTDc3clgtWjdqQVFvRDhqNEFDZzNDUGdvSTU5N2RnZW1vaEl4YUNnUHlQZ0FLSWRJLUhnb2NVa1JEVFZWRE1sUlljVjkwTURaSWFtUnlNbWRmUzJSTGNFaFJad29EOGo0QUNnN0NQZ3NJMDlqVG05MzIwZEhtQVFvRDhqNEFDZzdDUGdzSWphem5fUFhDNnF2c0FRb0Q4ajRBQ2c3Q1Bnc0lrckN0cmRULXdfdldBUW9EOGo0QUNnN0NQZ3NJdGZfQnJ0NjNuYjJPQVFvRDhqNEFDZzdDUGdzSW1wYnF5SkdsNmRudkFRb0Q4ajRBQ2c3Q1Bnc0lxT2FZbXBqZjM3ZTdBUW9EOGo0QUNnN0NQZ3NJMEtfcWhNRGYzZDI2QVFvRDhqNEFDZzNDUGdvSW45N1lqLWllbTdnLUNnUHlQZ0FLRHNJLUN3aVg5by1DNzhxbzBNa0JDZ1B5UGdBS0RzSS1Dd2o2a3BYUXNPS1otZFFCQ2dQeVBnQUtEc0ktQ3dpUTI2aVNxYjYyd0lnQkNnUHlQZ0FLRGNJLUNnanV5ZmUtLW9iRWlqNEtBX0ktQUFvTndqNEtDSWVGemRXOGpyMmRid29EOGo0QUNnM0NQZ29JMGRlT2tfNmlfZkloQ2dQeVBnQUtEc0ktQ3dpajRPenpwdnp5NUlJQkNnUHlQZ0FLRHNJLUN3akRqZkdfdXZYQm9MZ0JFaFFBQWdRR0NBb01EaEFTRkJZWUdod2VJQ0lrSmhvRUNBQVFBUm9FQ0FJUUF4b0VDQVFRQlJvRUNBWVFCeG9FQ0FnUUNSb0VDQW9RQ3hvRUNBd1FEUm9FQ0E0UUR4b0VDQkFRRVJvRUNCSVFFeG9FQ0JRUUZSb0VDQllRRnhvRUNCZ1FHUm9FQ0JvUUd4b0VDQndRSFJvRUNCNFFIeG9FQ0NBUUlSb0VDQ0lRSXhvRUNDUVFKUm9FQ0NZUUp5b1VBQUlFQmdnS0RBNFFFaFFXR0JvY0hpQWlKQ1lqD3dhdGNoLW5leHQtZmVlZA%3D%3D"),
endpoint: browse,
endpoint: next,
),
top_comments: Paginator(
count: Some(2200),
items: [],
ctoken: Some("Eg0SCzByYjlDZk92b2prGAYyJSIRIgswcmI5Q2ZPdm9qazAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: Some(2200),
items: [],
ctoken: Some("Eg0SCzByYjlDZk92b2prGAYyOCIRIgswcmI5Q2ZPdm9qazABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
endpoint: browse,
endpoint: next,
),
)

View file

@ -519,7 +519,7 @@ VideoDetails(
recommended: Paginator(
count: None,
items: [
RecommendedVideo(
VideoItem(
id: "AOdp09SYhCc",
title: "This Is So Embarrassing!",
length: Some(1063),
@ -535,7 +535,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -547,14 +547,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 days ago"),
view_count: 1862544,
view_count: Some(1862544),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CY3OQh-7wIk",
title: "The Computer I Would Actually BUY",
length: Some(6478),
@ -570,7 +572,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -582,14 +584,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("Streamed 8 days ago"),
view_count: 946996,
view_count: Some(946996),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "LQ95XJAwaoc",
title: "My favorite car (sucks)",
length: Some(1162),
@ -605,7 +609,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCdBK94H6oZT2Q7l0-b0xmMg",
name: "ShortCircuit",
avatar: [
@ -617,14 +621,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 day ago"),
view_count: 349251,
view_count: Some(349251),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "mhMQeJ5Qmp0",
title: "The Apple Newton MessagePad.",
length: Some(758),
@ -640,7 +646,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC7Jwj9fkrf1adN4fMmTkpug",
name: "DankPods",
avatar: [
@ -652,14 +658,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 day ago"),
view_count: 375458,
view_count: Some(375458),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "1ctXiZsN6ac",
title: "The Reviewer Got Reviewed - WAN Show September 9, 2022",
length: Some(10265),
@ -675,7 +683,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -687,14 +695,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("Streamed 6 days ago"),
view_count: 734463,
view_count: Some(734463),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CMR9z9Xr8GM",
title: "Storing Solar Power on my ROOF!!!",
length: Some(1028),
@ -710,7 +720,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCKd49wwdEdIoM-7Fumhwmog",
name: "Quint BUILDs",
avatar: [
@ -722,14 +732,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("11 months ago"),
view_count: 2773698,
view_count: Some(2773698),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "fT2KhJ8W-Kg",
title: "How gas pumps know when to turn themselves off",
length: Some(836),
@ -745,7 +757,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEIwxahdLz7bap-VDs9h35A",
name: "Steve Mould",
avatar: [
@ -757,14 +769,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("8 hours ago"),
view_count: 219605,
view_count: Some(219605),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "12Hcbx33Rb4",
title: "BREAKING NEWS! - EVGA will no longer do business with NVIDIA",
length: Some(1262),
@ -780,7 +794,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCkWQ0gDrqOCarmUKmppD7GQ",
name: "JayzTwoCents",
avatar: [
@ -792,14 +806,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 hours ago"),
view_count: 145345,
view_count: Some(145345),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "QW1SsqmaIuE",
title: "I Surprised My Subscriber with his Dream Gaming Setup! - Season 8",
length: Some(2177),
@ -815,7 +831,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UChIZGfcnjHI0DG4nweWEduw",
name: "TechSource",
avatar: [
@ -827,14 +843,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 hours ago"),
view_count: 50033,
view_count: Some(50033),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "JAcSNL1T3OA",
title: "Why Did I Drill 1756 Holes in This?",
length: Some(1293),
@ -850,7 +868,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVveEFTOd6khhSXXnRhxJmg",
name: "Fireball Tool",
avatar: [
@ -862,14 +880,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 month ago"),
view_count: 1163652,
view_count: Some(1163652),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "ZVtOss1U7_s",
title: "VW Beetle converted to electric in a day",
length: Some(826),
@ -885,7 +905,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCq1Oqk1I7zeYlDiJTFWLoFA",
name: "Electric Classic Cars",
avatar: [
@ -897,14 +917,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 3266169,
view_count: Some(3266169),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "2kJDTzFtUr4",
title: "How ASML, TSMC And Intel Dominate The Chip Market | CNBC Marathon",
length: Some(3399),
@ -920,7 +942,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCvJJ_dzjViJCoLf5uKUTwoA",
name: "CNBC",
avatar: [
@ -932,14 +954,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 weeks ago"),
view_count: 678935,
view_count: Some(678935),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "0rCbfsuKdYw",
title: "I bought every Playstation Ever.",
length: Some(1046),
@ -955,7 +979,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCMiJRAwDNSNzuYeN2uWa0pA",
name: "Mrwhosetheboss",
avatar: [
@ -967,14 +991,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 weeks ago"),
view_count: 7569956,
view_count: Some(7569956),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "sbdU7AkH6QM",
title: "Reviewing Free Energy Generators. A Response to My Video \"Nikola Tesla\'s Greatest Invention\"- 102",
length: Some(1387),
@ -990,7 +1016,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC_SLthyNX_ivd-dmsFgmJVg",
name: "Jeremy Fielding",
avatar: [
@ -1002,14 +1028,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 months ago"),
view_count: 3374461,
view_count: Some(3374461),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "zcchDu7KoYs",
title: "AMDs Victory Lap - HOLY $H!T Threadripper Pro 5995WX",
length: Some(872),
@ -1025,7 +1053,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -1037,14 +1065,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 days ago"),
view_count: 1322625,
view_count: Some(1322625),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "pd6DsSjqhFE",
title: "Top Gear Satisfaction Survey Compilation",
length: Some(986),
@ -1060,7 +1090,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCupQghOyPai8Hxg4RqMERvA",
name: "incT",
avatar: [
@ -1072,14 +1102,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 weeks ago"),
view_count: 255945,
view_count: Some(255945),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "2K5Gqp1cEcM",
title: "Why our Screwdriver took 3 YEARS",
length: Some(1752),
@ -1095,7 +1127,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -1107,14 +1139,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 weeks ago"),
view_count: 2930532,
view_count: Some(2930532),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "t03rmc-prJo",
title: "This PC took 600 HOURS to Build!",
length: Some(1505),
@ -1130,7 +1164,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCXuqSBlHAE6Xw-yeJA0Tunw",
name: "Linus Tech Tips",
avatar: [
@ -1142,14 +1176,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("12 days ago"),
view_count: 2743664,
view_count: Some(2743664),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "QTH9m6MDIfc",
title: "One Year Ago I Built an Ecosystem, This Happened",
length: Some(485),
@ -1165,7 +1201,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCYmna5rFHIesFteksAvFOfg",
name: "Dr. Plants",
avatar: [
@ -1177,27 +1213,29 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 weeks ago"),
view_count: 7958495,
view_count: Some(7958495),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
],
ctoken: Some("CBQSExILbkZEQnhCVWZFNzTAAQHIAQEYACqkBjJzNkw2d3pVQkFyUkJBb0Q4ajRBQ2d6Q1Bna0lwNGppcEwyNjJuTUtBX0ktQUFvTndqNEtDSW1CN18yaHlQUEdDUW9EOGo0QUNnM0NQZ29JaDlYQmdjbXIzb2N0Q2dQeVBnQUtEc0ktQ3dpZHRjTHlpWV9FaVpvQkNnUHlQZ0FLRHNJLUN3aW4wN2ZZbWZIVjVkVUJDZ1B5UGdBS0RjSS1DZ2pqNEstdl9ibWY0Z2dLQV9JLUFBb053ajRLQ0tqeDJfakowT0tlZlFvRDhqNEFDZzdDUGdzSXZvdmQ3X0dOOTdEWEFRb0Q4ajRBQ2czQ1Bnb0k0Y1hvektyVzFMWkJDZ1B5UGdBS0RjSS1DZ2pndWNfcXk4YkVneVFLQV9JLUFBb053ajRLQ1B2ZjAtcXMxdE90WlFvRDhqNEFDaUhTUGg0S0hGSkVRMDFWUTFoMWNWTkNiRWhCUlRaWWR5MTVaVXBCTUZSMWJuY0tBX0ktQUFvT3dqNExDTDZsdFl2ejZaQ2gyZ0VLQV9JLUFBb093ajRMQ0l6cnFkenM3NmJZMGdFS0FfSS1BQW9Pd2o0TENJUFNuOGpBbmRYYnNRRUtBX0ktQUFvT3dqNExDSXZEcXZidW9jamp6UUVLQV9JLUFBb093ajRMQ05HSXFzZVM5cUR2cFFFS0FfSS1BQW9Pd2o0TENNT2o4T3FwMVpIWDJBRUtBX0ktQUFvT3dqNExDSnJacHYyYzhfcW10d0VLQV9JLUFBb053ajRLQ1BmRGpKaTZzXy1ZUVJJVUFBSUVCZ2dLREE0UUVoUVdHQm9jSGlBaUpDWWFCQWdBRUFFYUJBZ0NFQU1hQkFnRUVBVWFCQWdHRUFjYUJBZ0lFQWthQkFnS0VBc2FCQWdNRUEwYUJBZ09FQThhQkFnUUVCRWFCQWdTRUJNYUJBZ1VFQlVhQkFnV0VCY2FCQWdZRUJrYUJBZ2FFQnNhQkFnY0VCMGFCQWdlRUI4YUJBZ2dFQ0VhQkFnaUVDTWFCQWdrRUNVYUJBZ21FQ2NxRkFBQ0JBWUlDZ3dPRUJJVUZoZ2FIQjRnSWlRbWoPd2F0Y2gtbmV4dC1mZWVk"),
endpoint: browse,
endpoint: next,
),
top_comments: Paginator(
count: Some(2900),
items: [],
ctoken: Some("Eg0SC25GREJ4QlVmRTc0GAYyJSIRIgtuRkRCeEJVZkU3NDAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: Some(2900),
items: [],
ctoken: Some("Eg0SC25GREJ4QlVmRTc0GAYyOCIRIgtuRkRCeEJVZkU3NDABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
endpoint: browse,
endpoint: next,
),
)

View file

@ -73,7 +73,7 @@ VideoDetails(
recommended: Paginator(
count: None,
items: [
RecommendedVideo(
VideoItem(
id: "SGP6Y0Pnhe4",
title: "HOW IT WORKS: The International Space Station",
length: Some(1738),
@ -89,7 +89,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC_sXrcURB-Dh4az_FveeQ0Q",
name: "DOCUMENTARY TUBE",
avatar: [
@ -101,14 +101,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("7 years ago"),
view_count: 90280310,
view_count: Some(90280310),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "ddZu_1Z3BAc",
title: "NASA LIVE Stream From The ISS - Live Earth & Space Station Views & Audio",
length: None,
@ -124,7 +126,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCakgsb0w7QB0VHdnCc-OVEA",
name: "Space Videos",
avatar: [
@ -136,14 +138,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: None,
view_count: 80,
view_count: Some(80),
is_live: true,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "oDXBMjg9HKU",
title: "APOD: 2022-09-20 - Star Forming Region NGC 3582 without Stars (Narrated by Amy)",
length: Some(124),
@ -159,7 +163,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCZepiiyNNbD2XL5sWnJBC_A",
name: "Videotizer",
avatar: [
@ -171,14 +175,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("10 hours ago"),
view_count: 13,
view_count: Some(13),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "aU0vNvVHXa8",
title: "🌎 LIVE ASTEROID Watch Tracking",
length: None,
@ -194,7 +200,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCNrGOnduIS9BXIRmDcHasZA",
name: "WorldCam",
avatar: [
@ -206,14 +212,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: None,
view_count: 23,
view_count: Some(23),
is_live: true,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "6scCF_8YN70",
title: "Dramatic footage of the tsunami that hit Japan",
length: Some(133),
@ -229,7 +237,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCelk6aHijZq-GJBBB9YpReA",
name: "BBC News عربي",
avatar: [
@ -241,14 +249,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("11 years ago"),
view_count: 118635723,
view_count: Some(118635723),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "n4IhCSMkADc",
title: "EARTH FROM SPACE: Like You\'ve Never Seen Before",
length: Some(766),
@ -264,7 +274,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC_sXrcURB-Dh4az_FveeQ0Q",
name: "DOCUMENTARY TUBE",
avatar: [
@ -276,14 +286,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("7 years ago"),
view_count: 11226061,
view_count: Some(11226061),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "bgbH4FAmAA0",
title: "Winter Cab View from two of the most SCENIC RAILWAYS in the WORLD",
length: None,
@ -299,7 +311,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCj-Xm8j6WBgKY8OG7s9r2vQ",
name: "RailCowGirl",
avatar: [
@ -311,14 +323,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: None,
view_count: 108,
view_count: Some(108),
is_live: true,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "uD4izuDMUQA",
title: "TIMELAPSE OF THE FUTURE: A Journey to the End of Time (4K)",
length: Some(1761),
@ -334,7 +348,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCR9sFzaG9Ia_kXJhfxtFMBA",
name: "melodysheep",
avatar: [
@ -346,14 +360,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 years ago"),
view_count: 85240979,
view_count: Some(85240979),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Z6DpPQ8QdLg",
title: "Earthrise - Planet Earth Seen From The Moon - Real Time Journey Across The Lunar Surface",
length: Some(241),
@ -369,7 +385,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCakgsb0w7QB0VHdnCc-OVEA",
name: "Space Videos",
avatar: [
@ -381,14 +397,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 years ago"),
view_count: 5405668,
view_count: Some(5405668),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "1hNF3Wuw0LI",
title: "New York City Walk 24/7 Chat Stream",
length: None,
@ -404,7 +422,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCRI_rCIV69l-PmT3oyD64kw",
name: "Afraz Explores",
avatar: [
@ -416,14 +434,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: None,
view_count: 10,
view_count: Some(10),
is_live: true,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "ZEyAs3NWH4A",
title: "New: Mars In 4K",
length: Some(609),
@ -439,7 +459,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCZvxw99l3xDC6BIHb8nJKGg",
name: "ElderFox Documentaries",
avatar: [
@ -451,14 +471,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 61247221,
view_count: Some(61247221),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "NF4LQaWJRDg",
title: "Hiroshima: Dropping the Bomb",
length: Some(276),
@ -474,7 +496,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC2ccm1GajfSujz7T18d7cKA",
name: "BBC Studios",
avatar: [
@ -486,14 +508,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("15 years ago"),
view_count: 36276575,
view_count: Some(36276575),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "qhOe_PxiNo8",
title: "Imagens, Talvez Inéditas do Tsunami no Japão",
length: Some(1202),
@ -509,7 +533,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCyrM5blUZAQoX9UvObdjtig",
name: "Valdemar Gomes",
avatar: [
@ -521,14 +545,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 years ago"),
view_count: 12004917,
view_count: Some(12004917),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "zf3bDpdhUNc",
title: "Astronauts accidentally lose a shield in space (GoPro 8K)",
length: Some(566),
@ -544,7 +570,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCgP30k64HHZ0OY1QkEgS6Pw",
name: "Waa Sop",
avatar: [
@ -556,14 +582,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 22901662,
view_count: Some(22901662),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "mJxsj51d-Pk",
title: "Record breaking space jump - free fall faster than speed of sound - Red Bull Stratos.",
length: Some(503),
@ -579,7 +607,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCBuDzfvztEJvNll_w1E9xFw",
name: "The Random Theorizer",
avatar: [
@ -591,14 +619,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 years ago"),
view_count: 42814880,
view_count: Some(42814880),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "fr_hXLDLc38",
title: "Horizons mission - Soyuz: launch to orbit",
length: Some(607),
@ -614,7 +644,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCIBaDdAbGlFDeS33shmlD0A",
name: "European Space Agency, ESA",
avatar: [
@ -626,14 +656,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 years ago"),
view_count: 9592134,
view_count: Some(9592134),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Jh-qzwdiAGY",
title: "The Earth 4K - Incredible 4K / UHD Video of Earth From Space",
length: Some(3594),
@ -649,7 +681,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCakgsb0w7QB0VHdnCc-OVEA",
name: "Space Videos",
avatar: [
@ -661,14 +693,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 years ago"),
view_count: 4463605,
view_count: Some(4463605),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "EPyl1LgNtoQ",
title: "The View from Space - Earth\'s Countries and Coastlines",
length: Some(227),
@ -684,7 +718,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC1znqKFL3jeR0eoA0pHpzvw",
name: "SpaceRip",
avatar: [
@ -696,14 +730,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("10 years ago"),
view_count: 14094460,
view_count: Some(14094460),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "7KXGZAEWzn0",
title: "ORBIT - Journey Around Earth in Real Time // 4K Remastered",
length: Some(5560),
@ -719,7 +755,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC28l88GMXXqZYfY0Ru9h50w",
name: "Seán Doran",
avatar: [
@ -731,14 +767,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 9901163,
view_count: Some(9901163),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "KTUa9rG08go",
title: "NASA Artemis I Mon Rocket Testing and Inspection LIVE From Launch Complex 39B",
length: None,
@ -754,7 +792,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCDyeuRnxf_hxEyH1B7aoDQQ",
name: "thebhp",
avatar: [
@ -766,27 +804,29 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: None,
view_count: 15,
view_count: Some(15),
is_live: true,
is_short: false,
is_upcoming: false,
short_description: None,
),
],
ctoken: Some("CBQSExILODZZTEZPb2c0R03AAQHIAQEYACrgBzJzNkw2d3poQlFyZUJRb0Q4ajRBQ2czQ1Bnb0k3b3VlbjdUTV9yRklDZ1B5UGdBS0RjSS1DZ2lIaU55ejlkLWI2M1VLQV9JLUFBb093ajRMQ0tXNTlNR2pwdkNhb0FFS0FfSS1BQW9Od2o0S0NLLTduYXJ2NXN1bWFRb0Q4ajRBQ2c3Q1Bnc0l2ZV9nLVBfQ3dPUHFBUW9EOGo0QUNnN0NQZ3NJdDRDUW1aS2hpTUdmQVFvRDhqNEFDZzNDUGdvSWpZQ1lnWVg4c1lOdUNnUHlQZ0FLRHNJLUN3aUFvckdHN3RtSW43Z0JDZ1B5UGdBS0RjSS1DZ2k0NmNINDBLZTYwR2NLQV9JLUFBb093ajRMQ0xLaHc5M1d1OUdKMWdFS0FfSS1BQW9Od2o0S0NJQ18ySnEzbHFDbVpBb0Q4ajRBQ2czQ1Bnb0l1SWlsckpyb2dxODBDZ1B5UGdBS0RzSS1Dd2lQN1lqano5X25pYW9CQ2dQeVBnQUtEc0ktQ3dqWG9ZVzc2ZUgyX3MwQkNnUHlQZ0FLRHNJLUN3ajU4ZmZxLVpHYnpwZ0JDZ1B5UGdBS0RjSS1DZ2pfNXEyR3k2djQzMzRLQV9JLUFBb053ajRLQ09hQWlMdncyZXFQSmdvRDhqNEFDZzNDUGdvSWhPMjJ3TXU2cWY0UUNnUHlQZ0FLRHNJLUN3ajluTnVJd016eDB1d0JDZ1B5UGdBS0RjSS1DZ2lLNU5PTjY5N0dtaWtLQV9JLUFBb2FtajhYQ2hWUGZEazRNek0xTXpjMU5ERTJOVGMzT0RnMk1UY0tHNW9fR0FvV1Qzd3hNekF5TXpnek9UY3hPREk0TXpVMU9EUTFNd29ibWo4WUNoWlBmREUxT0RVek5Ua3dPRGczTURVeE1qVTBOemcwQ2dQeVBnQUtBX0ktQUJJWEFBSUVCZ2dLREE0UUVoUVdHQm9jSGlBaUpDWW9MQzBhQkFnQUVBRWFCQWdDRUFNYUJBZ0VFQVVhQkFnR0VBY2FCQWdJRUFrYUJBZ0tFQXNhQkFnTUVBMGFCQWdPRUE4YUJBZ1FFQkVhQkFnU0VCTWFCQWdVRUJVYUJBZ1dFQmNhQkFnWUVCa2FCQWdhRUJzYUJBZ2NFQjBhQkFnZUVCOGFCQWdnRUNFYUJBZ2lFQ01hQkFna0VDVWFCQWdtRUNjYUJBZ29FQ2thQkFnb0VDb2FCQWdvRUNzYUJBZ3NFQ2thQkFnc0VDb2FCQWdzRUNzYUJBZ3RFQ2thQkFndEVDb2FCQWd0RUNzcUZ3QUNCQVlJQ2d3T0VCSVVGaGdhSEI0Z0lpUW1LQ3d0ag93YXRjaC1uZXh0LWZlZWQ%3D"),
endpoint: browse,
endpoint: next,
),
top_comments: Paginator(
count: Some(0),
items: [],
ctoken: None,
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: Some(0),
items: [],
ctoken: None,
endpoint: browse,
endpoint: next,
),
)

View file

@ -41,7 +41,7 @@ VideoDetails(
recommended: Paginator(
count: None,
items: [
RecommendedVideo(
VideoItem(
id: "XtV_HGppS6A",
title: "Vergiss mein nicht",
length: Some(263),
@ -57,7 +57,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -69,14 +69,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 30966,
view_count: Some(30966),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "BcqM8Qshx7U",
title: "Kuliko Jana - Eine neue Zeit",
length: Some(210),
@ -92,7 +94,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -104,14 +106,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 15269,
view_count: Some(15269),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "IUFUIgZOcow",
title: "Silmaril - Schöner als die Sterne",
length: Some(205),
@ -127,7 +131,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -139,14 +143,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 29035,
view_count: Some(29035),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "UtP9J88Jzg0",
title: "Ruinen im Sand",
length: Some(195),
@ -162,7 +168,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -174,14 +180,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 46009,
view_count: Some(46009),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "sg6j-zfUF_A",
title: "Eldamar",
length: Some(223),
@ -197,7 +205,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -209,14 +217,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 7405,
view_count: Some(7405),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "u2XCC1rKxV0",
title: "Faolan",
length: Some(256),
@ -232,7 +242,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -244,14 +254,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 19383,
view_count: Some(19383),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "oOBBBl3fywU",
title: "Aeria - Vom Wind",
length: Some(260),
@ -267,7 +279,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -279,14 +291,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 years ago"),
view_count: 132472,
view_count: Some(132472),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "pI0Rancanz0",
title: "Vergiss mein nicht",
length: Some(263),
@ -302,7 +316,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -314,14 +328,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 years ago"),
view_count: 367684,
view_count: Some(367684),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "DsviLYh1CB0",
title: "Eldamar",
length: Some(222),
@ -337,7 +353,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -349,14 +365,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 years ago"),
view_count: 195958,
view_count: Some(195958),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Ctpe9kafn78",
title: "So still mein Herz",
length: Some(259),
@ -372,7 +390,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -384,14 +402,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 37702,
view_count: Some(37702),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "y252630WbIk",
title: "Oonagh und Santiano: Vergiss mein nicht (mit lyrics)",
length: Some(260),
@ -407,7 +427,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC8mcGChRS6Zm7pCSYbHeoVw",
name: "princessZelda",
avatar: [
@ -419,14 +439,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("8 years ago"),
view_count: 103494,
view_count: Some(103494),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "YgUZtELr_jw",
title: "Aulë und Yavanna",
length: Some(216),
@ -442,7 +464,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -454,14 +476,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 19342,
view_count: Some(19342),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "ABKSs0aU4C0",
title: "Gäa (Akustik Version)",
length: Some(235),
@ -477,7 +501,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -489,14 +513,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 9392,
view_count: Some(9392),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "O0I3rJsHikA",
title: "Orome (A-Class Remix)",
length: Some(199),
@ -512,7 +538,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCVGvnqB-5znqPSbMGlhF4Pw",
name: "Sentamusic",
avatar: [
@ -524,27 +550,29 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 22994,
view_count: Some(22994),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
],
ctoken: Some("CBQSExILWHVNMm9uTUd2VEnAAQHIAQEYACqsBzJzNkw2d3k2QlFxM0JRb0Q4ajRBQ2czQ1Bnb0lvSmVsMDhiajMtcGVDZ1B5UGdBS0o5SS1KQW9pVUV4aGFGSktXRWczV0ZCSWJWZE9TemMwVm5wM1NVWXljWFZYY1dSR1NWZDJjZ29EOGo0QUNpZlNQaVFLSWxCTU5pMTRZV3hIWVZaRmRYQjJlVGxHUVVoZlJYZ3pTRlYxWHpGaFVrRXlialFLQV9JLUFBb1MwajRQQ2cxU1JGaDFUVEp2YmsxSGRsUkpDZ1B5UGdBS0RjSS1DZ2kxajRmWmtKNmo1UVVLQV9JLUFBb053ajRLQ0l6bHViS2doTldnSVFvRDhqNEFDZzNDUGdvSWpaeW4tUHlrXy1sU0NnUHlQZ0FLRHNJLUN3andyOUMtc18tb2g3SUJDZ1B5UGdBS0o5SS1KQW9pVUV3d1dqSlNSVFZsY1dGWlRWRXhiRnBaZGtWalRrOW1UVmx3VFVvelkyTktRd29EOGo0QUNnN0NQZ3NJM1lxcjFyWEI4TEs3QVFvRDhqNEFDZzdDUGdzSWhaYl83dVdna1BDZ0FRb0Q4ajRBQ2c3Q1Bnc0l2YjdxdUtldHhNYWtBUW9EOGo0QUNnM0NQZ29JblpEVXc5akYtT1VPQ2dQeVBnQUtIOUktSEFvYVVrUkZUV1E0VUZwSmRqbERVSE4yZGtWRVltOWZjRlZFTkhjS0FfSS1BQW9Od2o0S0NMLV9fclRrM3BmdENnb0Q4ajRBQ2c3Q1Bnc0lpZG5aNkxmZG5iZkxBUW9EOGo0QUNnM0NQZ29JdlB5dmw4UzJ4b0ppQ2dQeVBnQUtETUktQ1FpdHdOTzB0TmFrQ1FvRDhqNEFDaWZTUGlRS0lsQk1NazR6TjFoVWQxaG5jRlZpYWxSemNXVjFNbEZFZVRCTGIyRnpkMDlZTVZvS0FfSS1BQW9Od2o0S0NNQ1VudGpKOVkyaE94SVVBQUlFQmdnS0RBNFFFaFFXR0JvY0hpQWlKQ1lhQkFnQUVBRWFCQWdDRUFNYUJBZ0VFQVVhQkFnR0VBY2FCQWdJRUFrYUJBZ0tFQXNhQkFnTUVBMGFCQWdPRUE4YUJBZ1FFQkVhQkFnU0VCTWFCQWdVRUJVYUJBZ1dFQmNhQkFnWUVCa2FCQWdhRUJzYUJBZ2NFQjBhQkFnZUVCOGFCQWdnRUNFYUJBZ2lFQ01hQkFna0VDVWFCQWdtRUNjcUZBQUNCQVlJQ2d3T0VCSVVGaGdhSEI0Z0lpUW1qD3dhdGNoLW5leHQtZmVlZA%3D%3D"),
endpoint: browse,
endpoint: next,
),
top_comments: Paginator(
count: Some(0),
items: [],
ctoken: None,
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: Some(0),
items: [],
ctoken: None,
endpoint: browse,
endpoint: next,
),
)

View file

@ -104,7 +104,7 @@ VideoDetails(
recommended: Paginator(
count: None,
items: [
RecommendedVideo(
VideoItem(
id: "4TWR90KJl84",
title: "aespa 에스파 \'Next Level\' MV",
length: Some(236),
@ -120,7 +120,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -132,14 +132,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 245412217,
view_count: Some(245412217),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "WPdWvnAAurg",
title: "aespa 에스파 \'Savage\' MV",
length: Some(259),
@ -155,7 +157,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -167,14 +169,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("11 months ago"),
view_count: 215292736,
view_count: Some(215292736),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "NoYKBAajoyo",
title: "EVERGLOW (에버글로우) - DUN DUN MV",
length: Some(209),
@ -190,7 +194,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC_pwIXKXNm5KGhdEVzmY60A",
name: "Stone Music Entertainment",
avatar: [
@ -202,14 +206,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 264670229,
view_count: Some(264670229),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "KhTeiaCezwM",
title: "[MV] MAMAMOO (마마무) - HIP",
length: Some(211),
@ -225,7 +231,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCuhAUMLzJxlP1W7mEk0_6lA",
name: "MAMAMOO",
avatar: [
@ -237,14 +243,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 354281319,
view_count: Some(354281319),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Jh4QFaPmdss",
title: "(G)I-DLE - \'TOMBOY\' Official Music Video",
length: Some(198),
@ -260,7 +268,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCritGVo7pLJLUS8wEu32vow",
name: "(G)I-DLE (여자)아이들 (Official YouTube Channel)",
avatar: [
@ -272,14 +280,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 months ago"),
view_count: 167648677,
view_count: Some(167648677),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "CM4CkVFmTds",
title: "TWICE \"I CAN\'T STOP ME\" M/V",
length: Some(221),
@ -295,7 +305,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -307,14 +317,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 455437333,
view_count: Some(455437333),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "uR8Mrt1IpXg",
title: "Red Velvet 레드벨벳 \'Psycho\' MV",
length: Some(216),
@ -330,7 +342,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -342,14 +354,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 344730852,
view_count: Some(344730852),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "QslJYDX3o8s",
title: "Red Velvet 레드벨벳 \'러시안 룰렛 (Russian Roulette)\' MV",
length: Some(212),
@ -365,7 +379,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -377,14 +391,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 years ago"),
view_count: 238321583,
view_count: Some(238321583),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "EaswWiwMVs8",
title: "Stray Kids \"소리꾼(Thunderous)\" M/V",
length: Some(199),
@ -400,7 +416,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -412,14 +428,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 240527435,
view_count: Some(240527435),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "pNfTK39k55U",
title: "ITZY \"달라달라(DALLA DALLA)\" M/V @ITZY",
length: Some(227),
@ -435,7 +453,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCaO6TYtlC8U5ttz62hTrZgg",
name: "JYP Entertainment",
avatar: [
@ -447,14 +465,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("3 years ago"),
view_count: 306144594,
view_count: Some(306144594),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "dYRITmpFbJ4",
title: "aespa 에스파 \'Girls\' MV",
length: Some(269),
@ -470,7 +490,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -482,14 +502,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 months ago"),
view_count: 100128895,
view_count: Some(100128895),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "ioNng23DkIM",
title: "BLACKPINK - \'How You Like That\' M/V",
length: Some(184),
@ -505,7 +527,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -517,14 +539,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 1146631077,
view_count: Some(1146631077),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Ujb-gvqsoi0",
title: "Red Velvet - IRENE & SEULGI \'Monster\' MV",
length: Some(182),
@ -540,7 +564,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -552,14 +576,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 years ago"),
view_count: 126406160,
view_count: Some(126406160),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "bwmSjveL3Lc",
title: "BLACKPINK - \'붐바야 (BOOMBAYAH)\' M/V",
length: Some(244),
@ -575,7 +601,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCOmHUn--16B90oW2L6FRR3A",
name: "BLACKPINK",
avatar: [
@ -587,14 +613,16 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("6 years ago"),
view_count: 1476093662,
view_count: Some(1476093662),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "6uJf2IT2Zh8",
title: "Red Velvet 레드벨벳 \'피카부 (Peek-A-Boo)\' MV",
length: Some(230),
@ -610,7 +638,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCEf_Bc-KVd7onSeifS3py9g",
name: "SMTOWN",
avatar: [
@ -622,14 +650,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("4 years ago"),
view_count: 228968545,
view_count: Some(228968545),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "Y8JFxS1HlDo",
title: "IVE 아이브 \'LOVE DIVE\' MV",
length: Some(179),
@ -645,7 +675,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCYDmx2Sfpnaxg488yBpZIGg",
name: "starshipTV",
avatar: [
@ -657,14 +687,16 @@ VideoDetails(
],
verification: verified,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("5 months ago"),
view_count: 152292435,
view_count: Some(152292435),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "2FzSv66c7TQ",
title: "A E S P A (에스파) ALL SONGS PLAYLIST 2022 | 에스파 노래 모음",
length: Some(3441),
@ -680,7 +712,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UCK8S6QMrTk1G8TYQwIyDo-w",
name: "𝙇𝙌 𝙆𝙋𝙊𝙋",
avatar: [
@ -692,14 +724,16 @@ VideoDetails(
],
verification: none,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("2 months ago"),
view_count: 504562,
view_count: Some(504562),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
RecommendedVideo(
VideoItem(
id: "NU611fxGyPU",
title: "aespa 에스파 \'Black Mamba\' Dance Practice",
length: Some(175),
@ -715,7 +749,7 @@ VideoDetails(
height: 188,
),
],
channel: ChannelTag(
channel: Some(ChannelTag(
id: "UC9GtSLeksfK4yuJ_g1lgQbg",
name: "aespa",
avatar: [
@ -727,27 +761,29 @@ VideoDetails(
],
verification: artist,
subscriber_count: None,
),
)),
publish_date: "[date]",
publish_date_txt: Some("1 year ago"),
view_count: 34445393,
view_count: Some(34445393),
is_live: false,
is_short: false,
is_upcoming: false,
short_description: None,
),
],
ctoken: Some("CBQSExILWmVlcnJudUxpNUXAAQHIAQEYACq7BjJzNkw2d3psQkFyaUJBb0Q4ajRBQ2c3Q1Bnc0l6cS1tbFBTLTVKcmhBUW9EOGo0QUNoTFNQZzhLRFZKRVdtVmxjbkp1ZFV4cE5VVUtBX0ktQUFvdzBqNHRDaXRTUkVOTVFVczFkWGxmYXpJM2RYVXRSWFJSWDJJMVZUSnlNalpFVGtSYVQyMU9jVWRrWTJOVlNVZFJDZ1B5UGdBS0RjSS1DZ2k0OVlLQTU5ZlYtMWdLQV9JLUFBb053ajRLQ0tyR2pyWEF3SUxETmdvRDhqNEFDZzNDUGdvSWc1NzdoSnJSdDRvcUNnUHlQZ0FLRGNJLUNnakw3Wm1mMm9LRWp5WUtBX0ktQUFvTndqNEtDTnVibVl1VjBvRG5DQW9EOGo0QUNnN0NQZ3NJLU1xaTZ1MlZ3NC01QVFvRDhqNEFDZzNDUGdvSXk4ZmVyNE9zMHVSQ0NnUHlQZ0FLRGNJLUNnalByYkhnb292TTFSRUtBX0ktQUFvT3dqNExDSlhQa191MzVmVHJwQUVLQV9JLUFBb053ajRLQ0o3WmxkTG1pWkxDZFFvRDhqNEFDZzdDUGdzSWc2R083cmJ3MmNHS0FRb0Q4ajRBQ2czQ1Bnb0lyY1N5MWFfUXY1dFNDZ1B5UGdBS0RjSS1DZ2kzdWEtODc5SGtoRzhLQV9JLUFBb093ajRMQ0pfTTJhZUktNWZ4NmdFS0FfSS1BQW9Od2o0S0NMcW9udXJTdUpIaFl3b0Q4ajRBQ2c3Q1Bnc0l0TnJ6OVByWHRLN1lBUW9EOGo0QUNnM0NQZ29JOVpHYjR0LTZyYWMxRWhRQUFnUUdDQW9NRGhBU0ZCWVlHaHdlSUNJa0pob0VDQUFRQVJvRUNBSVFBeG9FQ0FRUUJSb0VDQVlRQnhvRUNBZ1FDUm9FQ0FvUUN4b0VDQXdRRFJvRUNBNFFEeG9FQ0JBUUVSb0VDQklRRXhvRUNCUVFGUm9FQ0JZUUZ4b0VDQmdRR1JvRUNCb1FHeG9FQ0J3UUhSb0VDQjRRSHhvRUNDQVFJUm9FQ0NJUUl4b0VDQ1FRSlJvRUNDWVFKeW9VQUFJRUJnZ0tEQTRRRWhRV0dCb2NIaUFpSkNZag93YXRjaC1uZXh0LWZlZWQ%3D"),
endpoint: browse,
endpoint: next,
),
top_comments: Paginator(
count: Some(705000),
items: [],
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyJSIRIgtaZWVycm51TGk1RTAAeAJCEGNvbW1lbnRzLXNlY3Rpb24%3D"),
endpoint: browse,
endpoint: next,
),
latest_comments: Paginator(
count: Some(705000),
items: [],
ctoken: Some("Eg0SC1plZXJybnVMaTVFGAYyOCIRIgtaZWVycm51TGk1RTABeAIwAUIhZW5nYWdlbWVudC1wYW5lbC1jb21tZW50cy1zZWN0aW9u"),
endpoint: browse,
endpoint: next,
),
)

View file

@ -2,7 +2,7 @@ use serde::Serialize;
use crate::{
error::{Error, ExtractionError},
model::{ChannelTag, Chapter, Comment, Paginator, RecommendedVideo, VideoDetails},
model::{ChannelTag, Chapter, Comment, Paginator, VideoDetails, VideoItem},
param::Language,
serializer::MapResult,
timeago,
@ -10,7 +10,7 @@ use crate::{
};
use super::{
response::{self, IconType, TryFromWLang},
response::{self, IconType},
ClientType, MapResponse, QContinuation, RustyPipeQuery, YTContext,
};
@ -45,26 +45,6 @@ impl RustyPipeQuery {
.await
}
pub async fn video_recommendations(
self,
ctoken: &str,
) -> Result<Paginator<RecommendedVideo>, Error> {
let context = self.get_context(ClientType::Desktop, true).await;
let request_body = QContinuation {
context,
continuation: ctoken,
};
self.execute_request::<response::VideoRecommendations, _, _>(
ClientType::Desktop,
"video_recommendations",
ctoken,
"next",
&request_body,
)
.await
}
pub async fn video_comments(self, ctoken: &str) -> Result<Paginator<Comment>, Error> {
let context = self.get_context(ClientType::Desktop, true).await;
let request_body = QContinuation {
@ -329,32 +309,24 @@ impl MapResponse<VideoDetails> for response::VideoDetails {
is_ccommons,
chapters,
recommended,
top_comments: Paginator::new(comment_count, Vec::new(), comment_ctoken),
latest_comments: Paginator::new(comment_count, Vec::new(), latest_comments_ctoken),
top_comments: Paginator::new_with_endpoint(
comment_count,
Vec::new(),
comment_ctoken,
crate::model::ContinuationEndpoint::Next,
),
latest_comments: Paginator::new_with_endpoint(
comment_count,
Vec::new(),
latest_comments_ctoken,
crate::model::ContinuationEndpoint::Next,
),
},
warnings,
})
}
}
impl MapResponse<Paginator<RecommendedVideo>> for response::VideoRecommendations {
fn map_response(
self,
_id: &str,
lang: Language,
_deobf: Option<&crate::deobfuscate::Deobfuscator>,
) -> Result<MapResult<Paginator<RecommendedVideo>>, ExtractionError> {
let mut endpoints = self.on_response_received_endpoints;
let cont = endpoints.try_swap_remove(0).ok_or(ExtractionError::Retry)?;
Ok(map_recommendations(
cont.append_continuation_items_action.continuation_items,
None,
lang,
))
}
}
impl MapResponse<Paginator<Comment>> for response::VideoComments {
fn map_response(
self,
@ -419,47 +391,27 @@ impl MapResponse<Paginator<Comment>> for response::VideoComments {
}
fn map_recommendations(
r: MapResult<Vec<response::VideoListItem>>,
r: MapResult<Vec<response::YouTubeListItem>>,
continuations: Option<Vec<response::MusicContinuation>>,
lang: Language,
) -> MapResult<Paginator<RecommendedVideo>> {
let mut warnings = r.warnings;
let mut ctoken = None;
let mut items = Vec::new();
r.c.into_iter().for_each(|item| match item {
response::VideoListItem::CompactVideoRenderer(video) => {
match RecommendedVideo::from_w_lang(video, lang) {
Ok(video) => items.push(video),
Err(e) => warnings.push(e.to_string()),
}
}
response::VideoListItem::ItemSectionRenderer { contents } => {
let mut x = map_recommendations(contents, None, lang);
items.append(&mut x.c.items);
warnings.append(&mut x.warnings);
if let Some(ct) = x.c.ctoken {
ctoken = Some(ct)
}
}
response::VideoListItem::ContinuationItemRenderer {
continuation_endpoint,
} => {
ctoken = Some(continuation_endpoint.continuation_command.token);
}
_ => {}
});
) -> MapResult<Paginator<VideoItem>> {
let mut mapper = response::YouTubeListMapper::<VideoItem>::new(lang);
mapper.map_response(r);
if let Some(continuations) = continuations {
continuations.into_iter().for_each(|c| {
ctoken = Some(c.next_continuation_data.continuation);
mapper.ctoken = Some(c.next_continuation_data.continuation);
})
};
MapResult {
c: Paginator::new(None, items, ctoken),
warnings,
c: Paginator::new_with_endpoint(
None,
mapper.items,
mapper.ctoken,
crate::model::ContinuationEndpoint::Next,
),
warnings: mapper.warnings,
}
}
@ -600,42 +552,6 @@ mod tests {
))
}
#[test]
fn t_map_recommendations() {
let json_path = Path::new("testfiles/video_details/recommendations.json");
let json_file = File::open(json_path).unwrap();
let recommendations: response::VideoRecommendations =
serde_json::from_reader(BufReader::new(json_file)).unwrap();
let map_res = recommendations
.map_response("", Language::En, None)
.unwrap();
assert!(
map_res.warnings.is_empty(),
"deserialization/mapping warnings: {:?}",
map_res.warnings
);
insta::assert_ron_snapshot!("map_recommendations", map_res.c, {
".items[].publish_date" => "[date]",
});
}
#[test]
fn map_recommendations_empty() {
let filename = format!("testfiles/video_details/recommendations_empty.json");
let json_path = Path::new(&filename);
let json_file = File::open(json_path).unwrap();
let recommendations: response::VideoRecommendations =
serde_json::from_reader(BufReader::new(json_file)).unwrap();
let err = recommendations
.map_response("", Language::En, None)
.unwrap_err();
assert!(matches!(err, crate::error::ExtractionError::Retry));
}
#[rstest]
#[case::top("top")]
#[case::latest("latest")]

View file

@ -531,7 +531,7 @@ pub struct VideoDetails {
/// Recommended videos
///
/// Note: Recommendations are not available for age-restricted videos
pub recommended: Paginator<RecommendedVideo>,
pub recommended: Paginator<VideoItem>,
/// Paginator to fetch comments (most liked first)
///
/// Is initially empty.