diff --git a/codegen/src/download_testfiles.rs b/codegen/src/download_testfiles.rs index 8bd2621..5f88239 100644 --- a/codegen/src/download_testfiles.rs +++ b/codegen/src/download_testfiles.rs @@ -12,16 +12,16 @@ pub async fn download_testfiles(project_root: &Path) { let mut testfiles = project_root.to_path_buf(); testfiles.push("testfiles"); - tokio::join!( - player(&testfiles), - player_model(&testfiles), - playlist(&testfiles), - video_details(&testfiles), - comments_top(&testfiles), - comments_latest(&testfiles), - recommendations(&testfiles), - channel_videos(&testfiles), - ); + player(&testfiles).await; + player_model(&testfiles).await; + playlist(&testfiles).await; + video_details(&testfiles).await; + comments_top(&testfiles).await; + comments_latest(&testfiles).await; + recommendations(&testfiles).await; + channel_videos(&testfiles).await; + channel_playlists(&testfiles).await; + channel_info(&testfiles).await; } const CLIENT_TYPES: [ClientType; 5] = [ @@ -202,6 +202,7 @@ async fn channel_videos(testfiles: &Path) { ("music", "UC_vmjW5e1xEHhYjY2a0kK1A"), // YouTube Music channels have no videos ("shorts", "UCh8gHdtzO2tXd593_bjErWg"), // shorts and livestreams are rendered differently ("live", "UChs0pSaEoNLV4mevBFGaoKA"), + ("empty", "UCxBa895m48H5idw5li7h-0g"), ] { let mut json_path = testfiles.to_path_buf(); json_path.push("channel"); @@ -214,3 +215,33 @@ async fn channel_videos(testfiles: &Path) { rp.query().channel_videos(id).await.unwrap(); } } + +async fn channel_playlists(testfiles: &Path) { + let mut json_path = testfiles.to_path_buf(); + json_path.push("channel"); + json_path.push("channel_playlists.json"); + if json_path.exists() { + return; + } + + let rp = rp_testfile(&json_path); + rp.query() + .channel_playlists("UC2DjFE7Xf11URZqWBigcVOQ") + .await + .unwrap(); +} + +async fn channel_info(testfiles: &Path) { + let mut json_path = testfiles.to_path_buf(); + json_path.push("channel"); + json_path.push("channel_info.json"); + if json_path.exists() { + return; + } + + let rp = rp_testfile(&json_path); + rp.query() + .channel_info("UC2DjFE7Xf11URZqWBigcVOQ") + .await + .unwrap(); +} diff --git a/src/client/channel.rs b/src/client/channel.rs index d7f82e9..24a2494 100644 --- a/src/client/channel.rs +++ b/src/client/channel.rs @@ -1,14 +1,21 @@ use anyhow::{bail, Result}; use reqwest::Method; use serde::Serialize; +use url::Url; use crate::{ - model::{ChannelVideos, Paginator}, + model::{ + Channel, ChannelInfo, ChannelOrder, ChannelPlaylist, ChannelVideo, Language, Paginator, + }, serializer::MapResult, - util, + timeago, + util::{self, TryRemove}, }; -use super::{response, ClientType, MapResponse, RustyPipeQuery, YTContext}; +use super::{ + response::{self, IsLive, IsShort}, + ClientType, MapResponse, RustyPipeQuery, YTContext, +}; #[derive(Debug, Serialize)] #[serde(rename_all = "camelCase")] @@ -33,12 +40,28 @@ enum Params { } impl RustyPipeQuery { - pub async fn channel_videos(&self, channel_id: &str) -> Result { + pub async fn channel_videos( + &self, + channel_id: &str, + ) -> Result>> { + self.channel_videos_ordered(channel_id, ChannelOrder::default()) + .await + } + + pub async fn channel_videos_ordered( + &self, + channel_id: &str, + order: ChannelOrder, + ) -> Result>> { let context = self.get_context(ClientType::Desktop, true).await; let request_body = QChannel { context, browse_id: channel_id.to_owned(), - params: Params::VideosLatest, + params: match order { + ChannelOrder::Latest => Params::VideosLatest, + ChannelOrder::Oldest => Params::VideosOldest, + ChannelOrder::Popular => Params::VideosPopular, + }, }; self.execute_request::( @@ -51,40 +74,493 @@ impl RustyPipeQuery { ) .await } + + pub async fn channel_playlists( + &self, + channel_id: &str, + ) -> Result>> { + let context = self.get_context(ClientType::Desktop, true).await; + let request_body = QChannel { + context, + browse_id: channel_id.to_owned(), + params: Params::Playlists, + }; + + self.execute_request::( + ClientType::Desktop, + "channel_playlists", + channel_id, + Method::POST, + "browse", + &request_body, + ) + .await + } + + pub async fn channel_info(&self, channel_id: &str) -> Result> { + let context = self.get_context(ClientType::Desktop, true).await; + let request_body = QChannel { + context, + browse_id: channel_id.to_owned(), + params: Params::Info, + }; + + self.execute_request::( + ClientType::Desktop, + "channel_info", + channel_id, + Method::POST, + "browse", + &request_body, + ) + .await + } } -impl MapResponse for response::Channel { +impl MapResponse>> for response::Channel { fn map_response( self, id: &str, lang: crate::model::Language, _deobf: Option<&crate::deobfuscate::Deobfuscator>, - ) -> Result> { - let warnings = Vec::new(); - // dbg!(&self); - let header = self.header.c4_tabbed_header_renderer; + ) -> Result>>> { + let content = map_channel_content(self.contents, id); + let mut warnings = content.warnings; + let grid = match content.c { + response::channel::ChannelContent::GridRenderer { items } => Some(items), + _ => None, + }; - if header.channel_id != id { - bail!( - "got wrong channel id {}, expected {}", - header.channel_id, - id - ); - } + let mut v_res = grid.map(|g| map_videos(g, lang)).unwrap_or_default(); + warnings.append(&mut v_res.warnings); Ok(MapResult { - c: ChannelVideos { - id: header.channel_id, - name: header.title, - subscriber_count: header - .subscriber_count_text - .and_then(|txt| util::parse_large_numstr(&txt, lang)), - videos: Paginator::default(), - }, + c: map_channel( + self.header, + self.metadata, + self.microformat, + v_res.c, + id, + lang, + )?, + warnings: warnings, + }) + } +} + +impl MapResponse>> for response::Channel { + fn map_response( + self, + id: &str, + lang: Language, + _deobf: Option<&crate::deobfuscate::Deobfuscator>, + ) -> Result>>> { + let content = map_channel_content(self.contents, id); + let mut warnings = content.warnings; + let grid = match content.c { + response::channel::ChannelContent::GridRenderer { items } => Some(items), + _ => None, + }; + + let mut p_res = grid.map(map_playlists).unwrap_or_default(); + warnings.append(&mut p_res.warnings); + + Ok(MapResult { + c: map_channel( + self.header, + self.metadata, + self.microformat, + p_res.c, + id, + lang, + )?, + warnings: warnings, + }) + } +} + +impl MapResponse> for response::Channel { + fn map_response( + self, + id: &str, + lang: Language, + _deobf: Option<&crate::deobfuscate::Deobfuscator>, + ) -> Result>> { + let content = map_channel_content(self.contents, id); + let mut warnings = content.warnings; + let meta = match content.c { + response::channel::ChannelContent::ChannelAboutFullMetadataRenderer(meta) => Some(meta), + _ => None, + }; + + let cinfo = meta + .map(|meta| ChannelInfo { + create_date: timeago::parse_textual_date_or_warn( + lang, + &meta.joined_date_text, + &mut warnings, + ), + view_count: util::parse_numeric_or_warn(&meta.view_count_text, &mut warnings), + links: meta + .primary_links + .into_iter() + .map(|l| { + ( + l.title, + util::sanitize_yt_url(&l.navigation_endpoint.url_endpoint.url), + ) + }) + .collect(), + }) + .unwrap_or_else(|| { + warnings.push("no metadata".to_owned()); + ChannelInfo { + create_date: None, + view_count: None, + links: Vec::new(), + } + }); + + Ok(MapResult { + c: map_channel( + self.header, + self.metadata, + self.microformat, + cinfo, + id, + lang, + )?, warnings, }) } } +fn map_videos( + res: MapResult>, + lang: Language, +) -> MapResult> { + let mut warnings = res.warnings; + + let mut ctoken = None; + let videos = res + .c + .into_iter() + .filter_map(|item| match item { + response::VideoListItem::GridVideoRenderer(video) => { + let mut toverlays = video.thumbnail_overlays; + let is_live = toverlays.is_live(); + let is_short = toverlays.is_short(); + let to = toverlays.try_swap_remove(0); + Some(ChannelVideo { + id: video.video_id, + title: video.title, + // Time text is `LIVE` for livestreams, so we ignore parse errors + length: to.and_then(|to| { + util::parse_video_length(&to.thumbnail_overlay_time_status_renderer.text) + }), + thumbnail: video.thumbnail.into(), + publish_date: video + .published_time_text + .as_ref() + .and_then(|txt| timeago::parse_timeago_or_warn(lang, txt, &mut warnings)), + publish_date_txt: video.published_time_text, + view_count: video + .view_count_text + .map(|txt| util::parse_numeric(&txt).unwrap_or_default()), + is_live, + is_short, + }) + } + response::VideoListItem::ContinuationItemRenderer { + continuation_endpoint, + } => { + ctoken = Some(continuation_endpoint.continuation_command.token); + None + } + _ => None, + }) + .collect(); + + MapResult { + c: Paginator::new(None, videos, ctoken), + warnings, + } +} + +fn map_playlists( + res: MapResult>, +) -> MapResult> { + let mut ctoken = None; + let playlists = res + .c + .into_iter() + .filter_map(|item| match item { + response::VideoListItem::GridPlaylistRenderer(playlist) => Some(ChannelPlaylist { + id: playlist.playlist_id, + name: playlist.title, + thumbnail: playlist.thumbnail.into(), + video_count: util::parse_numeric(&playlist.video_count_short_text).ok(), + }), + response::VideoListItem::ContinuationItemRenderer { + continuation_endpoint, + } => { + ctoken = Some(continuation_endpoint.continuation_command.token); + None + } + _ => None, + }) + .collect(); + + MapResult { + c: Paginator::new(None, playlists, ctoken), + warnings: res.warnings, + } +} + +fn map_vanity_url(url: &str, id: &str) -> Option { + if url.contains(id) { + return None; + } + + let mut parsed_url = ok_or_bail!(Url::parse(url), None); + + // The vanity URL from YouTube is http for some reason + let _ = parsed_url.set_scheme("https"); + Some(parsed_url.to_string()) +} + +fn map_channel( + header: response::channel::Header, + metadata: response::channel::Metadata, + microformat: response::channel::Microformat, + content: T, + id: &str, + lang: Language, +) -> Result> { + let header = header.c4_tabbed_header_renderer; + + if header.channel_id != id { + bail!( + "got wrong channel id {}, expected {}", + header.channel_id, + id + ); + } + + Ok(Channel { + id: header.channel_id, + name: header.title, + subscriber_count: header + .subscriber_count_text + .and_then(|txt| util::parse_large_numstr(&txt, lang)), + avatar: header.avatar.into(), + description: metadata.channel_metadata_renderer.description, + tags: microformat.microformat_data_renderer.tags, + vanity_url: metadata + .channel_metadata_renderer + .vanity_channel_url + .as_ref() + .and_then(|url| map_vanity_url(url, id)), + banner: header.banner.into(), + mobile_banner: header.mobile_banner.into(), + tv_banner: header.tv_banner.into(), + content, + }) +} + +fn map_channel_content( + contents: response::channel::Contents, + id: &str, +) -> MapResult { + let mut tabs = contents.two_column_browse_results_renderer.tabs; + let mut sectionlist = some_or_bail!( + tabs.try_swap_remove(0), + MapResult::error("no tab".to_owned()) + ) + .tab_renderer + .content + .section_list_renderer; + + if let Some(target_id) = sectionlist.target_id { + // YouTube falls back to the featured page if the channel does not have a "videos" tab. + // This is the case for YouTube Music channels. + if target_id.starts_with(&format!("browse-feed{}featured", id)) { + return MapResult::ok(response::channel::ChannelContent::None); + } + } + + let mut itemsection = some_or_bail!( + sectionlist.contents.try_swap_remove(0), + MapResult::error("no sectionlist".to_owned()) + ) + .item_section_renderer + .contents; + + let content = some_or_bail!( + itemsection.try_swap_remove(0), + MapResult::error("no channel content".to_owned()) + ); + + MapResult::ok(content) +} + #[cfg(test)] -mod tests {} +mod tests { + use std::{fs::File, io::BufReader, path::Path}; + + use chrono::Datelike; + use rstest::rstest; + + use crate::{ + client::{response, MapResponse, RustyPipe}, + model::{Channel, ChannelOrder, ChannelVideo, Language, Paginator}, + serializer::MapResult, + }; + + #[rstest] + #[case::latest(ChannelOrder::Latest)] + #[case::oldest(ChannelOrder::Oldest)] + #[case::popular(ChannelOrder::Popular)] + #[tokio::test] + async fn get_videos(#[case] order: ChannelOrder) { + let rp = RustyPipe::builder().strict().build(); + let channel = rp + .query() + .channel_videos_ordered("UC2DjFE7Xf11URZqWBigcVOQ", order) + .await + .unwrap(); + + // dbg!(&channel); + check_channel(&channel); + + assert!( + !channel.content.items.is_empty() && !channel.content.is_exhausted(), + "got no videos" + ); + + let first_video = &channel.content.items[0]; + let first_video_date = first_video.publish_date.unwrap(); + let age_days = (chrono::Local::now() - first_video_date).num_days(); + + match order { + ChannelOrder::Latest => { + assert!(age_days < 60, "latest video older than 60 days") + } + ChannelOrder::Oldest => { + assert!(age_days > 4700, "oldest video newer than 4700 days") + } + ChannelOrder::Popular => { + assert!( + first_video.view_count.unwrap() > 2300000, + "most popular video < 2.3M views" + ) + } + } + } + + #[tokio::test] + async fn get_playlists() { + let rp = RustyPipe::builder().strict().build(); + let channel = rp + .query() + .channel_playlists("UC2DjFE7Xf11URZqWBigcVOQ") + .await + .unwrap(); + + // dbg!(&channel); + check_channel(&channel); + + assert!( + !channel.content.items.is_empty() && !channel.content.is_exhausted(), + "got no playlists" + ); + } + + #[tokio::test] + async fn get_info() { + let rp = RustyPipe::builder().strict().build(); + let channel = rp + .query() + .channel_info("UC2DjFE7Xf11URZqWBigcVOQ") + .await + .unwrap(); + + dbg!(&channel); + check_channel(&channel); + + let created = channel.content.create_date.unwrap(); + assert_eq!(created.year(), 2009); + assert_eq!(created.month(), 4); + assert_eq!(created.day(), 4); + + assert!( + channel.content.view_count.unwrap() > 186854340, + "exp >186M views, got {}", + channel.content.view_count.unwrap() + ); + + insta::assert_ron_snapshot!(channel.content.links, @r###" + [ + ("EEVblog Web Site", "http://www.eevblog.com/"), + ("Twitter", "http://www.twitter.com/eevblog"), + ("Facebook", "http://www.facebook.com/EEVblog"), + ("EEVdiscover", "https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ"), + ("The EEVblog Forum", "http://www.eevblog.com/forum"), + ("EEVblog Merchandise (T-Shirts)", "http://www.eevblog.com/merch"), + ("EEVblog Donations", "http://www.eevblog.com/donations/"), + ("Patreon", "https://www.patreon.com/eevblog"), + ("SubscribeStar", "https://www.subscribestar.com/eevblog"), + ("The AmpHour Radio Show", "http://www.theamphour.com/"), + ("Flickr", "http://www.flickr.com/photos/eevblog"), + ("EEVblog AMAZON Store", "http://www.amazon.com/gp/redirect.html?ie=UTF8&location=http%3A%2F%2Fwww.amazon.com%2F&tag=ee04-20&linkCode=ur2&camp=1789&creative=390957"), + ("2nd EEVblog Channel", "http://www.youtube.com/EEVblog2"), + ] + "###); + } + + fn check_channel(channel: &Channel) { + assert_eq!(channel.id, "UC2DjFE7Xf11URZqWBigcVOQ"); + assert_eq!(channel.name, "EEVblog"); + assert!( + channel.subscriber_count.unwrap() > 880000, + "exp >880K subscribers, got {}", + channel.subscriber_count.unwrap() + ); + assert!(!channel.avatar.is_empty(), "got no thumbnails"); + assert_eq!(channel.description, "NO SCRIPT, NO FEAR, ALL OPINION\nAn off-the-cuff Video Blog about Electronics Engineering, for engineers, hobbyists, enthusiasts, hackers and Makers\nHosted by Dave Jones from Sydney Australia\n\nDONATIONS:\nBitcoin: 3KqyH1U3qrMPnkLufM2oHDU7YB4zVZeFyZ\nEthereum: 0x99ccc4d2654ba40744a1f678d9868ecb15e91206\nPayPal: david@alternatezone.com\n\nPatreon: https://www.patreon.com/eevblog\n\nEEVblog2: http://www.youtube.com/EEVblog2\nEEVdiscover: https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ\n\nEMAIL:\nAdvertising/Commercial: eevblog+business@gmail.com\nFan mail: eevblog+fan@gmail.com\nHate Mail: eevblog+hate@gmail.com\n\nI DON'T DO PAID VIDEO SPONSORSHIPS, DON'T ASK!\n\nPLEASE:\nDo NOT ask for personal advice on something, post it in the EEVblog forum.\nI read ALL email, but please don't be offended if I don't have time to reply, I get a LOT of email.\n\nMailbag\nPO Box 7949\nBaulkham Hills NSW 2153\nAUSTRALIA"); + assert!(!channel.tags.is_empty(), "got no tags"); + assert_eq!( + channel.vanity_url.as_ref().unwrap(), + "https://www.youtube.com/c/EevblogDave" + ); + assert!(!channel.banner.is_empty(), "got no banners"); + assert!(!channel.mobile_banner.is_empty(), "got no mobile banners"); + assert!(!channel.tv_banner.is_empty(), "got no tv banners"); + } + + #[rstest] + #[case::base("base", "UC2DjFE7Xf11URZqWBigcVOQ")] + #[case::music("music", "UC_vmjW5e1xEHhYjY2a0kK1A")] + #[case::shorts("shorts", "UCh8gHdtzO2tXd593_bjErWg")] + #[case::live("live", "UChs0pSaEoNLV4mevBFGaoKA")] + #[case::empty("empty", "UCxBa895m48H5idw5li7h-0g")] + fn t_map_channel_videos(#[case] name: &str, #[case] id: &str) { + let filename = format!("testfiles/channel/channel_videos_{}.json", name); + let json_path = Path::new(&filename); + let json_file = File::open(json_path).unwrap(); + + let channel: response::Channel = + serde_json::from_reader(BufReader::new(json_file)).unwrap(); + let map_res: MapResult>> = + channel.map_response(id, Language::En, None).unwrap(); + + assert!( + map_res.warnings.is_empty(), + "deserialization/mapping warnings: {:?}", + map_res.warnings + ); + insta::assert_ron_snapshot!(format!("map_channel_videos_{}", name), map_res.c, { + ".content.items[].publish_date" => "[date]", + }); + } +} diff --git a/src/client/player.rs b/src/client/player.rs index 20c9878..a9bb9ae 100644 --- a/src/client/player.rs +++ b/src/client/player.rs @@ -7,8 +7,9 @@ use anyhow::{anyhow, bail, Result}; use chrono::{Local, NaiveDateTime, NaiveTime, TimeZone}; use fancy_regex::Regex; use once_cell::sync::Lazy; -use reqwest::{Method, Url}; +use reqwest::Method; use serde::Serialize; +use url::Url; use crate::{ deobfuscate::Deobfuscator, @@ -174,7 +175,7 @@ impl MapResponse for response::Player { title: video_details.title, description: video_details.short_description, length: video_details.length_seconds, - thumbnails: video_details.thumbnail.unwrap_or_default().into(), + thumbnails: video_details.thumbnail.into(), channel: ChannelId { id: video_details.channel_id, name: video_details.author, diff --git a/src/client/response/channel.rs b/src/client/response/channel.rs index 9e369f9..27e9b66 100644 --- a/src/client/response/channel.rs +++ b/src/client/response/channel.rs @@ -5,13 +5,17 @@ use serde_with::VecSkipError; use super::ChannelBadge; use super::Thumbnails; use super::{ContentRenderer, ContentsRenderer, VideoListItem}; +use crate::serializer::ignore_any; use crate::serializer::{text::Text, MapResult, VecLogError}; +#[serde_as] #[derive(Clone, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Channel { pub header: Header, pub contents: Contents, + pub metadata: Metadata, + pub microformat: Microformat, } #[derive(Clone, Debug, Deserialize)] @@ -46,27 +50,30 @@ pub struct SectionListRendererWrap { #[serde(rename_all = "camelCase")] pub struct SectionListRenderer { pub contents: Vec, - pub target_id: String, + /// - **Videos**: browse-feedUC2DjFE7Xf11URZqWBigcVOQvideos (...) + /// - **Playlists**: browse-feedUC2DjFE7Xf11URZqWBigcVOQplaylists104 (...) + /// - **Info**: None + pub target_id: Option, } #[derive(Clone, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ItemSectionRendererWrap { - pub item_section_renderer: ContentsRenderer, -} - -#[derive(Clone, Debug, Deserialize)] -#[serde(rename_all = "camelCase")] -pub struct GridRendererWrap { - pub grid_renderer: GridRenderer, + pub item_section_renderer: ContentsRenderer, } #[serde_as] -#[derive(Clone, Debug, Deserialize)] +#[derive(Default, Clone, Debug, Deserialize)] #[serde(rename_all = "camelCase")] -pub struct GridRenderer { - #[serde_as(as = "VecLogError<_>")] - pub items: MapResult>, +pub enum ChannelContent { + GridRenderer { + #[serde_as(as = "VecLogError<_>")] + items: MapResult>, + }, + ChannelAboutFullMetadataRenderer(ChannelFullMetadata), + #[default] + #[serde(other, deserialize_with = "ignore_any")] + None, } #[derive(Clone, Debug, Deserialize)] @@ -87,11 +94,74 @@ pub struct HeaderRenderer { /// `None` if the subscriber count is hidden. #[serde_as(as = "Option")] pub subscriber_count_text: Option, + #[serde(default)] pub avatar: Thumbnails, #[serde_as(as = "Option>")] pub badges: Option>, + #[serde(default)] pub banner: Thumbnails, + #[serde(default)] pub mobile_banner: Thumbnails, /// Fullscreen (16:9) channel banner + #[serde(default)] pub tv_banner: Thumbnails, } + +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Metadata { + pub channel_metadata_renderer: ChannelMetadataRenderer, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ChannelMetadataRenderer { + pub description: String, + pub vanity_channel_url: Option, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct Microformat { + pub microformat_data_renderer: MicroformatDataRenderer, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct MicroformatDataRenderer { + #[serde(default)] + pub tags: Vec, +} + +#[serde_as] +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct ChannelFullMetadata { + #[serde_as(as = "Text")] + pub joined_date_text: String, + #[serde_as(as = "Text")] + pub view_count_text: String, + #[serde_as(as = "VecSkipError<_>")] + pub primary_links: Vec, +} + +#[serde_as] +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct PrimaryLink { + #[serde_as(as = "Text")] + pub title: String, + pub navigation_endpoint: NavigationEndpoint, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct NavigationEndpoint { + pub url_endpoint: UrlEndpoint, +} + +#[derive(Clone, Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub struct UrlEndpoint { + pub url: String, +} diff --git a/src/client/response/mod.rs b/src/client/response/mod.rs index 52d9040..5a90424 100644 --- a/src/client/response/mod.rs +++ b/src/client/response/mod.rs @@ -37,6 +37,7 @@ pub struct ContentsRenderer { #[derive(Clone, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct ThumbnailsWrap { + #[serde(default)] pub thumbnail: Thumbnails, } @@ -45,6 +46,7 @@ pub struct ThumbnailsWrap { #[derive(Default, Clone, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct Thumbnails { + #[serde(default)] pub thumbnails: Vec, } @@ -155,8 +157,6 @@ pub struct GridPlaylistRenderer { pub title: String, pub thumbnail: Thumbnails, #[serde_as(as = "Text")] - pub published_time_text: String, - #[serde_as(as = "Text")] pub video_count_short_text: String, } @@ -244,6 +244,9 @@ pub struct TimeOverlay { #[derive(Clone, Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub struct TimeOverlayRenderer { + /// `29:54` + /// + /// Is `LIVE` in case of a livestream #[serde_as(as = "Text")] pub text: String, #[serde(default)] diff --git a/src/client/response/player.rs b/src/client/response/player.rs index 6087242..55c3a1c 100644 --- a/src/client/response/player.rs +++ b/src/client/response/player.rs @@ -207,7 +207,8 @@ pub struct VideoDetails { pub keywords: Option>, pub channel_id: String, pub short_description: Option, - pub thumbnail: Option, + #[serde(default)] + pub thumbnail: Thumbnails, #[serde_as(as = "JsonString")] pub view_count: u64, pub author: String, diff --git a/src/client/response/video_details.rs b/src/client/response/video_details.rs index 63e5686..fc23707 100644 --- a/src/client/response/video_details.rs +++ b/src/client/response/video_details.rs @@ -344,6 +344,7 @@ pub struct MacroMarkersListItem { pub struct MacroMarkersListItemRenderer { /// Contains chapter start time in seconds pub on_tap: MacroMarkersListItemOnTap, + #[serde(default)] pub thumbnail: Thumbnails, /// Chapter title #[serde_as(as = "Text")] @@ -528,6 +529,7 @@ pub struct CommentRenderer { #[serde(default)] #[serde_as(as = "DefaultOnError>")] pub author_text: Option, + #[serde(default)] pub author_thumbnail: Thumbnails, #[serde(default)] /// ID of the author's channel diff --git a/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_base.snap b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_base.snap new file mode 100644 index 0000000..1b0b6c4 --- /dev/null +++ b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_base.snap @@ -0,0 +1,1110 @@ +--- +source: src/client/channel.rs +expression: map_res.c +--- +Channel( + id: "UC2DjFE7Xf11URZqWBigcVOQ", + name: "EEVblog", + subscriber_count: Some(880000), + avatar: [ + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s48-c-k-c0x00ffffff-no-rj", + width: 48, + height: 48, + ), + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s88-c-k-c0x00ffffff-no-rj", + width: 88, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s176-c-k-c0x00ffffff-no-rj", + width: 176, + height: 176, + ), + ], + description: "NO SCRIPT, NO FEAR, ALL OPINION\nAn off-the-cuff Video Blog about Electronics Engineering, for engineers, hobbyists, enthusiasts, hackers and Makers\nHosted by Dave Jones from Sydney Australia\n\nDONATIONS:\nBitcoin: 3KqyH1U3qrMPnkLufM2oHDU7YB4zVZeFyZ\nEthereum: 0x99ccc4d2654ba40744a1f678d9868ecb15e91206\nPayPal: david@alternatezone.com\n\nPatreon: https://www.patreon.com/eevblog\n\nEEVblog2: http://www.youtube.com/EEVblog2\nEEVdiscover: https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ\n\nEMAIL:\nAdvertising/Commercial: eevblog+business@gmail.com\nFan mail: eevblog+fan@gmail.com\nHate Mail: eevblog+hate@gmail.com\n\nI DON\'T DO PAID VIDEO SPONSORSHIPS, DON\'T ASK!\n\nPLEASE:\nDo NOT ask for personal advice on something, post it in the EEVblog forum.\nI read ALL email, but please don\'t be offended if I don\'t have time to reply, I get a LOT of email.\n\nMailbag\nPO Box 7949\nBaulkham Hills NSW 2153\nAUSTRALIA", + tags: [ + "electronics", + "engineering", + "maker", + "hacker", + "design", + "circuit", + "hardware", + "pic", + "atmel", + "oscilloscope", + "multimeter", + "diy", + "hobby", + "review", + "teardown", + "microcontroller", + "arduino", + "video", + "blog", + "tutorial", + "how-to", + "interview", + "rant", + "industry", + "news", + "mailbag", + "dumpster diving", + "debunking", + ], + vanity_url: Some("https://www.youtube.com/c/EevblogDave"), + banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1060-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1060, + height: 175, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1138-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1138, + height: 188, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1707-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1707, + height: 283, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2120-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2120, + height: 351, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2276-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2276, + height: 377, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2560, + height: 424, + ), + ], + mobile_banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w320-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 320, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w640-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 640, + height: 175, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w960-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 960, + height: 263, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1280-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 1280, + height: 351, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1440-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 1440, + height: 395, + ), + ], + tv_banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w320-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 320, + height: 180, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w854-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 854, + height: 480, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1280-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 1280, + height: 720, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1920-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 1920, + height: 1080, + ), + Thumbnail( + url: "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2120-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 2120, + height: 1192, + ), + ], + content: Paginator( + count: None, + items: [ + ChannelVideo( + id: "gremHHvqYTE", + title: "EEVblog 1501 - Rigol HDO4000 Low Noise 12bit Oscilloscope Unboxing & First Impression", + length: Some(1794), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/gremHHvqYTE/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBcwR0YIwLjfFam9HkKdkTkqx_gHw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/gremHHvqYTE/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDxapfMhOxFEPMQW8yAZoKy9Pv7jg", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/gremHHvqYTE/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAJCnBUBeCNrVKIm5uumpUXGEPtdA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/gremHHvqYTE/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBRgWS9gbYWTL1_O-dmlia8kUF9Tw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("20 hours ago"), + view_count: Some(19739), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "WHO8NBfpaO0", + title: "eevBLAB 102 - Last Mile Autonomous Robot Deliveries WILL FAIL", + length: Some(742), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/WHO8NBfpaO0/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDQPKMF3Aeo9CydEWz9pQWkn1Lu7Q", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/WHO8NBfpaO0/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAzahjCJ1PzdGoXP5_v3iXh79tPLQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/WHO8NBfpaO0/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBPWj9_Ns0dvlZEwzebC-33hrQh-A", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/WHO8NBfpaO0/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB_9260p4zFUVbfq4XUlJI_1OybFQ", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("5 days ago"), + view_count: Some(24194), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "W1Q8CxL95_Y", + title: "EEVblog 1500 - Automatic Transfer Switch REVERSE ENGINEERED", + length: Some(1770), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/W1Q8CxL95_Y/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBIxuct8vahJHOJTLfbOnsMOXnjvw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/W1Q8CxL95_Y/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBA1E482L2tKCDHMldZcPTCbgDSpg", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/W1Q8CxL95_Y/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCzgEhl5ZegIlvkhd3WpOiW7un6kg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/W1Q8CxL95_Y/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBvzwdhTvfzIE_fzRjhyVCPKiRZfw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("7 days ago"), + view_count: Some(51443), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "lagxSrPeoYg", + title: "EEVblog 1499 - EcoFlow Delta Pro 3.6kWh Portable Battery TEARDOWN!", + length: Some(2334), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/lagxSrPeoYg/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAbAX2gdAF66O7BUCaOVg2vQOsS2Q", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/lagxSrPeoYg/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLC9XWFQwq0pCV7R8eeIdS8LnJ1dJw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/lagxSrPeoYg/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLByFc9tTcW4JWp3pnWoAzomZYIgMA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/lagxSrPeoYg/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCqGK1_pSXVZ842Ucq_zBqkcYqNkA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("13 days ago"), + view_count: Some(72324), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "qTctWW9_FmE", + title: "EEVblog 1498 - TransPod Fluxjet Hyperloop $550M Boondoggle!", + length: Some(2399), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/qTctWW9_FmE/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCbnEQaGGI5zD9lCJ8kMmciezX2kA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/qTctWW9_FmE/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAObAOD0o6k_rsbS9iOsgPQxUlz4g", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/qTctWW9_FmE/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBK8wuYETpwHktzpS7qf_NV5ae4LQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/qTctWW9_FmE/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAB1AHSlw14bM0u5Xc3LEiZ50sGow", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 weeks ago"), + view_count: Some(57348), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "3t9G80wk0pk", + title: "eevBLAB 101 - Why Are Tektronix Oscilloscopes So Expensive?", + length: Some(1423), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/3t9G80wk0pk/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDnsVu-VQplpRpc1ZW-yk2byyZjZA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/3t9G80wk0pk/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAueC4MRkNwLQbRG31Sw9eGhBTcLA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/3t9G80wk0pk/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDcZm73OCwjFgXxLIEED4L0C57cSw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/3t9G80wk0pk/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDtjsX7HSTSdyDmdoMEOnZZmupBDw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 weeks ago"), + view_count: Some(68645), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "7dze5CnZnmk", + title: "EEVblog 1497 - RIP Fluke. Thanks Energizer. NOT.", + length: Some(1168), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/7dze5CnZnmk/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAg430MYAmoycM4lbv_57S_d3kZRA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7dze5CnZnmk/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBbwuQSdBcM-pOjGs_DFmT3TxQ5Pw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7dze5CnZnmk/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBxMWyXAJhBLKOcxMK22iVQlnIk5g", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7dze5CnZnmk/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBPWgsNPFemykKyU5bw8uyGeiBeAA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 weeks ago"), + view_count: Some(91388), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "6XnrZpPYgBg", + title: "EEVblog 1496 - Winning Mailbag", + length: Some(3139), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/6XnrZpPYgBg/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCrBgky13jB1p9xzKbmoUpJ4g0SNQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/6XnrZpPYgBg/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDPC3fbIIcI4FDUcq_e-JqG9HiSyA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/6XnrZpPYgBg/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAn7NX4LhCwv20RHEqrt8irQaBsCw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/6XnrZpPYgBg/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBJ51SKz4z1fhdr-4RPp5Ds3hvW_A", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 weeks ago"), + view_count: Some(39993), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "Psp3ltpFvws", + title: "eevBLAB 100 - Reuters Attacks Odysee - LOL", + length: Some(855), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/Psp3ltpFvws/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCu8Nu_NmDw5vBHgb7e8JdJR1Dr1Q", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Psp3ltpFvws/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCBC77KYZrEDP-LCyrS0f_vwudLEA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Psp3ltpFvws/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAMGjfeJMJ_4dCessuc_q3FMFx9ag", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Psp3ltpFvws/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAgjFAf6wRG_ObrYdB7SbA68hJ6fw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("4 weeks ago"), + view_count: Some(22512), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "taVYTYz5vLE", + title: "EEVblog 1495 - Quaze Wireless Power (AGAIN!) but for GAMING!", + length: Some(2592), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/taVYTYz5vLE/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAMHngmN8TjWZz327vUD7zjjblYBw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/taVYTYz5vLE/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDqoLWa8V1MBZrin8QHBaD7HKi4LA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/taVYTYz5vLE/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDcpZTLm0mrqu2Eff6CeN9SVUpQ6Q", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/taVYTYz5vLE/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDUofJ-0cqxeCR3Qx0DFL2HDNOQCA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(40137), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "Y6cZrieFw-k", + title: "EEVblog 1494 - FIVE Ways to Open a CHEAP SAFE!", + length: Some(1194), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/Y6cZrieFw-k/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDsdoJwcvSFZU4e9cwDFbZj3W21Pw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Y6cZrieFw-k/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLA1XVxnGoRXYGej4UB_N53C2CcZXQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Y6cZrieFw-k/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCbTytTdOIa8QJ3YII-xFQx0mvdOg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Y6cZrieFw-k/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDR78g7R5AUa3S7liO9WchIY93E-Q", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(74510), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "Kr2XyhpUdUI", + title: "EEVblog 1493 - MacGyver Project - Part 2", + length: Some(1785), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/Kr2XyhpUdUI/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDdL3brjOzbABRuyz-yolawtGRsbw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Kr2XyhpUdUI/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDPA2N3YbuW3gf85xLF5Q-sVOQR5w", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Kr2XyhpUdUI/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBmafsSw1lLU__G8O8ufT61wlKcjw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/Kr2XyhpUdUI/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBoBK5gKOfA8gNbJ8Oc72MZqE5iqg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(34487), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "rxGafdgkal8", + title: "EEVblog 1492 - $5 Oscilloscope Repaired! + Oz GIVEAWAY", + length: Some(1163), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/rxGafdgkal8/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLD-p_t0q_Q2oTGyJuFCQJ5z6VPPMQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/rxGafdgkal8/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLB06G_3UzPk7WpdAwj2Op1OkEp6aw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/rxGafdgkal8/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDqD3yUJjy4Ja7W0t7zbsEb5AFH1A", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/rxGafdgkal8/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB_BJlYjavPpzbKKlCuGHfrQP2d9A", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(44928), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "4yosozyeIP4", + title: "EEVblog 1491 - The MacGyver Project - Part 1", + length: Some(1706), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/4yosozyeIP4/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDRNAWkPQfuQirfiOdowD1iQlWrWg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/4yosozyeIP4/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCsK0yCJpBh0zkBJNzMHWrPX9wfTQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/4yosozyeIP4/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCbQz7r2-dXYyUtJ5ca44JJeDRC9g", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/4yosozyeIP4/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCF7fcUrmkPdz48wdopDP6X8LxGTQ", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(34324), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "06JtC2DC_dQ", + title: "EEVblog 1490 - Insane Jaycar Dumpster Sale! 2022", + length: Some(1700), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/06JtC2DC_dQ/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDVIvEssIKji_8dyBYGYbpIqen7vQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/06JtC2DC_dQ/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBIsOPZke9eGvCSW3Eca5LHoXxIGg", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/06JtC2DC_dQ/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDmLPUoHUaXhluqsjmc6UAyng0hPg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/06JtC2DC_dQ/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDJu6B0frgKF2509R9yLCU8KmmukQ", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(63763), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "piquT76w9TI", + title: "EEVblog 1489 - Mystery Teardown!", + length: Some(1466), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/piquT76w9TI/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCTzIcGeRDwUyINtik50EQCOTxwiA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/piquT76w9TI/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDP66nc1L56eJFf1dKMcn_N_AP0IQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/piquT76w9TI/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAPTbf4n6769n5sYsUsfQsGNAktSg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/piquT76w9TI/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDK7oNTn8ugv11wQ-lgXRO4QOmbOg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(149186), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "pKuUKT-zU-g", + title: "EEVblog 1488 - Tilt Five Augmented Reality AR Glasses - First Reaction!", + length: Some(2152), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/pKuUKT-zU-g/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCB6Rh4miI20yPy2kJaxul_wA3Now", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/pKuUKT-zU-g/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBYAfaIZpGPBvFJppuinrYBkQXYEA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/pKuUKT-zU-g/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC1jjhZ-jPRmJcdJs9b5FXmgFi4Pw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/pKuUKT-zU-g/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLClsTY66ipPp-vU53lq6wv40OYmAw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(30130), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "_R4wQQNSO6k", + title: "EEVblog 1487 - Do Solar Micro Inverters Take Power at Night?", + length: Some(2399), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/_R4wQQNSO6k/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDEQVZ0yQPLZqwLdQednKWwLWqDmA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/_R4wQQNSO6k/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLD13q1sNDpwXODSegy-yTbP2LFZSg", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/_R4wQQNSO6k/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAWvb8PGq-V7FZ-Hd5Oqspvvqs4IQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/_R4wQQNSO6k/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBcM15akUbtMnhzi3w5g_eaBPT3gg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(48037), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "ikp5BorIo_M", + title: "EEVblog 1486 - What you DIDN\'T KNOW About Film Capacitor FAILURES!", + length: Some(1792), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/ikp5BorIo_M/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBygGB8KC522NC15BhDC1WpuNKsgw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/ikp5BorIo_M/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBdBGFN-t7EBy_DuaDfRnYVzkdEvg", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/ikp5BorIo_M/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAXe6bJUOjYP8xbK_JwnSBE8c6vBA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/ikp5BorIo_M/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDbdckel6SqpbChOdDcaAXVOGmYfA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(81958), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "7O-QckjCXNo", + title: "eevBLAB 99 - AI SPAM BOT Youtube Space/Science/Tech Channels? - WTF", + length: Some(592), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/7O-QckjCXNo/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBY1cRnrWQCbmlAzP5okMmIYjgdsg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7O-QckjCXNo/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBJ5wpNdGAmwNlpS6-wJistsNuZKw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7O-QckjCXNo/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA0J_8vXlR2BiSM_YR-Jh-50VRX1A", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7O-QckjCXNo/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCkRmMATmzz0obVXcRTKENjiFkzpA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(42635), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "VutdTxF4E-0", + title: "RIP The Old Garage Lab", + length: Some(115), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/VutdTxF4E-0/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDlPpT2-UOGfm2A2djTLjCsygeqSw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/VutdTxF4E-0/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBWY6hTXpClyuiRnVXelYKXvYKIFw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/VutdTxF4E-0/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC_JxmcUdUDh97X7Ec7FofhtJTSpA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/VutdTxF4E-0/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAPMDs83SJodJjSonO5_kBKtFaBHQ", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(25860), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "o7xfGuRaq94", + title: "EEVblog 1485 - PedalCell CadenceX Bike Generator LOL FAIL!", + length: Some(1026), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/o7xfGuRaq94/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBA7RRL2USBwkYXp9ouWTbtU-JHSg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/o7xfGuRaq94/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBFQasd1MVTHe8q3BlW_7hCFF6g2w", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/o7xfGuRaq94/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB8vfJ-cb3M1rZABzOLBhhEb-P0WA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/o7xfGuRaq94/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLA5qjdjxbMp4XTosRA9vHN-hA7uNg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(63035), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "3WSIfHOv3fc", + title: "EEVblog 1484 - Kaba Mas X-09 High Security Electronic Lock Teardown", + length: Some(1106), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/3WSIfHOv3fc/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLClZroFRo115ZuxYhJ5rcCDO2ZPcQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/3WSIfHOv3fc/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLADPt9CkzOCxU0_hDuGGbQR9Hh2_w", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/3WSIfHOv3fc/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAIz3CL8KWk7qBahTCfkbyFOorHbQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/3WSIfHOv3fc/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDrDJEAZALYZpe7TTbQczJutxzH2A", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(22731), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "8yXZJZCKImI", + title: "EEVblog 1483 - Holy Mailbag Bomb Batman!", + length: Some(3373), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/8yXZJZCKImI/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBym7WfmrvKIjs2ClW-FOLtxbENzw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/8yXZJZCKImI/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDG3D-Moyv696gi1pXUwrYRFpOI-g", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/8yXZJZCKImI/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC9fja1qscJ9wCDqu72t65ARuxzVw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/8yXZJZCKImI/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBI2nrrm39BQT_JktDvG-PnO9jETw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(65765), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "vJ4pW6LKJWU", + title: "EEVblog 1482 - Mains Capacitor Zener Regulator Circuit", + length: Some(1132), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/vJ4pW6LKJWU/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDaKgfAJ4NAeqoMIPZDavsTw_JD5w", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/vJ4pW6LKJWU/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBMa3c2WVzA4hcxakf2-uIONSa2EQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/vJ4pW6LKJWU/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAvaEYsAueDL0KlWGzZ72DQLVCdLQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/vJ4pW6LKJWU/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDYwvXiUNyMGIlLm297VXb1AhqNOg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(51555), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "myqiqUE00fo", + title: "EEVblog 1481 - Dodgy Dangerous Heater REPAIR", + length: Some(1622), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/myqiqUE00fo/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLB3nqRnunVeYPk1_vdXP7IEv1E1Rg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/myqiqUE00fo/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAHb1mp2UeEOym-rOU-FabEEB7O2g", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/myqiqUE00fo/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBBWEeW8eXnkMBCH_Wm5COdoCgKbg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/myqiqUE00fo/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDULYb0AWXFMxC7g4cnD0sAwLxgqA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(46638), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "xIokNnjuam8", + title: "EEVblog 1480 - Lightyear Zero Solar Powered Electric Car", + length: Some(1196), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/xIokNnjuam8/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBRxCpyCftz0LJooMtxBcIWwaF6hw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/xIokNnjuam8/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCxXJ-BPTdWUD-1CN34hakInG_AGA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/xIokNnjuam8/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCYY0pT8iwHFYVFt0jmBboTJLTa2w", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/xIokNnjuam8/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCIekdHP-LkQDJ7kia0kUKhr6b-iQ", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 months ago"), + view_count: Some(62921), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "S3R4r2xvVYQ", + title: "EEVblog 1479 - Is Your Calculator WRONG?", + length: Some(1066), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/S3R4r2xvVYQ/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLC2ZW-UUXJGrtHphT2E53pFafr-1g", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/S3R4r2xvVYQ/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLD9QEJUkVb2VdJDpGODupZ3mQZhSQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/S3R4r2xvVYQ/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDyeqv2bK5qwnw6FygQ1LwglEE52Q", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/S3R4r2xvVYQ/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCf2fs2WfyqGD9f_IqVrKti0QBmWQ", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 months ago"), + view_count: Some(66895), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "RlwcdUnRw6w", + title: "EEVblog 1478 - Waveform Update Rate Shootout - Tek 2 Series vs Others", + length: Some(1348), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/RlwcdUnRw6w/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBYaH7c8-BP8807GgNGML2WUNK8pg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/RlwcdUnRw6w/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAdS7BGb6uz3yHhBG_evkfWCIZ34w", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/RlwcdUnRw6w/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBpFoA9xBWnKCEpev1vBhHWLzQ-Ug", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/RlwcdUnRw6w/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLClX9DLvQV8BRMVhd8Y5ZMba6ivaw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 months ago"), + view_count: Some(25894), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "R2fw2g6WFbg", + title: "EEVblog 1477 - TEARDOWN! - NEW Tektronix 2 Series Oscilloscope", + length: Some(2718), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/R2fw2g6WFbg/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBwd6wqvFI0HcPpOkDW_XDzWSPH_w", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/R2fw2g6WFbg/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDuoKzNwygQX0_ilJIpfo3U36mtxQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/R2fw2g6WFbg/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBSHLSMeSK7A61DxrsipNANcnBXxQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/R2fw2g6WFbg/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCxrR2pNosEHIy_xxC5tp7v2w2tPw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 months ago"), + view_count: Some(80173), + is_live: false, + is_short: false, + ), + ], + ctoken: Some("4qmFsgKrARIYVUMyRGpGRTdYZjExVVJacVdCaWdjVk9RGmBFZ1oyYVdSbGIzTVlBeUFBTUFFNEFlb0RNRVZuYjBsMVMzWlpPVXREWWw5TVRraExSRWwzUVZSblpWRm5kMGx3ZFVOMGJWRlpVVjlOUjA1d2QwcEpRVlpCUVElM0QlM0SaAixicm93c2UtZmVlZFVDMkRqRkU3WGYxMVVSWnFXQmlnY1ZPUXZpZGVvczEwMg%3D%3D"), + ), +) diff --git a/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_empty.snap b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_empty.snap new file mode 100644 index 0000000..c6b91b5 --- /dev/null +++ b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_empty.snap @@ -0,0 +1,37 @@ +--- +source: src/client/channel.rs +expression: map_res.c +--- +Channel( + id: "UCxBa895m48H5idw5li7h-0g", + name: "Sebastian Figurroa", + subscriber_count: None, + avatar: [ + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu_hsZ1XlUXHzXsGNHJw0np79WhWZcC4j8eFdy-tiUCDBKAjJyJOzE5kXFRiqL2S=s48-c-k-c0x00ffffff-no-rj", + width: 48, + height: 48, + ), + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu_hsZ1XlUXHzXsGNHJw0np79WhWZcC4j8eFdy-tiUCDBKAjJyJOzE5kXFRiqL2S=s88-c-k-c0x00ffffff-no-rj", + width: 88, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu_hsZ1XlUXHzXsGNHJw0np79WhWZcC4j8eFdy-tiUCDBKAjJyJOzE5kXFRiqL2S=s176-c-k-c0x00ffffff-no-rj", + width: 176, + height: 176, + ), + ], + description: "", + tags: [], + vanity_url: None, + banner: [], + mobile_banner: [], + tv_banner: [], + content: Paginator( + count: Some(0), + items: [], + ctoken: None, + ), +) diff --git a/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_live.snap b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_live.snap new file mode 100644 index 0000000..e8a5aac --- /dev/null +++ b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_live.snap @@ -0,0 +1,806 @@ +--- +source: src/client/channel.rs +expression: map_res.c +--- +Channel( + id: "UChs0pSaEoNLV4mevBFGaoKA", + name: "The Good Life Radio x Sensual Musique", + subscriber_count: Some(760000), + avatar: [ + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu_V9mOdHaorjNFqGXCecFeOBZhDWB8tVYG_I8gJwA=s48-c-k-c0x00ffffff-no-rj", + width: 48, + height: 48, + ), + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu_V9mOdHaorjNFqGXCecFeOBZhDWB8tVYG_I8gJwA=s88-c-k-c0x00ffffff-no-rj", + width: 88, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/ytc/AMLnZu_V9mOdHaorjNFqGXCecFeOBZhDWB8tVYG_I8gJwA=s176-c-k-c0x00ffffff-no-rj", + width: 176, + height: 176, + ), + ], + description: "Welcome to The Good Life by Sensual Musique.\nThe second official channel of Sensual Musique. You can find a lot of music, live streams and some other things on this channel. Stay tuned :)\n\nSubmit your music here: submit.sensualmusiquenetwork@gmail.com", + tags: [ + "live radio", + "live stream", + "live radio", + "the good life radio", + "chill radio", + "chill music", + "chill-out music", + "music", + "live music", + "deep house", + "tropical house", + "house music", + ], + vanity_url: Some("https://www.youtube.com/c/TheGoodLiferadio"), + banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w1060-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1060, + height: 175, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w1138-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1138, + height: 188, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w1707-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1707, + height: 283, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w2120-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2120, + height: 351, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w2276-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2276, + height: 377, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2560, + height: 424, + ), + ], + mobile_banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w320-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 320, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w640-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 640, + height: 175, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w960-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 960, + height: 263, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w1280-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 1280, + height: 351, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w1440-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 1440, + height: 395, + ), + ], + tv_banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w320-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 320, + height: 180, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w854-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 854, + height: 480, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w1280-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 1280, + height: 720, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w1920-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 1920, + height: 1080, + ), + Thumbnail( + url: "https://yt3.ggpht.com/fL4x31Q80O_BvnhVIMI9YlV3apsiFvBENwGiSA-Hw9An6djAGw92RSOFax6z2r_rJNbRWPMA=w2120-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 2120, + height: 1192, + ), + ], + content: Paginator( + count: Some(21), + items: [ + ChannelVideo( + id: "csP93FGy0bs", + title: "Chill Out Music Mix • 24/7 Live Radio | Relaxing Deep House, Chillout Lounge, Vocal & Instrumental", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/csP93FGy0bs/hqdefault_live.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDq5TEpXIGH_OHZhn2_Jx7lp2kMUQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/csP93FGy0bs/hqdefault_live.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLC9qL4JVwhDYjLBx6SvJHk6W92nqw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/csP93FGy0bs/hqdefault_live.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB4ocU3LUEK0_pKLnGDc4VktaxXiQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/csP93FGy0bs/hqdefault_live.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCXgkgVSHFrMa8V8N5v2UjWO28hsA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: None, + view_count: Some(94), + is_live: true, + is_short: false, + ), + ChannelVideo( + id: "19hKXI1ENrY", + title: "Deep House Radio | Relaxing & Chill House, Best Summer Mix 2022, Gym & Workout Music", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/19hKXI1ENrY/hqdefault_live.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAmi9jgARxMYdZpIOLw5RhQkRx0Dg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/19hKXI1ENrY/hqdefault_live.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBsgHDcgMqq7QY7EzTfkqRlgQnctQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/19hKXI1ENrY/hqdefault_live.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBUlUVC0PKWdLgAIuM-plZNXvLCpw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/19hKXI1ENrY/hqdefault_live.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDKTKtHa8U33nGE3z90NHdw1hg0gA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: None, + view_count: Some(381), + is_live: true, + is_short: false, + ), + ChannelVideo( + id: "CqMUC5eXX7c", + title: "Back To School / Work 📚 Deep Focus Chillout Mix | The Good Life Radio #4", + length: Some(4667), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/CqMUC5eXX7c/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDJglNaF89w0KFxzGn4Y3UAwu9ydg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/CqMUC5eXX7c/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBUInjw2qHf7fffZFisSpebAZx4ZQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/CqMUC5eXX7c/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLChdljUBQgZrwYI4X1iHOFLqJFleg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/CqMUC5eXX7c/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCP-eLq1BjkztFjdvT9oDC28CQ0Ig", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 year ago"), + view_count: Some(241528), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "A77SYlXKQEM", + title: "Chillout Lounge 🏖\u{fe0f} Calm & Relaxing Background Music | The Good Life Radio #3", + length: Some(1861), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/A77SYlXKQEM/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLA6c0iWB5IjXrbncP1JT2gvljTwyw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/A77SYlXKQEM/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLC57WRX_9Q-NbZJM8BbSY4_exA-0w", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/A77SYlXKQEM/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDuYQKcxdJYJ70wktFpQ6PNLre4Kg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/A77SYlXKQEM/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC5AR1BxL-OKSWyAbDtVM1-riWmBA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 year ago"), + view_count: Some(118351), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "72vkRHQfjbk", + title: "Summer Lovers 💖 A Beautiful & Relaxing Chillout Deep House Mix | The Good Life Radio #2", + length: Some(1832), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/72vkRHQfjbk/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBBMAUBpqHTq2IalWplaJugEhf4eQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/72vkRHQfjbk/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAUuACBQx4vbQhbtGEDOZp0L_pYOw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/72vkRHQfjbk/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBsPzh5wHVrjbNpIPuxd0ZR5B5WUQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/72vkRHQfjbk/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBp4U-iN5-c9Y8F_8ojMY1RAyM9sg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 year ago"), + view_count: Some(157971), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "AMWMDhibROw", + title: "Relaxing & Chill House 🌴 Summer \'21 Chill-Out Mix | The Good Life Radio #1", + length: Some(1949), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/AMWMDhibROw/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCDO-i7ZMHpgILmTxjIvtFEDl3fTQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/AMWMDhibROw/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAALFU5VLgPrCUeKWmZXTACCGwoLw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/AMWMDhibROw/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLD_vOVH7ergjvzgGATU_PotDMRtRQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/AMWMDhibROw/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBZL8jux8zUDLrO428C6ZPzb5eppg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 year ago"), + view_count: Some(82309), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "9UMxZofMNbA", + title: "Chillout Lounge - Calm & Relaxing Background Music | Study, Work, Sleep, Meditation, Chill", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/9UMxZofMNbA/hqdefault_live.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDc3KEjaAI_syibPmnpLN04x1Wv7g", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/9UMxZofMNbA/hqdefault_live.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDRgMqXrbV8u8WDQzqiod2XONVyCA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/9UMxZofMNbA/hqdefault_live.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAdp0PT_vctOHl9kJI9M3GSTnvtgA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/9UMxZofMNbA/hqdefault_live.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBwEl5g33rTRmvNLPTnYs9F8Tf0pg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: None, + view_count: Some(2043), + is_live: true, + is_short: false, + ), + ChannelVideo( + id: "a2sEYVwBvX4", + title: "Paratone - Heaven Is A Place On Earth (feat. kaii)", + length: Some(161), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/a2sEYVwBvX4/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBwBX3CEEc3ZK1SsP8iUbebtp5hUw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/a2sEYVwBvX4/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCl_B8hp9iizLS28rJFG081PUwW_Q", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/a2sEYVwBvX4/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBUNlxWkdbMF_RwjZBztehCB73kvQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/a2sEYVwBvX4/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAwp0X-W_JovMyp4-2YhCrqv3kpTg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(186475), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "JAY-prtJnGY", + title: "Joseph Feinstein - Where I Belong", + length: Some(126), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/JAY-prtJnGY/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLC79uFNaKWCm0lQ8_uxV0s2G0jJ-Q", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/JAY-prtJnGY/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLD5zFzigEu4lYRH-DU8QZOoGYqtSQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/JAY-prtJnGY/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB2WhmMwj0Z5E-MYsyCcCBgYHYk-A", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/JAY-prtJnGY/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCl8HeilZsI4BEpGzgXezAcrNf6_w", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(66425), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "DySa8OrQDi4", + title: "LA Vision & Gigi D\'Agostino - Hollywood", + length: Some(200), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/DySa8OrQDi4/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAzPj5ZqrnaLQELc8EDtgLlUhDdRQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/DySa8OrQDi4/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCyVpPBISgyCbQofRmZ00ayOAdR7g", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/DySa8OrQDi4/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBSUtrS1H9zmYCwWVtpvNJs5YDFgA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/DySa8OrQDi4/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAYq82JCAfQGWw72Y5uD5c4FqGzng", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(1520020), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "NqzXULaB8MA", + title: "LO - Home", + length: Some(163), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/NqzXULaB8MA/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDFvB5JbSQIUtb-pldtNWWHb2Y3SQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/NqzXULaB8MA/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAkMv60hZgnUzX6BPy439JVlC4qYA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/NqzXULaB8MA/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLC_RMNhjVIE9uIoL2eUsCsgqz4osA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/NqzXULaB8MA/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCvzbfRApS7SCw-mDrXBiOEVSiKng", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(37549), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "UGzy6uhZkmw", + title: "Luca - Sunset", + length: Some(153), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/UGzy6uhZkmw/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLD93d5foF1_yGd6ej5_8t-PM7ZCDw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/UGzy6uhZkmw/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCqscP2y4jsbU5WUo8QcEVtcojQRQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/UGzy6uhZkmw/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBicCc5-9Cn7cyhzQXWRh-U1osFZw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/UGzy6uhZkmw/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLClbjl9Zl8eWI-_QGEoaA6H2a-dRg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(33002), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "iuvapHKpW8A", + title: "nourii - Better Off (feat. BCS)", + length: Some(126), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/iuvapHKpW8A/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCsDj4nWrDpmF-BTY_9REtx8xiHjA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/iuvapHKpW8A/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAEqlsR_ujvaxo3po2UvHw10YpR4A", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/iuvapHKpW8A/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDL9vVk4L_OaiKxI_gT558zR108ow", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/iuvapHKpW8A/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLANK0ZOm-_hUACCRFBKHBgtcLCNMw", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(42036), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "n_1Nwht-Gh4", + title: "Deep House Covers & Remixes of Popular Songs 2020 🌴 Deep House, G-House, Chill-Out Music Playlist", + length: Some(2940), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/n_1Nwht-Gh4/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAwRnMWNt4fNmmGR4THSsTh-9MiCw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/n_1Nwht-Gh4/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDFFVRUt-yQgt_-FWViG8gNyEet1g", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/n_1Nwht-Gh4/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCX7K2IMIJWSXr6yvcwqo2cte7kWw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/n_1Nwht-Gh4/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDwJpjOiz8CUrGyd1SFGcwj_sSGNg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(322935), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "6TptI5BtP5U", + title: "The Good Life Radio Mix #2 | Summer Memories ☀\u{fe0f} (Chill Music Playlist 2020)", + length: Some(3448), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/6TptI5BtP5U/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBGvxAmGVff9uk5AOxBij56uB6azw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/6TptI5BtP5U/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCbAAXy7HAh6VkQdPvO4wm4pR7RQA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/6TptI5BtP5U/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB238nXmpbUcIcVEPy1uGwcJEvMuw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/6TptI5BtP5U/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLANSe4a_jtstlVxx5-rkIOvbmuR8g", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(91980), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "36YnV9STBqc", + title: "The Good Life Radio\u{a0}•\u{a0}24/7 Live Radio | Best Relax House, Chillout, Study, Running, Gym, Happy Music", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/36YnV9STBqc/hqdefault_live.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCe7OwcMt2h8bSNHbTTULV9-SST1Q", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/36YnV9STBqc/hqdefault_live.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAkzzBY_o86Nn0PbJftRE2t2NcUfQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/36YnV9STBqc/hqdefault_live.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBzzuLLFgJ072fAxz3yaAzkmnwJWA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/36YnV9STBqc/hqdefault_live.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAeyiCUWTnj3nPmf80TIrS5zu9__g", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: None, + view_count: Some(4030), + is_live: true, + is_short: false, + ), + ChannelVideo( + id: "7x6ii2TcsPE", + title: "The Good Life Radio Mix #1 | Relaxing & Chill House Music Playlist 2020", + length: Some(2726), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/7x6ii2TcsPE/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLC-CNpKCSMnLIscrYKNPX7DRZ0buA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7x6ii2TcsPE/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBzsfvaKcxkUInkuC4effHqf5E3HA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7x6ii2TcsPE/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAJLHolRQLl2mVsHhWMPTNeVbNQMg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/7x6ii2TcsPE/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBSDc5C90T2SYrmMhqddmiKaGPAiA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(288098), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "mxV5MBZYYDE", + title: "Christmas Music with Vocals 🎅 Best Relaxing Christmas Songs 2020", + length: Some(5863), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/mxV5MBZYYDE/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCVUbM3MtN0zZcE_8lY4eyo-Ly5Kw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/mxV5MBZYYDE/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBajcqiVFnWHZXTBBO4Dzq-gDYDyg", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/mxV5MBZYYDE/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDbHzxHH7a4tjvIhH9DB3FYwihiyQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/mxV5MBZYYDE/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLD7NMECi-qMT4a_6fg9cOrc1C3-Ng", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(50818), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "hh2AOoPoAIo", + title: "The Good Life Radio Mix 2019 🎅 Winter & Christmas Relax House Playlist [Best of Part 1]", + length: Some(2530), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/hh2AOoPoAIo/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAMmrbiYHz-7STgazeW2PAuGCkCcg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/hh2AOoPoAIo/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDKterYUnJQ9cm1HL9poDBtZenWXQ", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/hh2AOoPoAIo/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCKoxgX2sbbbLesBvjuOglua7pyPw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/hh2AOoPoAIo/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCsqVhjHSvimVEEflkNZjqkfatEDQ", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 years ago"), + view_count: Some(98431), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "aFlvhtWsJ0g", + title: "Chillout Playlist | Relaxing Summer Music Mix 2019 [Deep & Tropical House]", + length: Some(2483), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/aFlvhtWsJ0g/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAvMC2I82wG7eQPDQmnyC3RbUGFWg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/aFlvhtWsJ0g/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCBvVndf5HiT5-l-kuemFzm8JD3Sg", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/aFlvhtWsJ0g/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAOsKJmf_L47jJyyZssTbb-1adoSw", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/aFlvhtWsJ0g/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBsPLkhBu3g5BDQrs6YiMXhsLbS6Q", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 years ago"), + view_count: Some(572456), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "cD-d7u6fnEI", + title: "Chill House Playlist | Relaxing Summer Music 2019", + length: Some(3165), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/cD-d7u6fnEI/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBU_f1nTElkLg9ic2eKjM6luGgVcw", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/cD-d7u6fnEI/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCguCnp0eiwA3P2rcMehJFYhPYaVA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/cD-d7u6fnEI/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBixvXbxOAuFROr670t_uM1eQr7FA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/cD-d7u6fnEI/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLD0vklW2iG6fJ2aZOop8A7tQswm0g", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 years ago"), + view_count: Some(3114909), + is_live: false, + is_short: false, + ), + ], + ctoken: None, + ), +) diff --git a/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_music.snap b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_music.snap new file mode 100644 index 0000000..18de4b8 --- /dev/null +++ b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_music.snap @@ -0,0 +1,120 @@ +--- +source: src/client/channel.rs +expression: map_res.c +--- +Channel( + id: "UC_vmjW5e1xEHhYjY2a0kK1A", + name: "Oonagh - Topic", + subscriber_count: None, + avatar: [ + Thumbnail( + url: "https://yt3.ggpht.com/pqKv4iqSjmMKPxsMCeyklTbpROSyInGNR4XvD1DqKD0AlROlsHzvoAlTvtMTO1g1x2WxaQ2Enxw=s48-c-k-c0x00ffffff-no-rj", + width: 48, + height: 48, + ), + Thumbnail( + url: "https://yt3.ggpht.com/pqKv4iqSjmMKPxsMCeyklTbpROSyInGNR4XvD1DqKD0AlROlsHzvoAlTvtMTO1g1x2WxaQ2Enxw=s88-c-k-c0x00ffffff-no-rj", + width: 88, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/pqKv4iqSjmMKPxsMCeyklTbpROSyInGNR4XvD1DqKD0AlROlsHzvoAlTvtMTO1g1x2WxaQ2Enxw=s176-c-k-c0x00ffffff-no-rj", + width: 176, + height: 176, + ), + ], + description: "", + tags: [], + vanity_url: None, + banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w1060-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1060, + height: 175, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w1138-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1138, + height: 188, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w1707-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1707, + height: 283, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w2120-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2120, + height: 351, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w2276-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2276, + height: 377, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2560, + height: 424, + ), + ], + mobile_banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w320-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 320, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w640-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 640, + height: 175, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w960-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 960, + height: 263, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w1280-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 1280, + height: 351, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w1440-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 1440, + height: 395, + ), + ], + tv_banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w320-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 320, + height: 180, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w854-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 854, + height: 480, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w1280-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 1280, + height: 720, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w1920-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 1920, + height: 1080, + ), + Thumbnail( + url: "https://yt3.ggpht.com/EDatBjgcL94-qSfQa5Twr8l88hYcAXQJksDrwARWbotrWzJhG03gRyZLKV1mk1a1tMI_LSg4qg=w2120-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 2120, + height: 1192, + ), + ], + content: Paginator( + count: Some(0), + items: [], + ctoken: None, + ), +) diff --git a/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_shorts.snap b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_shorts.snap new file mode 100644 index 0000000..7b22ce9 --- /dev/null +++ b/src/client/snapshots/rustypipe__client__channel__tests__map_channel_videos_shorts.snap @@ -0,0 +1,721 @@ +--- +source: src/client/channel.rs +expression: map_res.c +--- +Channel( + id: "UCh8gHdtzO2tXd593_bjErWg", + name: "Doobydobap", + subscriber_count: Some(2840000), + avatar: [ + Thumbnail( + url: "https://yt3.ggpht.com/dm5Aq93xvVJz0NoVO88ieBkDXmuShCujGPlZ7qETMEPTrXvPUCFI3-BB6Xs_P-r6Uk3mnBy9zA=s48-c-k-c0x00ffffff-no-rj", + width: 48, + height: 48, + ), + Thumbnail( + url: "https://yt3.ggpht.com/dm5Aq93xvVJz0NoVO88ieBkDXmuShCujGPlZ7qETMEPTrXvPUCFI3-BB6Xs_P-r6Uk3mnBy9zA=s88-c-k-c0x00ffffff-no-rj", + width: 88, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/dm5Aq93xvVJz0NoVO88ieBkDXmuShCujGPlZ7qETMEPTrXvPUCFI3-BB6Xs_P-r6Uk3mnBy9zA=s176-c-k-c0x00ffffff-no-rj", + width: 176, + height: 176, + ), + ], + description: "Hi, I’m Tina, aka Doobydobap!\n\nFood is the medium I use to tell stories and connect with people who share the same passion as I do. Whether it’s because you’re hungry at midnight or trying to learn how to cook, I hope you enjoy watching my content and recipes. Don\'t yuck my yum!\n\nwww.doobydobap.com\n", + tags: [], + vanity_url: Some("https://www.youtube.com/c/Doobydobap"), + banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1060-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1060, + height: 175, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1138-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1138, + height: 188, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1707-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 1707, + height: 283, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w2120-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2120, + height: 351, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w2276-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2276, + height: 377, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + width: 2560, + height: 424, + ), + ], + mobile_banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w320-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 320, + height: 88, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w640-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 640, + height: 175, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w960-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 960, + height: 263, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1280-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 1280, + height: 351, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1440-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + width: 1440, + height: 395, + ), + ], + tv_banner: [ + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w320-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 320, + height: 180, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w854-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 854, + height: 480, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1280-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 1280, + height: 720, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1920-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 1920, + height: 1080, + ), + Thumbnail( + url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w2120-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + width: 2120, + height: 1192, + ), + ], + content: Paginator( + count: None, + items: [ + ChannelVideo( + id: "JBUZE0mIlg8", + title: "small but sure joy", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/JBUZE0mIlg8/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLCRBlyIUBUm_aypWz4tGkrDNJxIZw", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 day ago"), + view_count: Some(443549), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "SRrvxFc2b2c", + title: "i don\'t believe in long distance relationships", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/SRrvxFc2b2c/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLA0hJdOfUp-zMI-vW43sYnKgufocA", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 days ago"), + view_count: Some(1154962), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "l9TiwunjzgA", + title: "long distance", + length: Some(1043), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/l9TiwunjzgA/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDjM6SZ7ScyfFRr13QdVmIvWEWWrQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/l9TiwunjzgA/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDmjuvrAkYrdvhuU-Nl8jzx4so9oA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/l9TiwunjzgA/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBJ5ZEDrtK_1oM20uRPmzPjDpUhrQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/l9TiwunjzgA/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCb6F-jiGZ5aYaq7HBh2if85d_t0A", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 days ago"), + view_count: Some(477460), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "cNx0ql9gnf4", + title: "come over :)", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/cNx0ql9gnf4/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLBvAKRZE2LyKIo6_6prX9pzfiWoVw", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("6 days ago"), + view_count: Some(1388173), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "fGQUWI4o__A", + title: "Baskin Robbins in South Korea", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/fGQUWI4o__A/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLDyPuI762qzLAZM0QikxjFKVpoF9w", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("7 days ago"), + view_count: Some(1738301), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "Q73VTjdqVA8", + title: "dry hot pot", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/Q73VTjdqVA8/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLBfJXtFWfAnyMOvaJfvpYJ5WrhbSA", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("9 days ago"), + view_count: Some(1316594), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "pRVSdUxdsVw", + title: "Repairing...", + length: Some(965), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/pRVSdUxdsVw/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAQWneuYcJcccgooBfa3WI4LdYF3w", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/pRVSdUxdsVw/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAO8o5qPYTUPF4yyBLSpYBeE6lMSA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/pRVSdUxdsVw/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLClJOy_nxUK-ACJUduXzk-khvwmpQ", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/pRVSdUxdsVw/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB6k0Egq5r3hNjamUiia-lh-n2EEA", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("10 days ago"), + view_count: Some(478703), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "gTG2WDbiYGo", + title: "time machine", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/gTG2WDbiYGo/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLDw5Lw19mNLJnoIF3aCGkMbxvgILQ", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("11 days ago"), + view_count: Some(1412213), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "y5JK5YFp92g", + title: "tiramissu", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/y5JK5YFp92g/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLCR66ytQIBWWw_ajvgyaUdUawHVIg", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("13 days ago"), + view_count: Some(1513305), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "pvSWHm4wlxY", + title: "having kids", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/pvSWHm4wlxY/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLDt7ZAwQoObfa5A7gC_hJnU1WH4Ug", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 weeks ago"), + view_count: Some(8936223), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "2FJVhdOO0F0", + title: "a health scare", + length: Some(1238), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/2FJVhdOO0F0/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLA5ambaz-euRsB9VG5ANaYFUUSEbg", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/2FJVhdOO0F0/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBAbpE1_Iiqdmwbm_IbUFPxkyjmhg", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/2FJVhdOO0F0/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLCLrwdM2QBdnaFPEpsmMVaAQq3vug", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/2FJVhdOO0F0/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLAccJCJ5-5TLOBSooo4jeojbbfn9A", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 weeks ago"), + view_count: Some(987083), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "CqFGACRrWJE", + title: "just do it", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/CqFGACRrWJE/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLDyAIF4S_foRXsyvq16YCPJWNKewQ", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 weeks ago"), + view_count: Some(2769717), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "CutR_1SDDzY", + title: "feels good to be back", + length: Some(1159), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/CutR_1SDDzY/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLAt413Uk4xhHjYwpLI5-DXuOsFouA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/CutR_1SDDzY/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLDd-m1YaVdVXcUh98FRzstRUn03Pw", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/CutR_1SDDzY/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBHgcMGTg11_LzuQOHo4oAUBtsfKg", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/CutR_1SDDzY/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDZtPA-3fS7BwVhuIHDbusLbw0Dqg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 weeks ago"), + view_count: Some(497660), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "DdGr6t2NqKc", + title: "coming soon", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/DdGr6t2NqKc/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLDRYfxh25EjK3zuOJORNNahxeBanA", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 weeks ago"), + view_count: Some(572107), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "jKS44NMWuXw", + title: "adult money", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/jKS44NMWuXw/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLAIexckdN7FXJUgkeJvITHyzXw1TQ", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 weeks ago"), + view_count: Some(1707132), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "kx1YtJM_vbI", + title: "a fig\'s journey", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/kx1YtJM_vbI/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLAi03nhSbt84LL7PFD2ij8GmaDlLQ", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("3 weeks ago"), + view_count: Some(933094), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "Sdbzs-1WWH0", + title: "How to.. Mozzarella 🧀", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/Sdbzs-1WWH0/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLC8IkwAif4wXhBGxHiosiILbPCSBw", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(5985184), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "9qBHyJIDous", + title: "how to drink like a real korean", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/9qBHyJIDous/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLB9Ib_E0siDiRMZ_GVHVxBfMd0Dkw", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(14741387), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "mBeFDb4gp8s", + title: "mr. krabs soup", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/mBeFDb4gp8s/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLCzAPzv16WTJLr4ma-sAz6fNkFL0g", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(2511322), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "b38r1UYqoBQ", + title: "in five years", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/b38r1UYqoBQ/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLCGB9IpC2Enx5iZ-YCl0vEpMGpo9A", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(2364408), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "KUz7oArksR4", + title: "running away", + length: Some(1023), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/KUz7oArksR4/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLD1NwuIgJuJy2oPAiHqMre6rbcuPA", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/KUz7oArksR4/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBW8VcMIUoAKbd8tNzfO1KmmZp9eA", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/KUz7oArksR4/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLDr9DmdJzOC9_PIqkx2GO7xol_2vA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/KUz7oArksR4/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLABH3-3faYHCYhoZUFbOey9w3HD2w", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(706059), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "RdFk4WaifEo", + title: "a weeknight dinner", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/RdFk4WaifEo/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLBlKLBjBagaTQj24nYb-HkCQQcWHA", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(1947627), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "GuyGyzZcumI", + title: "McDonald\'s Michelin Burger", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/GuyGyzZcumI/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLDtmyilZAgMw8VWNy518etIKi4phA", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(4763839), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "07Zipsb3-qU", + title: "cwispy potato pancake", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/07Zipsb3-qU/hq720_2.jpg?sqp=-oaymwEdCJYDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLARXBTZlNStCVemXSkHfAWksRogng", + width: 406, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(1915695), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "3kaePnU6Clo", + title: "authenticity is overrated", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/3kaePnU6Clo/hq720_2.jpg?sqp=-oaymwEdCJYDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLDq0MY9dsMvr9Y6yaJ7069fgtdpGA", + width: 406, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(7268944), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "rt4rXMftnpg", + title: "you can kimchi anything (T&C applies)", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/rt4rXMftnpg/hq720_2.jpg?sqp=-oaymwEdCJUDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLC7WfSTGHkH2FEmn9gQ5E4AqpRtug", + width: 405, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("1 month ago"), + view_count: Some(2539103), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "DTyLUvbf128", + title: "egg, soy, and perfect pot rice", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/DTyLUvbf128/hq720_2.jpg?sqp=-oaymwEdCJYDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLAN1AtPya1D1NyiO0XYKOjIZIyhhQ", + width: 406, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(5545680), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "DzjLBgIe_aI", + title: "love language", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/DzjLBgIe_aI/hq720_2.jpg?sqp=-oaymwEdCJYDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLDWVkrYrt64LvvxrMRfs29g_lGrNw", + width: 406, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(2202314), + is_live: false, + is_short: true, + ), + ChannelVideo( + id: "sPb2gyN-hnE", + title: "worth fighting for", + length: Some(1232), + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/sPb2gyN-hnE/hqdefault.jpg?sqp=-oaymwEbCKgBEF5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLBidXnS47SJMkvOlqt2DgzHxr6wKQ", + width: 168, + height: 94, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/sPb2gyN-hnE/hqdefault.jpg?sqp=-oaymwEbCMQBEG5IVfKriqkDDggBFQAAiEIYAXABwAEG&rs=AOn4CLCOxYF8A5DQVdZHh5O1vAdK-1qH1g", + width: 196, + height: 110, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/sPb2gyN-hnE/hqdefault.jpg?sqp=-oaymwEcCPYBEIoBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLBhQ9ZJs0bgGqdGb8t26tbjtmIKWA", + width: 246, + height: 138, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/sPb2gyN-hnE/hqdefault.jpg?sqp=-oaymwEcCNACELwBSFXyq4qpAw4IARUAAIhCGAFwAcABBg==&rs=AOn4CLB35l1byuqA4pkl2SzE8Cr0vmPVGg", + width: 336, + height: 188, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(613416), + is_live: false, + is_short: false, + ), + ChannelVideo( + id: "9JboRKeJ2m4", + title: "Rating Italian McDonald\'s", + length: None, + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/9JboRKeJ2m4/hq720_2.jpg?sqp=-oaymwEdCJYDENAFSFXyq4qpAw8IARUAAIhCcAHAAQbQAQE=&rs=AOn4CLC7xktrbnAqJq2nHH9aDggULsb3Cg", + width: 406, + height: 720, + ), + ], + publish_date: "[date]", + publish_date_txt: Some("2 months ago"), + view_count: Some(6443699), + is_live: false, + is_short: true, + ), + ], + ctoken: Some("4qmFsgKrARIYVUNoOGdIZHR6TzJ0WGQ1OTNfYmpFcldnGmBFZ1oyYVdSbGIzTVlBeUFBTUFFNEFlb0RNRVZuYzBrM2NsTnVkazF4U1hWemRqQkJVMmQ1VFVGRk5FaHJTVXhEVUhac2NscHJSMFZKWVhWd016RkpRVlpCUVElM0QlM0SaAixicm93c2UtZmVlZFVDaDhnSGR0ek8ydFhkNTkzX2JqRXJXZ3ZpZGVvczEwMg%3D%3D"), + ), +) diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_comments_latest.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_comments_latest.snap index cacb1f7..7da2bd1 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_comments_latest.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_comments_latest.snap @@ -14,7 +14,7 @@ Paginator( Text("🏻"), Text("💗"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCKv2ITDFlBf8sCaM4bGAq9w", name: "rüyaabiee", avatar: [ @@ -55,7 +55,7 @@ Paginator( text: RichText([ Text("Mys, spotify wraps comes in a few months..so start str3ming Aespa all songs on spotify."), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCpO0iV02gvz1zY0xaEip-Lw", name: "Ashdeep Sidashi", avatar: [ @@ -97,7 +97,7 @@ Paginator( Text("Cerita black mamba kan udah tutup buku. Kira2 nanti konsep comebacknya apa yaa? "), Text("😍"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC8Uu90kmT1uBXMuylOe5F2g", name: "Ini Aku", avatar: [ @@ -142,7 +142,7 @@ Paginator( Text("\n"), Text("👇"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCKBVxnCV35xZ9Oe1U6DLENQ", name: "Brian Kenneth", avatar: [ @@ -183,7 +183,7 @@ Paginator( text: RichText([ Text("Love this song so much"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCsJS5T1NM3Ra7HLmiPjxeGg", name: "milky way", avatar: [ @@ -224,7 +224,7 @@ Paginator( text: RichText([ Text("They are the background of our karaoke"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCh6Qqw1NFPNi6l7kfU1b4PA", name: "ae 💜", avatar: [ @@ -265,7 +265,7 @@ Paginator( text: RichText([ Text("AESPA"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCh6Qqw1NFPNi6l7kfU1b4PA", name: "ae 💜", avatar: [ @@ -306,7 +306,7 @@ Paginator( text: RichText([ Text("AVATAR EXPERIENCE ASPECT"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCh6Qqw1NFPNi6l7kfU1b4PA", name: "ae 💜", avatar: [ @@ -347,7 +347,7 @@ Paginator( text: RichText([ Text("HEIHH!!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCgTOQ5KTAurWso9Hw2IGVow", name: "WinterMyUniverse", avatar: [ @@ -388,7 +388,7 @@ Paginator( text: RichText([ Text("Road to 234M!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCuTNUUpUzXVljMSEy1YooZw", name: "The Ultimate 1", avatar: [ @@ -429,7 +429,7 @@ Paginator( text: RichText([ Text("Happy 4m likes!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCbfj_QOoelszMm1JlXpY7nw", name: "Sim Layla", avatar: [ @@ -470,7 +470,7 @@ Paginator( text: RichText([ Text("MY\'s and aespa go fighting!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCh6Qqw1NFPNi6l7kfU1b4PA", name: "ae 💜", avatar: [ @@ -511,7 +511,7 @@ Paginator( text: RichText([ Text("I hope they bring back this colorful set for the next comeback"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCh6Qqw1NFPNi6l7kfU1b4PA", name: "ae 💜", avatar: [ @@ -552,7 +552,7 @@ Paginator( text: RichText([ Text("Keep str3aming MY\'s"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCh6Qqw1NFPNi6l7kfU1b4PA", name: "ae 💜", avatar: [ @@ -593,7 +593,7 @@ Paginator( text: RichText([ Text("Ji-min-jeong Cross!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCh6Qqw1NFPNi6l7kfU1b4PA", name: "ae 💜", avatar: [ @@ -634,7 +634,7 @@ Paginator( text: RichText([ Text("BEST DEBUT EVER !!!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC-wGUUnJO1gTAw011kCGwfQ", name: "darkangel", avatar: [ @@ -675,7 +675,7 @@ Paginator( text: RichText([ Text("เพลงโครตน\u{e48}าเบ\u{e37}\u{e48}อ ด\u{e35}แค\u{e48} cg"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCE7UmaNfXFkZ8iO8SZnx1_g", name: "Hopi your", avatar: [ @@ -716,7 +716,7 @@ Paginator( text: RichText([ Text("233230"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCTV1SSSkB8Rr9Y5pD1tN8eA", name: "Agus Sudrajat", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_comments_top.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_comments_top.snap index d9bacf1..55e4431 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_comments_top.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_comments_top.snap @@ -13,7 +13,7 @@ Paginator( Text("\n"), Text("👇"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC--QwZHg12dkw8UKw5yB1MQ", name: "Agalla, Andre", avatar: [ @@ -54,7 +54,7 @@ Paginator( text: RichText([ Text("Chicas vamos por los 300M, démosle a todas esas haters chorrillo masivo fulminante de la envidia. Vamos, Mys puede a llegar a ser poderoso si nos unimos. Vamos por los 300M solo nos falta poco para llegar!!!!!!! Vamos Mys, alcemos nuestro teléfonos y brindemos por lo que puede hacer las Mys por Aespa"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCqT9iACjb69o254SFlUjcDQ", name: "Camila paz", avatar: [ @@ -95,7 +95,7 @@ Paginator( text: RichText([ Text("The best 4th gen group debut for me. Camerawork, artistic value, choreography, concept, make up and styling, this one nailed ALL."), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC00F5JjCjDDum6MlP3eloxw", name: "The Charging Knight of Amarapura", avatar: [ @@ -136,7 +136,7 @@ Paginator( text: RichText([ Text("Black Manba o MV mais icônico do aespa amooooi"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCbfGo61YSYOlfyF1cWejhng", name: "Kim Jamily Sun", avatar: [ @@ -177,7 +177,7 @@ Paginator( text: RichText([ Text("MYs if we want to make Black Mamba the most debut MV for 4th gen- let us keep on strêaming. Consistency is the key."), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCITMz9SiXQrV-cltI-9Auuw", name: "Stream Girls, Savage, Next Level and Black Mamba", avatar: [ @@ -223,7 +223,7 @@ Paginator( Text("\n"), Text("(ps. Winter is my love <3)"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCDaOL1lsanMlpbzaQunz47Q", name: "ehe", avatar: [ @@ -270,7 +270,7 @@ Paginator( Text("\n"), Text("Forever, Dreams come true --> 50 M"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC2P4Zx1o4D3VQIjA_MIToQQ", name: "edits&fun", avatar: [ @@ -311,7 +311,7 @@ Paginator( text: RichText([ Text("Logremos más de 250M Antes de que se termine el año ♡"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC5cxR3XtdfVR_XT3sfIKdNg", name: "Black mamba 🐍💜", avatar: [ @@ -352,7 +352,7 @@ Paginator( text: RichText([ Text("Llevemos está Masterpiece a los 300M!! ಥ‿ಥ♡ Don\'t stop My, 230M soon"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC5cxR3XtdfVR_XT3sfIKdNg", name: "Black mamba 🐍💜", avatar: [ @@ -393,7 +393,7 @@ Paginator( text: RichText([ Text("Keep streaming my\'s let\'s reach 300 million views before aespa\'s full album comeback."), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCfQOeizIiPTG3hgKa-6MOeA", name: "K-POP", avatar: [ @@ -436,7 +436,7 @@ Paginator( Text("\n"), Text("Vamos que si se puede"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCgRWbRJqUHCvWv6xOuB4few", name: "Karina González", avatar: [ @@ -477,7 +477,7 @@ Paginator( text: RichText([ Text("DENLE LIKE AL MV Q FALTA POCO PARA LOS 4M DE LIKES ¡!¡!¡"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCBqR9kJhtiHLE6dP-Oo_DMQ", name: "yujiminemo", avatar: [ @@ -518,7 +518,7 @@ Paginator( text: RichText([ Text("146 millones vamos por 147 millones si se puede vamos a por mas GO"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCjbUNOs6PAAAAo3_feDwLQA", name: "OLIVER79K", avatar: [ @@ -559,7 +559,7 @@ Paginator( text: RichText([ Text("Best MV debut for this gen!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCjXq-4-e-OKn1S3SB52wHRQ", name: "viclusiv", avatar: [ @@ -600,7 +600,7 @@ Paginator( text: RichText([ Text("Ya es 2022 y aún no superó este M/V, stream mys para los 300M!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCwan9APGANDUfYdYBbU6OeQ", name: "mynlemus", avatar: [ @@ -641,7 +641,7 @@ Paginator( text: RichText([ Text("I get goosebump every single time it comes to NingNing’s high note. Baby you’re amazingggg"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC3IEDx0AQiUOP8FtC_MlyFQ", name: "Yến Anh", avatar: [ @@ -682,7 +682,7 @@ Paginator( text: RichText([ Text("This is still the best K-pop debut <3 MYS LETS STREAM HARD FOR GIRLS"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UC2vbH7mtFRTiPGLRt9l_OSw", name: "Flavia", avatar: [ @@ -723,7 +723,7 @@ Paginator( text: RichText([ Text("Don\'t be shy SM Entertainment! Give the girls another legendary comeback!"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCWgL2cewcYnsIqwN1tMikJg", name: "⇮ æluvieyou ⇮", avatar: [ @@ -764,7 +764,7 @@ Paginator( text: RichText([ Text("aespa\'s debut song is really powerful. I\'ve been listening to this song many times since its release. But, the energy the song is sending me is just as powerful"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCN4tkZuSBXlZ5b9E8CETBUw", name: "MYSoneluvie", avatar: [ @@ -807,7 +807,7 @@ Paginator( Text("🔥"), Text("💎"), ]), - author: Some(Channel( + author: Some(ChannelTag( id: "UCoU9ZmBOV-CB2Mjl_JM3-ZA", name: "Melodies_Memory of exy", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_recommendations.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_recommendations.snap index f9c961c..ba7fa99 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_recommendations.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_recommendations.snap @@ -21,7 +21,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -55,7 +55,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCYDmx2Sfpnaxg488yBpZIGg", name: "starshipTV", avatar: [ @@ -89,7 +89,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC_pwIXKXNm5KGhdEVzmY60A", name: "Stone Music Entertainment", avatar: [ @@ -123,7 +123,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCS_hnpJLQTvBkqALgapi_4g", name: "스브스케이팝 X INKIGAYO", avatar: [ @@ -157,7 +157,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC9GtSLeksfK4yuJ_g1lgQbg", name: "aespa", avatar: [ @@ -191,7 +191,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -225,7 +225,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -259,7 +259,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCOmHUn--16B90oW2L6FRR3A", name: "BLACKPINK", avatar: [ @@ -293,7 +293,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC9GtSLeksfK4yuJ_g1lgQbg", name: "aespa", avatar: [ @@ -327,7 +327,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCritGVo7pLJLUS8wEu32vow", name: "(G)I-DLE (여자)아이들 (Official YouTube Channel)", avatar: [ @@ -361,7 +361,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -395,7 +395,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -429,7 +429,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -463,7 +463,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -497,7 +497,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -531,7 +531,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC9GtSLeksfK4yuJ_g1lgQbg", name: "aespa", avatar: [ @@ -565,7 +565,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCOmHUn--16B90oW2L6FRR3A", name: "BLACKPINK", avatar: [ @@ -599,7 +599,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCuhAUMLzJxlP1W7mEk0_6lA", name: "MAMAMOO", avatar: [ @@ -633,7 +633,7 @@ Paginator( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_agegate.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_agegate.snap index 92f26f4..f7eaadb 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_agegate.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_agegate.snap @@ -6,7 +6,7 @@ VideoDetails( id: "HRKu0cvrr_o", title: "AlphaOmegaSin Fanboy Logic: Likes/Dislikes Disabled = Point Invalid Lol wtf?", description: RichText([]), - channel: Channel( + channel: ChannelTag( id: "UCQT2yul0lr6Ie9qNQNmw-sg", name: "PrinceOfFALLEN", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_ccommons.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_ccommons.snap index b1d5e1f..2e89009 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_ccommons.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_ccommons.snap @@ -18,7 +18,7 @@ VideoDetails( Text("\n\n"), Text("#36C3"), ]), - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -67,7 +67,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -101,7 +101,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCBWSgdr27NcLig0XzWLq2gQ", name: "MISS-VERSTEHEN SIE MICH RICHTIG", avatar: [ @@ -135,7 +135,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -169,7 +169,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -203,7 +203,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -237,7 +237,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -271,7 +271,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -305,7 +305,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -339,7 +339,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCvZLsBb-8Og4FvBUom9zPHQ", name: "Universität Bayreuth", avatar: [ @@ -373,7 +373,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -407,7 +407,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -441,7 +441,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -475,7 +475,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCLLibJTCy3sXjHLVaDimnpQ", name: "ARTEde", avatar: [ @@ -509,7 +509,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -543,7 +543,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -577,7 +577,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -611,7 +611,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ @@ -645,7 +645,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCeO-zvUfuEdPMDoNST6hy1A", name: "Killuminati ∆", avatar: [ @@ -679,7 +679,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2TXq_t06Hjdr2g_KdKpHQg", name: "media.ccc.de", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_chapters.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_chapters.snap index d23788a..8096dea 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_chapters.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_chapters.snap @@ -229,7 +229,7 @@ VideoDetails( ), Text(" Conclusion"), ]), - channel: Channel( + channel: ChannelTag( id: "UCXuqSBlHAE6Xw-yeJA0Tunw", name: "Linus Tech Tips", avatar: [ @@ -503,7 +503,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCXuqSBlHAE6Xw-yeJA0Tunw", name: "Linus Tech Tips", avatar: [ @@ -537,7 +537,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCXuqSBlHAE6Xw-yeJA0Tunw", name: "Linus Tech Tips", avatar: [ @@ -571,7 +571,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCdBK94H6oZT2Q7l0-b0xmMg", name: "ShortCircuit", avatar: [ @@ -605,7 +605,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC7Jwj9fkrf1adN4fMmTkpug", name: "DankPods", avatar: [ @@ -639,7 +639,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCXuqSBlHAE6Xw-yeJA0Tunw", name: "Linus Tech Tips", avatar: [ @@ -673,7 +673,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCKd49wwdEdIoM-7Fumhwmog", name: "Quint BUILDs", avatar: [ @@ -707,7 +707,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEIwxahdLz7bap-VDs9h35A", name: "Steve Mould", avatar: [ @@ -741,7 +741,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCkWQ0gDrqOCarmUKmppD7GQ", name: "JayzTwoCents", avatar: [ @@ -775,7 +775,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UChIZGfcnjHI0DG4nweWEduw", name: "TechSource", avatar: [ @@ -809,7 +809,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVveEFTOd6khhSXXnRhxJmg", name: "Fireball Tool", avatar: [ @@ -843,7 +843,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCq1Oqk1I7zeYlDiJTFWLoFA", name: "Electric Classic Cars", avatar: [ @@ -877,7 +877,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCvJJ_dzjViJCoLf5uKUTwoA", name: "CNBC", avatar: [ @@ -911,7 +911,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCMiJRAwDNSNzuYeN2uWa0pA", name: "Mrwhosetheboss", avatar: [ @@ -945,7 +945,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC_SLthyNX_ivd-dmsFgmJVg", name: "Jeremy Fielding", avatar: [ @@ -979,7 +979,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCXuqSBlHAE6Xw-yeJA0Tunw", name: "Linus Tech Tips", avatar: [ @@ -1013,7 +1013,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCupQghOyPai8Hxg4RqMERvA", name: "incT", avatar: [ @@ -1047,7 +1047,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCXuqSBlHAE6Xw-yeJA0Tunw", name: "Linus Tech Tips", avatar: [ @@ -1081,7 +1081,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCXuqSBlHAE6Xw-yeJA0Tunw", name: "Linus Tech Tips", avatar: [ @@ -1115,7 +1115,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCYmna5rFHIesFteksAvFOfg", name: "Dr. Plants", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_live.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_live.snap index 23a698a..92390a3 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_live.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_live.snap @@ -38,7 +38,7 @@ VideoDetails( url: "http://incompetech.com/music/royalty-free/", ), ]), - channel: Channel( + channel: ChannelTag( id: "UCakgsb0w7QB0VHdnCc-OVEA", name: "Space Videos", avatar: [ @@ -87,7 +87,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC_sXrcURB-Dh4az_FveeQ0Q", name: "DOCUMENTARY TUBE", avatar: [ @@ -121,7 +121,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCakgsb0w7QB0VHdnCc-OVEA", name: "Space Videos", avatar: [ @@ -155,7 +155,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCZepiiyNNbD2XL5sWnJBC_A", name: "Videotizer", avatar: [ @@ -189,7 +189,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCNrGOnduIS9BXIRmDcHasZA", name: "WorldCam", avatar: [ @@ -223,7 +223,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCelk6aHijZq-GJBBB9YpReA", name: "BBC News عربي", avatar: [ @@ -257,7 +257,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC_sXrcURB-Dh4az_FveeQ0Q", name: "DOCUMENTARY TUBE", avatar: [ @@ -291,7 +291,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCj-Xm8j6WBgKY8OG7s9r2vQ", name: "RailCowGirl", avatar: [ @@ -325,7 +325,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCR9sFzaG9Ia_kXJhfxtFMBA", name: "melodysheep", avatar: [ @@ -359,7 +359,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCakgsb0w7QB0VHdnCc-OVEA", name: "Space Videos", avatar: [ @@ -393,7 +393,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCRI_rCIV69l-PmT3oyD64kw", name: "Afraz Explores", avatar: [ @@ -427,7 +427,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCZvxw99l3xDC6BIHb8nJKGg", name: "ElderFox Documentaries", avatar: [ @@ -461,7 +461,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC2ccm1GajfSujz7T18d7cKA", name: "BBC Studios", avatar: [ @@ -495,7 +495,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCyrM5blUZAQoX9UvObdjtig", name: "Valdemar Gomes", avatar: [ @@ -529,7 +529,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCgP30k64HHZ0OY1QkEgS6Pw", name: "Waa Sop", avatar: [ @@ -563,7 +563,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCBuDzfvztEJvNll_w1E9xFw", name: "The Random Theorizer", avatar: [ @@ -597,7 +597,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCIBaDdAbGlFDeS33shmlD0A", name: "European Space Agency, ESA", avatar: [ @@ -631,7 +631,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCakgsb0w7QB0VHdnCc-OVEA", name: "Space Videos", avatar: [ @@ -665,7 +665,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC1znqKFL3jeR0eoA0pHpzvw", name: "SpaceRip", avatar: [ @@ -699,7 +699,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC28l88GMXXqZYfY0Ru9h50w", name: "Seán Doran", avatar: [ @@ -733,7 +733,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCDyeuRnxf_hxEyH1B7aoDQQ", name: "thebhp", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_music.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_music.snap index 9c128ef..3d57d90 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_music.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_music.snap @@ -8,7 +8,7 @@ VideoDetails( description: RichText([ Text("Provided to YouTube by Universal Music Group\n\nGäa · Oonagh\n\nBest Of\n\n℗ An Airforce1 Records / We Love Music recording; ℗ 2014 Universal Music GmbH\n\nReleased on: 2020-08-07\n\nProducer, Associated Performer, Background Vocalist: Hardy Krech\nProducer: Mark Nissen\nAssociated Performer, Background Vocalist: Andreas Fahnert\nAssociated Performer, Background Vocalist: Velile Mchunu\nAssociated Performer, Background Vocalist: Billy King\nAssociated Performer, Background Vocalist: Alex Prince\nAssociated Performer, Flute: Sandro Friedrich\nProgrammer: Hartmut Krech\nEditor: Severin Zahler\nComposer Lyricist: Hartmut Krech\nComposer Lyricist: Mark Nissen\nAuthor: Lukas Hainer\nAuthor: Michael Boden\n\nAuto-generated by YouTube."), ]), - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -57,7 +57,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -91,7 +91,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -125,7 +125,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -159,7 +159,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -193,7 +193,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -227,7 +227,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -261,7 +261,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -295,7 +295,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -329,7 +329,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -363,7 +363,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -397,7 +397,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC8mcGChRS6Zm7pCSYbHeoVw", name: "princessZelda", avatar: [ @@ -431,7 +431,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -465,7 +465,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ @@ -499,7 +499,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCVGvnqB-5znqPSbMGlhF4Pw", name: "Sentamusic", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_mv.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_mv.snap index c17ccec..1747688 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_mv.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_mv.snap @@ -69,7 +69,7 @@ VideoDetails( Text("#에스파"), Text("\naespa 에스파 \'Black Mamba\' MV ℗ SM Entertainment"), ]), - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -118,7 +118,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -152,7 +152,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -186,7 +186,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC_pwIXKXNm5KGhdEVzmY60A", name: "Stone Music Entertainment", avatar: [ @@ -220,7 +220,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCuhAUMLzJxlP1W7mEk0_6lA", name: "MAMAMOO", avatar: [ @@ -254,7 +254,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCritGVo7pLJLUS8wEu32vow", name: "(G)I-DLE (여자)아이들 (Official YouTube Channel)", avatar: [ @@ -288,7 +288,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -322,7 +322,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -356,7 +356,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -390,7 +390,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -424,7 +424,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -458,7 +458,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -492,7 +492,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCOmHUn--16B90oW2L6FRR3A", name: "BLACKPINK", avatar: [ @@ -526,7 +526,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -560,7 +560,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCOmHUn--16B90oW2L6FRR3A", name: "BLACKPINK", avatar: [ @@ -594,7 +594,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -628,7 +628,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCYDmx2Sfpnaxg488yBpZIGg", name: "starshipTV", avatar: [ @@ -662,7 +662,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCK8S6QMrTk1G8TYQwIyDo-w", name: "𝙇𝙌 𝙆𝙋𝙊𝙋", avatar: [ @@ -696,7 +696,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC9GtSLeksfK4yuJ_g1lgQbg", name: "aespa", avatar: [ diff --git a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_newdesc.snap b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_newdesc.snap index 739cbea..20d2549 100644 --- a/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_newdesc.snap +++ b/src/client/snapshots/rustypipe__client__video_details__tests__map_video_details_newdesc.snap @@ -69,7 +69,7 @@ VideoDetails( Text("#에스파"), Text("\naespa 에스파 \'Black Mamba\' MV ℗ SM Entertainment"), ]), - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -118,7 +118,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCQYl87Oi9aWzz-CLhTw3Rzg", name: "Allan Nascimento", avatar: [ @@ -152,7 +152,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCgqMjKxRWAKUvgYqgomighw", name: "KBS충북", avatar: [ @@ -186,7 +186,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCweOkPb1wVVH0Q0Tlj4a5Pw", name: "1theK (원더케이)", avatar: [ @@ -220,7 +220,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCqECaJ8Gagnn7YCbPEzWH6g", name: "Taylor Swift", avatar: [ @@ -254,7 +254,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCweOkPb1wVVH0Q0Tlj4a5Pw", name: "1theK (원더케이)", avatar: [ @@ -288,7 +288,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -322,7 +322,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -356,7 +356,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -390,7 +390,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCK8S6QMrTk1G8TYQwIyDo-w", name: "LQ K-POP", avatar: [ @@ -424,7 +424,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCYvmuw-JtVrTZQ-7Y4kd63Q", name: "Katy Perry", avatar: [ @@ -458,7 +458,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCOmHUn--16B90oW2L6FRR3A", name: "BLACKPINK", avatar: [ @@ -492,7 +492,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCaO6TYtlC8U5ttz62hTrZgg", name: "JYP Entertainment", avatar: [ @@ -526,7 +526,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCOmHUn--16B90oW2L6FRR3A", name: "BLACKPINK", avatar: [ @@ -560,7 +560,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UC9GtSLeksfK4yuJ_g1lgQbg", name: "aespa", avatar: [ @@ -594,7 +594,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCritGVo7pLJLUS8wEu32vow", name: "(G)I-DLE (여자)아이들 (Official YouTube Channel)", avatar: [ @@ -628,7 +628,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCEf_Bc-KVd7onSeifS3py9g", name: "SMTOWN", avatar: [ @@ -662,7 +662,7 @@ VideoDetails( height: 188, ), ], - channel: Channel( + channel: ChannelTag( id: "UCk9GmdlDTBfgGRb7vXeRMoQ", name: "Red Velvet", avatar: [ diff --git a/src/client/video_details.rs b/src/client/video_details.rs index 5286983..0f0dbcc 100644 --- a/src/client/video_details.rs +++ b/src/client/video_details.rs @@ -6,7 +6,8 @@ use serde::Serialize; use crate::{ model::{ - Channel, ChannelId, Chapter, Comment, Language, Paginator, RecommendedVideo, VideoDetails, + ChannelId, ChannelTag, Chapter, Comment, Language, Paginator, RecommendedVideo, + VideoDetails, }, serializer::MapResult, timeago, @@ -302,7 +303,7 @@ impl MapResponse for response::VideoDetails { id: video_id, title, description, - channel: Channel { + channel: ChannelTag { id: channel_id, name: channel_name, avatar: owner.thumbnail.into(), @@ -432,7 +433,7 @@ fn map_recommendations( util::parse_video_length_or_warn(&txt, &mut warnings) }), thumbnail: video.thumbnail.into(), - channel: Channel { + channel: ChannelTag { id: channel.id, name: channel.name, avatar: video.channel_thumbnail.into(), @@ -511,7 +512,7 @@ fn map_comment( id: c.comment_id, text: c.content_text.into(), author: match (c.author_endpoint, c.author_text) { - (Some(aep), Some(name)) => Some(Channel { + (Some(aep), Some(name)) => Some(ChannelTag { id: aep.browse_endpoint.browse_id, name, avatar: c.author_thumbnail.into(), diff --git a/src/model/mod.rs b/src/model/mod.rs index a95f13f..0511b0e 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -1,11 +1,13 @@ pub mod locale; mod ordering; mod paginator; +mod param; pub mod richtext; pub mod stream_filter; pub use locale::{Country, Language}; pub use paginator::Paginator; +pub use param::ChannelOrder; use std::ops::Range; @@ -233,7 +235,7 @@ pub struct VideoDetails { /// Video description pub description: RichText, /// Channel of the video - pub channel: Channel, + pub channel: ChannelTag, /// Number of views / current viewers in case of a livestream. pub view_count: u64, /// Number of likes @@ -299,7 +301,7 @@ pub struct RecommendedVideo { /// Video thumbnail pub thumbnail: Vec, /// Channel of the video - pub channel: Channel, + pub channel: ChannelTag, /// Video publishing date. /// /// `None` if the date could not be parsed. @@ -318,7 +320,7 @@ pub struct RecommendedVideo { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[non_exhaustive] -pub struct Channel { +pub struct ChannelTag { /// Unique YouTube channel ID pub id: String, /// Channel name @@ -368,7 +370,7 @@ pub struct Comment { /// Comment author /// /// There may be comments with missing authors (possibly deleted users?). - pub author: Option, + pub author: Option, /// Comment publishing date. /// /// `None` if the date could not be parsed. @@ -395,7 +397,7 @@ pub struct Comment { #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] #[non_exhaustive] -pub struct ChannelVideos { +pub struct Channel { /// Unique YouTube Channel-ID (e.g. `UC-lHJZR3Gqxm24_Vd_AJ5Yw`) pub id: String, /// Channel name @@ -405,8 +407,23 @@ pub struct ChannelVideos { /// `None` if the subscriber count was hidden by the owner /// or could not be parsed. pub subscriber_count: Option, - /// Videos fetched from the channel - pub videos: Paginator, + /// Channel avatar / profile picture + pub avatar: Vec, + /// Channel description text + pub description: String, + /// List of words to describe the topic of the channel + pub tags: Vec, + /// Custom URL set by the channel owner + /// (e.g. ) + pub vanity_url: Option, + /// Banner image shown above the channel + pub banner: Vec, + /// Banner image shown above the channel (small format for mobile) + pub mobile_banner: Vec, + /// Banner image shown above the channel (16:9 fullscreen format for TV) + pub tv_banner: Vec, + /// Content fetched from the channel + pub content: T, } #[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] @@ -439,3 +456,27 @@ pub struct ChannelVideo { /// Is the video a YouTube Short video (vertical and <60s)? pub is_short: bool, } + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[non_exhaustive] +pub struct ChannelPlaylist { + /// Unique YouTube Playlist-ID (e.g. `PL5dDx681T4bR7ZF1IuWzOv1omlRbE7PiJ`) + pub id: String, + /// Playlist name + pub name: String, + /// Playlist thumbnail + pub thumbnail: Vec, + /// Number of playlist videos + pub video_count: Option, +} + +#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)] +#[non_exhaustive] +pub struct ChannelInfo { + /// Channel creation date + pub create_date: Option>, + /// Channel view count + pub view_count: Option, + /// Links to other websites or social media profiles + pub links: Vec<(String, String)>, +} diff --git a/src/model/param.rs b/src/model/param.rs new file mode 100644 index 0000000..87b432b --- /dev/null +++ b/src/model/param.rs @@ -0,0 +1,11 @@ +#[derive(Default, Debug, Copy, Clone, PartialEq, Eq)] +#[non_exhaustive] +pub enum ChannelOrder { + /// Output the latest videos first + #[default] + Latest, + /// Output the oldest videos first + Oldest, + /// Output the most viewed videos first + Popular, +} diff --git a/src/serializer/mod.rs b/src/serializer/mod.rs index 719314e..6592acc 100644 --- a/src/serializer/mod.rs +++ b/src/serializer/mod.rs @@ -41,6 +41,25 @@ where } } +impl MapResult +where + T: Default, +{ + pub fn error(msg: String) -> Self { + Self { + c: T::default(), + warnings: vec![msg], + } + } + + pub fn ok(c: T) -> Self { + Self { + c, + warnings: Vec::new(), + } + } +} + /// Deserialization method that consumes anything and returns an empty value. /// Intended to be used for a wildcard enum option. /// diff --git a/src/serializer/text.rs b/src/serializer/text.rs index d76822b..b63d2b1 100644 --- a/src/serializer/text.rs +++ b/src/serializer/text.rs @@ -225,8 +225,10 @@ pub enum PageType { Playlist, } -fn map_richtext_run(run: RichTextRun) -> TextComponent { - map_text_component(run.text, run.navigation_endpoint) +impl From for TextComponent { + fn from(run: RichTextRun) -> Self { + map_text_component(run.text, run.navigation_endpoint) + } } /// Map a single component of a rich text @@ -270,7 +272,7 @@ impl<'de> Deserialize<'de> for TextComponent { )); } - Ok(map_richtext_run(text.runs.swap_remove(0))) + Ok(text.runs.swap_remove(0).into()) } } @@ -280,7 +282,9 @@ impl<'de> Deserialize<'de> for TextComponents { D: Deserializer<'de>, { let text = RichTextInternal::deserialize(deserializer)?; - Ok(Self(text.runs.into_iter().map(map_richtext_run).collect())) + Ok(Self( + text.runs.into_iter().map(TextComponent::from).collect(), + )) } } @@ -295,7 +299,7 @@ impl<'de> DeserializeAs<'de, TextComponents> for AttributedText { let mut chars = text.content.chars(); // Take a string from the char iterator until the given - // UTF-16 index. This mimicks the Javascript substring behavior. + // UTF-16 index. This mimics the Javascript substring behavior. let mut take_chars = |until: usize| { if until <= i_utf16 { return String::new(); @@ -338,7 +342,7 @@ impl<'de> DeserializeAs<'de, TextComponents> for AttributedText { let txt_link = txt_link.trim(); let txt_link = txt_link.replace("\u{a0}", " "); - static LINK_PREFIX: Lazy = Lazy::new(|| Regex::new(r#"^(?:\/|•) *"#).unwrap()); + static LINK_PREFIX: Lazy = Lazy::new(|| Regex::new("^[/•] *").unwrap()); let txt_link = LINK_PREFIX.replace(&txt_link, ""); if !txt_before.is_empty() { diff --git a/testfiles/channel/channel_info.json b/testfiles/channel/channel_info.json new file mode 100644 index 0000000..939ca6e --- /dev/null +++ b/testfiles/channel/channel_info.json @@ -0,0 +1,2732 @@ +{ + "contents": { + "twoColumnBrowseResultsRenderer": { + "tabs": [ + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EghmZWF0dXJlZPIGBAoCMgA%3D" + }, + "clickTrackingParams": "CCsQ8JMBGAUiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/featured", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Home", + "trackingParams": "CCsQ8JMBGAUiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgZ2aWRlb3PyBgQKAjoA" + }, + "clickTrackingParams": "CCoQ8JMBGAYiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/videos", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Videos", + "trackingParams": "CCoQ8JMBGAYiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EglwbGF5bGlzdHPyBgQKAkIA" + }, + "clickTrackingParams": "CCkQ8JMBGAciEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/playlists", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Playlists", + "trackingParams": "CCkQ8JMBGAciEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "Egljb21tdW5pdHnyBgQKAkoA" + }, + "clickTrackingParams": "CCgQ8JMBGAgiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/community", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Community", + "trackingParams": "CCgQ8JMBGAgiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgVzdG9yZfIGBAoCGgA%3D" + }, + "clickTrackingParams": "CCcQ8JMBGAkiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/store", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Store", + "trackingParams": "CCcQ8JMBGAkiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EghjaGFubmVsc_IGBAoCUgA%3D" + }, + "clickTrackingParams": "CCYQ8JMBGAoiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/channels", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Channels", + "trackingParams": "CCYQ8JMBGAoiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "contents": [ + { + "itemSectionRenderer": { + "contents": [ + { + "channelAboutFullMetadataRenderer": { + "avatar": { + "thumbnails": [ + { + "height": 48, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s48-c-k-c0x00ffffff-no-rj", + "width": 48 + }, + { + "height": 88, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s88-c-k-c0x00ffffff-no-rj", + "width": 88 + }, + { + "height": 176, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s176-c-k-c0x00ffffff-no-rj", + "width": 176 + } + ] + }, + "businessEmailLabel": { + "runs": [ + { + "text": "For business inquiries:" + } + ] + }, + "bypassBusinessEmailCaptcha": false, + "canonicalChannelUrl": "http://www.youtube.com/c/EevblogDave", + "channelId": "UC2DjFE7Xf11URZqWBigcVOQ", + "country": { + "simpleText": "Australia" + }, + "countryLabel": { + "runs": [ + { + "deemphasize": true, + "text": "\nLocation:\n " + } + ] + }, + "description": { + "simpleText": "NO SCRIPT, NO FEAR, ALL OPINION\nAn off-the-cuff Video Blog about Electronics Engineering, for engineers, hobbyists, enthusiasts, hackers and Makers\nHosted by Dave Jones from Sydney Australia\n\nDONATIONS:\nBitcoin: 3KqyH1U3qrMPnkLufM2oHDU7YB4zVZeFyZ\nEthereum: 0x99ccc4d2654ba40744a1f678d9868ecb15e91206\nPayPal: david@alternatezone.com\n\nPatreon: https://www.patreon.com/eevblog\n\nEEVblog2: http://www.youtube.com/EEVblog2\nEEVdiscover: https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ\n\nEMAIL:\nAdvertising/Commercial: eevblog+business@gmail.com\nFan mail: eevblog+fan@gmail.com\nHate Mail: eevblog+hate@gmail.com\n\nI DON'T DO PAID VIDEO SPONSORSHIPS, DON'T ASK!\n\nPLEASE:\nDo NOT ask for personal advice on something, post it in the EEVblog forum.\nI read ALL email, but please don't be offended if I don't have time to reply, I get a LOT of email.\n\nMailbag\nPO Box 7949\nBaulkham Hills NSW 2153\nAUSTRALIA" + }, + "descriptionLabel": { + "runs": [ + { + "text": "Description" + } + ] + }, + "detailsLabel": { + "runs": [ + { + "text": "Details" + } + ] + }, + "joinedDateText": { + "runs": [ + { + "text": "Joined " + }, + { + "text": "Apr 4, 2009" + } + ] + }, + "onBusinessEmailRevealClickCommand": { + "clickTrackingParams": "CBgQuy8YACITCNCX8umPrvoCFcXoUQodyk0HAw==", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/channel/reveal_business_email", + "sendPost": true + } + }, + "revealBusinessEmailCommand": {} + }, + "primaryLinks": [ + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeeYHqSanvu-1kS8-j8snFjPciLtknpI1FBXBB6ChDhHFlCRCjevwoP5AOW1u3m9HaeGexWOI4DJeisvRR1YK_jsARgDOrkbO3qWsfWQFxBaEkSQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CCUQobIHGAEiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbWtPX3hfT29YN05DV0hLbnllb1dVV0Rsb29ZQXxBQ3Jtc0tuX1ZTVW9IZExYdkpMcTQwTUxENWphU3R1dWx2RG1xVkIxNkY0Qk5qa2RRZ21kRy15YzI4Z2lOcFNoM3RiOVZNSVczNTRhRnprZFNFWmdITTNzNDItRUc4WEhzcEtKZjgtLWZGNllpbjNReW85SGtJbw&q=http%3A%2F%2Fwww.eevblog.com", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbWtPX3hfT29YN05DV0hLbnllb1dVV0Rsb29ZQXxBQ3Jtc0tuX1ZTVW9IZExYdkpMcTQwTUxENWphU3R1dWx2RG1xVkIxNkY0Qk5qa2RRZ21kRy15YzI4Z2lOcFNoM3RiOVZNSVczNTRhRnprZFNFWmdITTNzNDItRUc4WEhzcEtKZjgtLWZGNllpbjNReW85SGtJbw&q=http%3A%2F%2Fwww.eevblog.com" + } + }, + "title": { + "simpleText": "EEVblog Web Site" + }, + "trackingParams": "CCUQobIHGAEiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn1.gstatic.com/favicon-tbn?q=tbn:ANd9GcSnyfGgzwnk19b891nCqykpMzr3jlkKm0Z65gNVJbtXsk9-gzW5EiqqEvM02nZyYKmI2x1JQI9OuGsWU69bgq9_rNrHCYrXLP6HqhP9iVwr0bm2IQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CCQQobIHGAIiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa0NBT2M1UkV5ejJZbXNITWdaRFh4QmNaQ0Rxd3xBQ3Jtc0tscXlScUJZWjFVUGNwampKUGwxbWVoQU9HRHFfdGZpTmxuMEY3bGlEV000em15bExiZGhiM09WSlp4cXlpWVk0OWFMdE1Wei1vYzh4aGgtS1gtUDFCb2tsOFZyU3BFSW1HdXh6OU1peThJWTBrNnZlbw&q=http%3A%2F%2Fwww.twitter.com%2Feevblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa0NBT2M1UkV5ejJZbXNITWdaRFh4QmNaQ0Rxd3xBQ3Jtc0tscXlScUJZWjFVUGNwampKUGwxbWVoQU9HRHFfdGZpTmxuMEY3bGlEV000em15bExiZGhiM09WSlp4cXlpWVk0OWFMdE1Wei1vYzh4aGgtS1gtUDFCb2tsOFZyU3BFSW1HdXh6OU1peThJWTBrNnZlbw&q=http%3A%2F%2Fwww.twitter.com%2Feevblog" + } + }, + "title": { + "simpleText": "Twitter" + }, + "trackingParams": "CCQQobIHGAIiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn3.gstatic.com/favicon-tbn?q=tbn:ANd9GcRmQS0-yT-68TopCQcxwbvtkTB0rdiUtc7g4WFZBVWFT4tJ8tSTon4n5uCmm9_b69_7bgTNZNmFw3-zyF-kWNXXZJEBTm_-r1qZrKLyDfCYxiEXY50" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CCMQobIHGAMiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbEZNRmEzZ05TbUxQaE1lVzRhOUd3MktPcmM0Z3xBQ3Jtc0ttck5kdXFBMGlWc3E3aTh1UTc2UWV5YXJFeVozbkl3enV6bXJsZ3huRmgtaTFXcDdXcG1pVWgycWg1NzdEMDQ3bEdSMzVjRWFkQjVQWnVsQ3FyYmRNOUN2RGkzLS0yYW9VTFNISDFqYjg4enNwRWExWQ&q=http%3A%2F%2Fwww.facebook.com%2FEEVblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbEZNRmEzZ05TbUxQaE1lVzRhOUd3MktPcmM0Z3xBQ3Jtc0ttck5kdXFBMGlWc3E3aTh1UTc2UWV5YXJFeVozbkl3enV6bXJsZ3huRmgtaTFXcDdXcG1pVWgycWg1NzdEMDQ3bEdSMzVjRWFkQjVQWnVsQ3FyYmRNOUN2RGkzLS0yYW9VTFNISDFqYjg4enNwRWExWQ&q=http%3A%2F%2Fwww.facebook.com%2FEEVblog" + } + }, + "title": { + "simpleText": "Facebook" + }, + "trackingParams": "CCMQobIHGAMiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn0.gstatic.com/favicon-tbn?q=tbn:ANd9GcRY4no9kYJtEAHXBEY2GDprV__HH1zc94olyS6G6fT5isS71bPyqvIi7-9VE1MMy3_3vsNOQLAerwcSQqGNyADWfxKpd2hLc8HuacZdgEjgZc_WLN8" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CCIQobIHGAQiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "url": "https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ" + } + }, + "title": { + "simpleText": "EEVdiscover" + }, + "trackingParams": "CCIQobIHGAQiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeeYHqSanvu-1kS8-j8snFjPciLtknpI1FBXBB6ChDhHFlCRCjevwoP5AOW1u3m9HaeGexWOI4DJeisvRR1YK_jsARgDOrkbO3qWsfWQFxBaEkSQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CCEQobIHGAUiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa3lZaE8tLVBneVh2R3Z5TXplU2wzbUVRcVJ1Z3xBQ3Jtc0trQnl4NVltWkFDa3hXVUZzQ0o4UHo2dENwX3ZYaklNQzZNNDJrUFBtOVVFemVsSU4zaTd6UmZJYWRWck9mU0d1UEtZYXBQSUxkc1k0Zi1fU1BmQWVnY09NSU1KXzN1M2RsaDVnT1hsbHk0YmRLNWNlTQ&q=http%3A%2F%2Fwww.eevblog.com%2Fforum", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa3lZaE8tLVBneVh2R3Z5TXplU2wzbUVRcVJ1Z3xBQ3Jtc0trQnl4NVltWkFDa3hXVUZzQ0o4UHo2dENwX3ZYaklNQzZNNDJrUFBtOVVFemVsSU4zaTd6UmZJYWRWck9mU0d1UEtZYXBQSUxkc1k0Zi1fU1BmQWVnY09NSU1KXzN1M2RsaDVnT1hsbHk0YmRLNWNlTQ&q=http%3A%2F%2Fwww.eevblog.com%2Fforum" + } + }, + "title": { + "simpleText": "The EEVblog Forum" + }, + "trackingParams": "CCEQobIHGAUiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeeYHqSanvu-1kS8-j8snFjPciLtknpI1FBXBB6ChDhHFlCRCjevwoP5AOW1u3m9HaeGexWOI4DJeisvRR1YK_jsARgDOrkbO3qWsfWQFxBaEkSQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CCAQobIHGAYiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbHY3a0x2WU5BMTJ0SmlqVEVVay1pMW9Jc2c2Z3xBQ3Jtc0tsYktFRk4xLXNJQ1NfZDZlcVZrSVN0QWlidjcxZEY2bFpSTWVGNTJIUXJGdkhDeEJMX2lFLTVBaHNXSXlvUTVQcUhTNUcwVUktRVJuUVdCc3Ftd2F5T3VNNnRfelYtR05ENGFPaTFHOGpuajh5YzlEQQ&q=http%3A%2F%2Fwww.eevblog.com%2Fmerch", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbHY3a0x2WU5BMTJ0SmlqVEVVay1pMW9Jc2c2Z3xBQ3Jtc0tsYktFRk4xLXNJQ1NfZDZlcVZrSVN0QWlidjcxZEY2bFpSTWVGNTJIUXJGdkhDeEJMX2lFLTVBaHNXSXlvUTVQcUhTNUcwVUktRVJuUVdCc3Ftd2F5T3VNNnRfelYtR05ENGFPaTFHOGpuajh5YzlEQQ&q=http%3A%2F%2Fwww.eevblog.com%2Fmerch" + } + }, + "title": { + "simpleText": "EEVblog Merchandise (T-Shirts)" + }, + "trackingParams": "CCAQobIHGAYiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeeYHqSanvu-1kS8-j8snFjPciLtknpI1FBXBB6ChDhHFlCRCjevwoP5AOW1u3m9HaeGexWOI4DJeisvRR1YK_jsARgDOrkbO3qWsfWQFxBaEkSQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CB8QobIHGAciEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqblZ3bHNZVy11YW1IWjhHR0FIdEpQMVJoWVpOd3xBQ3Jtc0ttbnVFV2JHWnRBVUhLaE83WmpKZU4xYi1GVS0tSTVjYUtGck5zUkgyVl94VXQtakNYU0xsOER1SWdjcVhSVlQ0TWszUWNHT3pFNzVKVGZESzBRcGwwdVVlb1k2cm5LaklXcDBMN3NSdjZ5NTk5S2JGSQ&q=http%3A%2F%2Fwww.eevblog.com%2Fdonations%2F", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqblZ3bHNZVy11YW1IWjhHR0FIdEpQMVJoWVpOd3xBQ3Jtc0ttbnVFV2JHWnRBVUhLaE83WmpKZU4xYi1GVS0tSTVjYUtGck5zUkgyVl94VXQtakNYU0xsOER1SWdjcVhSVlQ0TWszUWNHT3pFNzVKVGZESzBRcGwwdVVlb1k2cm5LaklXcDBMN3NSdjZ5NTk5S2JGSQ&q=http%3A%2F%2Fwww.eevblog.com%2Fdonations%2F" + } + }, + "title": { + "simpleText": "EEVblog Donations" + }, + "trackingParams": "CB8QobIHGAciEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcRNePy1H3QW5dJzuE2mHt-ObVgw6hqhXf2AjZ0DoWRBGk1XNRiGO-okaP7raQeazic8D4yZgoYSQsT3WmYKNXCZf0rk6Pc4KqozGcSQDWt7jGXeYeA" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CB4QobIHGAgiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa3VOaGVjWmc4amtOdThCSGp3QXdQSkZYSWhQQXxBQ3Jtc0tsS29ENFZBRWJ1UkZCVUhTeWRIbWw2V1FKNnZGblJJZUhzRlRXaVd5NjNyakJXOWwtbzVIZTdLV3poYk4ya0djeXZwZi1BYnhYSjRUMHJtWkdNVzQya1AtQ0hDcGRCXzk2Tlpxa3dTVHdoNmZnNjR1dw&q=https%3A%2F%2Fwww.patreon.com%2Feevblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa3VOaGVjWmc4amtOdThCSGp3QXdQSkZYSWhQQXxBQ3Jtc0tsS29ENFZBRWJ1UkZCVUhTeWRIbWw2V1FKNnZGblJJZUhzRlRXaVd5NjNyakJXOWwtbzVIZTdLV3poYk4ya0djeXZwZi1BYnhYSjRUMHJtWkdNVzQya1AtQ0hDcGRCXzk2Tlpxa3dTVHdoNmZnNjR1dw&q=https%3A%2F%2Fwww.patreon.com%2Feevblog" + } + }, + "title": { + "simpleText": "Patreon" + }, + "trackingParams": "CB4QobIHGAgiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn3.gstatic.com/favicon-tbn?q=tbn:ANd9GcT-8_XQ6FFFUhxPG6nO8fXwP8nLrLo1gEtxRF_P1hQjbuDENZeK3-2W5bUaDp8oWDpP0PEdTBO5MsLEtmSucmSL0PMvOUOgYIWi8-_A7I9ANgBBhnemRCe8cOc" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CB0QobIHGAkiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbW56T0MweUZyVVdFRmlpcUtJZ0VrZHFvbUZwZ3xBQ3Jtc0ttZEp5bnNtMWlSTHg3aVF1b19jV2hVYzZRQWtpbDdjcHB2OHd5VEZNRkxQY3hSeWZsN0pIVU94cnNSMjVGWjVJNTRHQVpaNmtfWnZaTEgzQmdQMk44S3pLWFFoRnVmbEwtLVViSmdjTjVpS1c4M1F2bw&q=https%3A%2F%2Fwww.subscribestar.com%2Feevblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbW56T0MweUZyVVdFRmlpcUtJZ0VrZHFvbUZwZ3xBQ3Jtc0ttZEp5bnNtMWlSTHg3aVF1b19jV2hVYzZRQWtpbDdjcHB2OHd5VEZNRkxQY3hSeWZsN0pIVU94cnNSMjVGWjVJNTRHQVpaNmtfWnZaTEgzQmdQMk44S3pLWFFoRnVmbEwtLVViSmdjTjVpS1c4M1F2bw&q=https%3A%2F%2Fwww.subscribestar.com%2Feevblog" + } + }, + "title": { + "simpleText": "SubscribeStar" + }, + "trackingParams": "CB0QobIHGAkiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcQM5g9rHwU86NCDHZAnvIGK40lhLrquyZVKRCGft0DGiGrzrooBQXjgRtUY4xqEBgwe57w7ytbX7kUubPHTmsWL1wIqcW8XkaoYfuC4ENqJjMhOsX592A" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBwQobIHGAoiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbF9Mb0tHaDVHSmlJSXNNaVZRVHFHRnR0Nl9MUXxBQ3Jtc0tuYTgxUlluQV9Ga0tra09Id3N4RndoRm9zTXlzYV9qT3JEMHJNQzJoVDFBd2EydlpTWUpXTGpfb19iU2xhT1YzVzFjd2NGb2NwQnBnckJfQ3ZxRWdPTV84dE1OOVhlV2FjWjdCX1JDenA4YnFOVEVVUQ&q=http%3A%2F%2Fwww.theamphour.com", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqbF9Mb0tHaDVHSmlJSXNNaVZRVHFHRnR0Nl9MUXxBQ3Jtc0tuYTgxUlluQV9Ga0tra09Id3N4RndoRm9zTXlzYV9qT3JEMHJNQzJoVDFBd2EydlpTWUpXTGpfb19iU2xhT1YzVzFjd2NGb2NwQnBnckJfQ3ZxRWdPTV84dE1OOVhlV2FjWjdCX1JDenA4YnFOVEVVUQ&q=http%3A%2F%2Fwww.theamphour.com" + } + }, + "title": { + "simpleText": "The AmpHour Radio Show" + }, + "trackingParams": "CBwQobIHGAoiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcRnAk_yQ7EPRR2O8YSDZ2dxHZpw2jM7tVeWXkyrWjjZsD-p7OcxqNNuTKvuIuc0rT97_DrMTvP4x0mu4npuOrlZEJLkffDBAiHYCWdze4lZy3Lu" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBsQobIHGAsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa0dlTkt6c0Y3NXZSTGdhNHZ5TmpQbmNvSW12UXxBQ3Jtc0ttNDBjYjZtdnZpWDRXaXJJelB5bXltOXUwSGNFYTNaeFBHYXpqemZZTk9PajhaNnlEcHRwWE5qNGJRNFhhX2t6a1BmbmE2TW5LX0NuUHNrdFA4dXdySDlqR3ZtUXhaMFNRMkN4RDM0RWxaUVpIUXZLdw&q=http%3A%2F%2Fwww.flickr.com%2Fphotos%2Feevblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa0dlTkt6c0Y3NXZSTGdhNHZ5TmpQbmNvSW12UXxBQ3Jtc0ttNDBjYjZtdnZpWDRXaXJJelB5bXltOXUwSGNFYTNaeFBHYXpqemZZTk9PajhaNnlEcHRwWE5qNGJRNFhhX2t6a1BmbmE2TW5LX0NuUHNrdFA4dXdySDlqR3ZtUXhaMFNRMkN4RDM0RWxaUVpIUXZLdw&q=http%3A%2F%2Fwww.flickr.com%2Fphotos%2Feevblog" + } + }, + "title": { + "simpleText": "Flickr" + }, + "trackingParams": "CBsQobIHGAsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn1.gstatic.com/favicon-tbn?q=tbn:ANd9GcTIK5avaVK_PPYPc2I3QDvcmXC-GidHELAcxYo4dfKL8R-W2_Q-InaaYXGbq1PHHBdA9IYwpBXt9jPhUp85jdINIk0Q8Le1oZwpm_2BTK-aVU8W" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBoQobIHGAwiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa2Ruc0trel90SDR6cDFCdXk3TWRQQ2U2Y3UwQXxBQ3Jtc0tsdFNaUmFwbGF1NktBczd5Q3RIbGdTcDRzOXdWclJYaEp2YmlvNjdOejJfaGk5cktZQ1BiVDNsVHQ0bHFyM213QzRXeUtwZ3NLeTB1WExzZktSTmY1TTBWYnhqNENnY2ZyUTVfS2ZWN0EwRzcyY0xkdw&q=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fredirect.html%3Fie%3DUTF8%26location%3Dhttp%253A%252F%252Fwww.amazon.com%252F%26tag%3Dee04-20%26linkCode%3Dur2%26camp%3D1789%26creative%3D390957", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_description&redir_token=QUFFLUhqa2Ruc0trel90SDR6cDFCdXk3TWRQQ2U2Y3UwQXxBQ3Jtc0tsdFNaUmFwbGF1NktBczd5Q3RIbGdTcDRzOXdWclJYaEp2YmlvNjdOejJfaGk5cktZQ1BiVDNsVHQ0bHFyM213QzRXeUtwZ3NLeTB1WExzZktSTmY1TTBWYnhqNENnY2ZyUTVfS2ZWN0EwRzcyY0xkdw&q=http%3A%2F%2Fwww.amazon.com%2Fgp%2Fredirect.html%3Fie%3DUTF8%26location%3Dhttp%253A%252F%252Fwww.amazon.com%252F%26tag%3Dee04-20%26linkCode%3Dur2%26camp%3D1789%26creative%3D390957" + } + }, + "title": { + "simpleText": "EEVblog AMAZON Store" + }, + "trackingParams": "CBoQobIHGAwiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn1.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeGSb_XctA25lE585p4Y1gzQGccBu6OcsQiaOYtMv9dElpdpPFW4MYRTO7v8N1BcnPcQxrWkcJ7N6BVSj0k5sUwpGD7MI3S-Aiyghi8eF8Zy2_7Q" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBkQobIHGA0iEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "http://www.youtube.com/EEVblog2", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "url": "http://www.youtube.com/EEVblog2" + } + }, + "title": { + "simpleText": "2nd EEVblog Channel" + }, + "trackingParams": "CBkQobIHGA0iEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + ], + "primaryLinksLabel": { + "runs": [ + { + "text": "Links" + } + ] + }, + "showDescription": true, + "signInForBusinessEmail": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CBgQuy8YACITCNCX8umPrvoCFcXoUQodyk0HAw==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3D%252Fc%252FEevblogDave%252Fabout&hl=en", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "nextEndpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgVhYm91dA%3D%3D" + }, + "clickTrackingParams": "CBgQuy8YACITCNCX8umPrvoCFcXoUQodyk0HAw==", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/about", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + } + } + }, + "text": "Sign in" + }, + { + "text": " to see email address" + } + ] + }, + "statsLabel": { + "runs": [ + { + "text": "Stats" + } + ] + }, + "title": { + "simpleText": "EEVblog" + }, + "viewCountText": { + "simpleText": "186,854,342 views" + } + } + } + ], + "trackingParams": "CBgQuy8YACITCNCX8umPrvoCFcXoUQodyk0HAw==" + } + } + ], + "disablePullToRefresh": true, + "trackingParams": "CBcQui8iEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgVhYm91dPIGBAoCEgA%3D" + }, + "clickTrackingParams": "CBYQ8JMBGAsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/about", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": true, + "title": "About", + "trackingParams": "CBYQ8JMBGAsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + { + "expandableTabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgZzZWFyY2jyBgQKAloA" + }, + "clickTrackingParams": "CAAQhGciEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/search", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Search" + } + } + ] + } + }, + "header": { + "c4TabbedHeaderRenderer": { + "avatar": { + "thumbnails": [ + { + "height": 48, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s48-c-k-c0x00ffffff-no-rj", + "width": 48 + }, + { + "height": 88, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s88-c-k-c0x00ffffff-no-rj", + "width": 88 + }, + { + "height": 176, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s176-c-k-c0x00ffffff-no-rj", + "width": 176 + } + ] + }, + "badges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CBAQ8DsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + } + ], + "banner": { + "thumbnails": [ + { + "height": 175, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1060-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 1060 + }, + { + "height": 188, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1138-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 1138 + }, + { + "height": 283, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1707-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 1707 + }, + { + "height": 351, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2120-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 2120 + }, + { + "height": 377, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2276-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 2276 + }, + { + "height": 424, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 2560 + } + ] + }, + "channelId": "UC2DjFE7Xf11URZqWBigcVOQ", + "headerLinks": { + "channelHeaderLinksRenderer": { + "primaryLinks": [ + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeeYHqSanvu-1kS8-j8snFjPciLtknpI1FBXBB6ChDhHFlCRCjevwoP5AOW1u3m9HaeGexWOI4DJeisvRR1YK_jsARgDOrkbO3qWsfWQFxBaEkSQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbUZRdjQ1dHlkMWJjdDRoRHNGcDNBaGpiRTJDZ3xBQ3Jtc0tuSVJrXzlCS2lRRXo0dEozRmx3cXhzY1pKcld5ajBHZmRtNm93TnAwUEs4ZUUtMFE0a3dNQXFHVThGNGwyYW4ycWRGamZXOEstQ0VEUTNReVNuT2hyclVkeXN0WnVBM3RHbzJxaGh2SzhoSzlWUlpDcw&q=http%3A%2F%2Fwww.eevblog.com", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbUZRdjQ1dHlkMWJjdDRoRHNGcDNBaGpiRTJDZ3xBQ3Jtc0tuSVJrXzlCS2lRRXo0dEozRmx3cXhzY1pKcld5ajBHZmRtNm93TnAwUEs4ZUUtMFE0a3dNQXFHVThGNGwyYW4ycWRGamZXOEstQ0VEUTNReVNuT2hyclVkeXN0WnVBM3RHbzJxaGh2SzhoSzlWUlpDcw&q=http%3A%2F%2Fwww.eevblog.com" + } + }, + "title": { + "simpleText": "EEVblog Web Site" + } + } + ], + "secondaryLinks": [ + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn1.gstatic.com/favicon-tbn?q=tbn:ANd9GcSnyfGgzwnk19b891nCqykpMzr3jlkKm0Z65gNVJbtXsk9-gzW5EiqqEvM02nZyYKmI2x1JQI9OuGsWU69bgq9_rNrHCYrXLP6HqhP9iVwr0bm2IQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbTdwZlF0dFZiNGlBWnRydFNTY2RmaVZRbk9qZ3xBQ3Jtc0trSFRFcnE5bFNTQ0VocEdmNTE5Rks0Yng2WHV1TGR4R01CczM1RndsdjNuTExDUWNDeVc3TXlFMEpEc3ZpYXZTejRaZG1XQUZjd01rN3Q3cWwwcEdCNjNrUE9xc3JZUDZqM1lIUHlBbV9FenhJU1kxUQ&q=http%3A%2F%2Fwww.twitter.com%2Feevblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbTdwZlF0dFZiNGlBWnRydFNTY2RmaVZRbk9qZ3xBQ3Jtc0trSFRFcnE5bFNTQ0VocEdmNTE5Rks0Yng2WHV1TGR4R01CczM1RndsdjNuTExDUWNDeVc3TXlFMEpEc3ZpYXZTejRaZG1XQUZjd01rN3Q3cWwwcEdCNjNrUE9xc3JZUDZqM1lIUHlBbV9FenhJU1kxUQ&q=http%3A%2F%2Fwww.twitter.com%2Feevblog" + } + }, + "title": { + "simpleText": "Twitter" + } + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn3.gstatic.com/favicon-tbn?q=tbn:ANd9GcRmQS0-yT-68TopCQcxwbvtkTB0rdiUtc7g4WFZBVWFT4tJ8tSTon4n5uCmm9_b69_7bgTNZNmFw3-zyF-kWNXXZJEBTm_-r1qZrKLyDfCYxiEXY50" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbGtDd3d0T2ltbkxFTVRaT3lBOUtKTHRPaEZTQXxBQ3Jtc0tuR0FkTG5ZOUhrLXhUQjdXU0tWeV95WWZyRzZFcEN6TkVGbU9OSFpETGkyNjU2a2xiS1o3Um5UVEVPWFNKYS00WFBFMTN6aHdmNGZQOTg4V1Z3T00tVG03ZWdyR3dsZ0ZHXzlCRlBQZTdTY2hiNGJBRQ&q=http%3A%2F%2Fwww.facebook.com%2FEEVblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbGtDd3d0T2ltbkxFTVRaT3lBOUtKTHRPaEZTQXxBQ3Jtc0tuR0FkTG5ZOUhrLXhUQjdXU0tWeV95WWZyRzZFcEN6TkVGbU9OSFpETGkyNjU2a2xiS1o3Um5UVEVPWFNKYS00WFBFMTN6aHdmNGZQOTg4V1Z3T00tVG03ZWdyR3dsZ0ZHXzlCRlBQZTdTY2hiNGJBRQ&q=http%3A%2F%2Fwww.facebook.com%2FEEVblog" + } + }, + "title": { + "simpleText": "Facebook" + } + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn0.gstatic.com/favicon-tbn?q=tbn:ANd9GcRY4no9kYJtEAHXBEY2GDprV__HH1zc94olyS6G6fT5isS71bPyqvIi7-9VE1MMy3_3vsNOQLAerwcSQqGNyADWfxKpd2hLc8HuacZdgEjgZc_WLN8" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "url": "https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ" + } + }, + "title": { + "simpleText": "EEVdiscover" + } + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeeYHqSanvu-1kS8-j8snFjPciLtknpI1FBXBB6ChDhHFlCRCjevwoP5AOW1u3m9HaeGexWOI4DJeisvRR1YK_jsARgDOrkbO3qWsfWQFxBaEkSQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqa3BMOGVzZmd3TzJ0dzdrV0xYdEIyLTZ5a0NXd3xBQ3Jtc0trdHRYRWxaMmxzV0E2Ymw1THp3SDBoRUNhY0ZTeVlCV2t6WWJCckxQc1dwdXlfakRCeFZfa2tLazF0OUtOUmZWemFKYlFjYXV6T0p4VV9xNG1CRFpjcXJnenRneHpMQmhpZHNmRDY4ZExvNWxaQWFWZw&q=http%3A%2F%2Fwww.eevblog.com%2Fforum", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqa3BMOGVzZmd3TzJ0dzdrV0xYdEIyLTZ5a0NXd3xBQ3Jtc0trdHRYRWxaMmxzV0E2Ymw1THp3SDBoRUNhY0ZTeVlCV2t6WWJCckxQc1dwdXlfakRCeFZfa2tLazF0OUtOUmZWemFKYlFjYXV6T0p4VV9xNG1CRFpjcXJnenRneHpMQmhpZHNmRDY4ZExvNWxaQWFWZw&q=http%3A%2F%2Fwww.eevblog.com%2Fforum" + } + }, + "title": { + "simpleText": "The EEVblog Forum" + } + } + ] + } + }, + "mobileBanner": { + "thumbnails": [ + { + "height": 88, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w320-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 320 + }, + { + "height": 175, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w640-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 640 + }, + { + "height": 263, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w960-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 960 + }, + { + "height": 351, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1280-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 1280 + }, + { + "height": 395, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1440-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 1440 + } + ] + }, + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave" + }, + "clickTrackingParams": "CBAQ8DsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "sponsorButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Join this channel" + } + }, + "hint": { + "hintRenderer": { + "dwellTimeMs": "60000", + "hintCap": { + "impressionCap": "1" + }, + "hintId": "sponsor-pre-purchase", + "trackingParams": "CBIQpecFIhMI0Jfy6Y-u-gIVxehRCh3KTQcD" + } + }, + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBEQqGAiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "ignoreNavigation": true + } + }, + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "button": { + "buttonRenderer": { + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBMQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fyoutubei%252Fv1%252Fbrowse%253Fkey%253DAIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8%2526prettyPrint%253Dfalse&hl=en", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "hack": true + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_BRAND", + "text": { + "simpleText": "Sign in" + }, + "trackingParams": "CBMQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "content": { + "runs": [ + { + "text": "Sign in to become a member." + } + ] + }, + "title": { + "runs": [ + { + "text": "Want to join this channel?" + } + ] + } + } + } + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_SUGGESTIVE", + "targetId": "sponsorships-button", + "text": { + "runs": [ + { + "text": "Join" + } + ] + }, + "trackingParams": "CBEQqGAiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "subscribeButton": { + "buttonRenderer": { + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBQQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "ignoreNavigation": true + } + }, + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "button": { + "buttonRenderer": { + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBUQ_YYEIhMI0Jfy6Y-u-gIVxehRCh3KTQcDMglzdWJzY3JpYmU=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3D%252Fc%252FEevblogDave%252Fabout%26continue_action%3DQUFFLUhqbXowa0I5U2RLaG1pZTNLakhsbk1mUXRnODAxUXxBQ3Jtc0tuQXVsdjY1RTMybnVMT1lfNEQtMm5ZVWctZ2Y5dWxzc2RqQzlseHVpOXE3dExXUmI2YUZGalJuZVdZV2VHZjNDMFI5eVVwOHg5R09sSDVfRHA4RFg3YjF5YzBkSE83T0ZMUXZLLUV5X2Y1QklIb2k2TlNaRTlVZXRnSHNqRUN2czg2RGtBZWdSNmRUNy1xZnFhTGx5YkdXR294QU9wdmZYQUE0bTBBLU9hQkp1Smh3STdCYnltSS1ONUZjc3pBazVPNkFsZklmdXJBU19YcXJTVFo1SGhpTFQ5TFJB&hl=en&ec=66429", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "continueAction": "QUFFLUhqbXowa0I5U2RLaG1pZTNLakhsbk1mUXRnODAxUXxBQ3Jtc0tuQXVsdjY1RTMybnVMT1lfNEQtMm5ZVWctZ2Y5dWxzc2RqQzlseHVpOXE3dExXUmI2YUZGalJuZVdZV2VHZjNDMFI5eVVwOHg5R09sSDVfRHA4RFg3YjF5YzBkSE83T0ZMUXZLLUV5X2Y1QklIb2k2TlNaRTlVZXRnSHNqRUN2czg2RGtBZWdSNmRUNy1xZnFhTGx5YkdXR294QU9wdmZYQUE0bTBBLU9hQkp1Smh3STdCYnltSS1ONUZjc3pBazVPNkFsZklmdXJBU19YcXJTVFo1SGhpTFQ5TFJB", + "idamTag": "66429", + "nextEndpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgVhYm91dA%3D%3D" + }, + "clickTrackingParams": "CBUQ_YYEIhMI0Jfy6Y-u-gIVxehRCh3KTQcD", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/about", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + } + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_BLUE_TEXT", + "text": { + "simpleText": "Sign in" + }, + "trackingParams": "CBUQ_YYEIhMI0Jfy6Y-u-gIVxehRCh3KTQcD" + } + }, + "content": { + "simpleText": "Sign in to subscribe to this channel." + }, + "title": { + "simpleText": "Want to subscribe to this channel?" + } + } + } + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_DESTRUCTIVE", + "text": { + "runs": [ + { + "text": "Subscribe" + } + ] + }, + "trackingParams": "CBQQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "subscriberCountText": { + "accessibility": { + "accessibilityData": { + "label": "881K subscribers" + } + }, + "simpleText": "881K subscribers" + }, + "title": "EEVblog", + "trackingParams": "CBAQ8DsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "tvBanner": { + "thumbnails": [ + { + "height": 180, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w320-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 320 + }, + { + "height": 480, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w854-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 854 + }, + { + "height": 720, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1280-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 1280 + }, + { + "height": 1080, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1920-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 1920 + }, + { + "height": 1192, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2120-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 2120 + } + ] + }, + "visitTracking": { + "remarketingPing": "https://www.youtube.com/pagead/viewthroughconversion/962985656/?backend=innertube&cname=1&cver=2_20220921_08_00&foc_id=2DjFE7Xf11URZqWBigcVOQ&label=followon_cvisit&ptype=no_rmkt&utuid=2DjFE7Xf11URZqWBigcVOQ" + } + } + }, + "metadata": { + "channelMetadataRenderer": { + "androidAppindexingLink": "android-app://com.google.android.youtube/http/www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "androidDeepLink": "android-app://com.google.android.youtube/http/www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "availableCountryCodes": [ + "LV", + "IE", + "OM", + "PF", + "IS", + "RS", + "SB", + "TR", + "ML", + "KY", + "TM", + "DK", + "TJ", + "GS", + "BT", + "AF", + "BA", + "HN", + "LC", + "SK", + "ZA", + "MZ", + "CY", + "MY", + "UY", + "GD", + "NC", + "CI", + "CM", + "GI", + "CC", + "QA", + "TV", + "BD", + "LB", + "SS", + "SY", + "MX", + "NL", + "SV", + "LS", + "GW", + "NI", + "VG", + "NP", + "HT", + "UG", + "AS", + "YE", + "KG", + "NO", + "MK", + "RE", + "BQ", + "ES", + "CO", + "CK", + "VE", + "ID", + "AR", + "FJ", + "IL", + "KE", + "UZ", + "GG", + "SA", + "CH", + "PL", + "AT", + "TW", + "BY", + "PW", + "KM", + "DE", + "VI", + "VN", + "MQ", + "PH", + "PS", + "SZ", + "FR", + "JM", + "PE", + "GR", + "NF", + "SI", + "ER", + "AX", + "EG", + "GY", + "CU", + "CZ", + "MN", + "GU", + "BL", + "LY", + "GH", + "SG", + "MU", + "AI", + "GT", + "TF", + "NA", + "SX", + "DM", + "ZM", + "JP", + "GQ", + "MF", + "PN", + "YT", + "PT", + "KN", + "AO", + "ET", + "SM", + "AL", + "BR", + "KZ", + "IQ", + "ZW", + "VU", + "MH", + "GA", + "AW", + "DZ", + "WS", + "KH", + "RW", + "CX", + "LU", + "MT", + "NZ", + "CF", + "SO", + "EH", + "BF", + "IO", + "ME", + "MO", + "PG", + "FK", + "GE", + "SE", + "ST", + "WF", + "BJ", + "HM", + "KP", + "LI", + "BB", + "UM", + "CN", + "SJ", + "BG", + "CD", + "MP", + "DO", + "GM", + "BO", + "NE", + "VA", + "LR", + "BV", + "BI", + "TD", + "CL", + "MS", + "HR", + "KW", + "MA", + "AU", + "AD", + "SD", + "IN", + "IT", + "DJ", + "NU", + "FO", + "KI", + "GN", + "TL", + "BZ", + "VC", + "MC", + "CG", + "EE", + "BS", + "SL", + "HU", + "LT", + "NR", + "AG", + "CR", + "GL", + "LA", + "PY", + "KR", + "MG", + "BW", + "BH", + "PM", + "US", + "FI", + "FM", + "IM", + "GB", + "MW", + "BE", + "BM", + "MR", + "SC", + "NG", + "CW", + "CA", + "TT", + "AE", + "JO", + "AM", + "TH", + "MD", + "CV", + "TZ", + "PR", + "UA", + "SH", + "AQ", + "EC", + "IR", + "LK", + "TO", + "SR", + "TK", + "BN", + "GP", + "MM", + "PA", + "HK", + "SN", + "TN", + "JE", + "PK", + "TC", + "GF", + "TG", + "RO", + "RU", + "MV", + "AZ" + ], + "avatar": { + "thumbnails": [ + { + "height": 900, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s900-c-k-c0x00ffffff-no-rj", + "width": 900 + } + ] + }, + "channelConversionUrl": "https://www.youtube.com/pagead/viewthroughconversion/962985656/?backend=innertube&cname=1&cver=2_20220921_08_00&foc_id=2DjFE7Xf11URZqWBigcVOQ&label=followon_cvisit&ptype=no_rmkt&utuid=2DjFE7Xf11URZqWBigcVOQ", + "channelUrl": "https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "description": "NO SCRIPT, NO FEAR, ALL OPINION\nAn off-the-cuff Video Blog about Electronics Engineering, for engineers, hobbyists, enthusiasts, hackers and Makers\nHosted by Dave Jones from Sydney Australia\n\nDONATIONS:\nBitcoin: 3KqyH1U3qrMPnkLufM2oHDU7YB4zVZeFyZ\nEthereum: 0x99ccc4d2654ba40744a1f678d9868ecb15e91206\nPayPal: david@alternatezone.com\n\nPatreon: https://www.patreon.com/eevblog\n\nEEVblog2: http://www.youtube.com/EEVblog2\nEEVdiscover: https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ\n\nEMAIL:\nAdvertising/Commercial: eevblog+business@gmail.com\nFan mail: eevblog+fan@gmail.com\nHate Mail: eevblog+hate@gmail.com\n\nI DON'T DO PAID VIDEO SPONSORSHIPS, DON'T ASK!\n\nPLEASE:\nDo NOT ask for personal advice on something, post it in the EEVblog forum.\nI read ALL email, but please don't be offended if I don't have time to reply, I get a LOT of email.\n\nMailbag\nPO Box 7949\nBaulkham Hills NSW 2153\nAUSTRALIA", + "doubleclickTrackingUsername": "EEVblog", + "externalId": "UC2DjFE7Xf11URZqWBigcVOQ", + "facebookProfileId": "EEVblog", + "iosAppindexingLink": "ios-app://544007664/vnd.youtube/www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "isFamilySafe": true, + "keywords": "electronics engineering maker hacker design circuit hardware pic atmel oscilloscope multimeter diy hobby review teardown microcontroller arduino video blog tutorial how-to interview rant industry news mailbag \"dumpster diving\" debunking", + "ownerUrls": [ + "http://www.youtube.com/c/EevblogDave" + ], + "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC2DjFE7Xf11URZqWBigcVOQ", + "title": "EEVblog", + "vanityChannelUrl": "http://www.youtube.com/c/EevblogDave" + } + }, + "microformat": { + "microformatDataRenderer": { + "androidPackage": "com.google.android.youtube", + "appName": "YouTube", + "availableCountries": [ + "LV", + "IE", + "OM", + "PF", + "IS", + "RS", + "SB", + "TR", + "ML", + "KY", + "TM", + "DK", + "TJ", + "GS", + "BT", + "AF", + "BA", + "HN", + "LC", + "SK", + "ZA", + "MZ", + "CY", + "MY", + "UY", + "GD", + "NC", + "CI", + "CM", + "GI", + "CC", + "QA", + "TV", + "BD", + "LB", + "SS", + "SY", + "MX", + "NL", + "SV", + "LS", + "GW", + "NI", + "VG", + "NP", + "HT", + "UG", + "AS", + "YE", + "KG", + "NO", + "MK", + "RE", + "BQ", + "ES", + "CO", + "CK", + "VE", + "ID", + "AR", + "FJ", + "IL", + "KE", + "UZ", + "GG", + "SA", + "CH", + "PL", + "AT", + "TW", + "BY", + "PW", + "KM", + "DE", + "VI", + "VN", + "MQ", + "PH", + "PS", + "SZ", + "FR", + "JM", + "PE", + "GR", + "NF", + "SI", + "ER", + "AX", + "EG", + "GY", + "CU", + "CZ", + "MN", + "GU", + "BL", + "LY", + "GH", + "SG", + "MU", + "AI", + "GT", + "TF", + "NA", + "SX", + "DM", + "ZM", + "JP", + "GQ", + "MF", + "PN", + "YT", + "PT", + "KN", + "AO", + "ET", + "SM", + "AL", + "BR", + "KZ", + "IQ", + "ZW", + "VU", + "MH", + "GA", + "AW", + "DZ", + "WS", + "KH", + "RW", + "CX", + "LU", + "MT", + "NZ", + "CF", + "SO", + "EH", + "BF", + "IO", + "ME", + "MO", + "PG", + "FK", + "GE", + "SE", + "ST", + "WF", + "BJ", + "HM", + "KP", + "LI", + "BB", + "UM", + "CN", + "SJ", + "BG", + "CD", + "MP", + "DO", + "GM", + "BO", + "NE", + "VA", + "LR", + "BV", + "BI", + "TD", + "CL", + "MS", + "HR", + "KW", + "MA", + "AU", + "AD", + "SD", + "IN", + "IT", + "DJ", + "NU", + "FO", + "KI", + "GN", + "TL", + "BZ", + "VC", + "MC", + "CG", + "EE", + "BS", + "SL", + "HU", + "LT", + "NR", + "AG", + "CR", + "GL", + "LA", + "PY", + "KR", + "MG", + "BW", + "BH", + "PM", + "US", + "FI", + "FM", + "IM", + "GB", + "MW", + "BE", + "BM", + "MR", + "SC", + "NG", + "CW", + "CA", + "TT", + "AE", + "JO", + "AM", + "TH", + "MD", + "CV", + "TZ", + "PR", + "UA", + "SH", + "AQ", + "EC", + "IR", + "LK", + "TO", + "SR", + "TK", + "BN", + "GP", + "MM", + "PA", + "HK", + "SN", + "TN", + "JE", + "PK", + "TC", + "GF", + "TG", + "RO", + "RU", + "MV", + "AZ" + ], + "description": "NO SCRIPT, NO FEAR, ALL OPINION An off-the-cuff Video Blog about Electronics Engineering, for engineers, hobbyists, enthusiasts, hackers and Makers Hosted by...", + "familySafe": true, + "iosAppArguments": "https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "iosAppStoreId": "544007664", + "linkAlternates": [ + { + "hrefUrl": "https://m.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ" + }, + { + "hrefUrl": "android-app://com.google.android.youtube/http/youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ" + }, + { + "hrefUrl": "ios-app://544007664/http/youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ" + } + ], + "noindex": false, + "ogType": "yt-fb-app:channel", + "schemaDotOrgType": "http://schema.org/http://schema.org/YoutubeChannelV2", + "siteName": "YouTube", + "tags": [ + "electronics", + "engineering", + "maker", + "hacker", + "design", + "circuit", + "hardware", + "pic", + "atmel", + "oscilloscope", + "multimeter", + "diy", + "hobby", + "review", + "teardown", + "microcontroller", + "arduino", + "video", + "blog", + "tutorial", + "how-to", + "interview", + "rant", + "industry", + "news", + "mailbag", + "dumpster diving", + "debunking" + ], + "thumbnail": { + "thumbnails": [ + { + "height": 200, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=19259", + "width": 200 + } + ] + }, + "title": "EEVblog", + "twitterCardType": "summary", + "twitterSiteHandle": "@YouTube", + "unlisted": false, + "urlApplinksAndroid": "vnd.youtube://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=applinks", + "urlApplinksIos": "vnd.youtube://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=applinks", + "urlApplinksWeb": "https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=applinks", + "urlCanonical": "https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "urlTwitterAndroid": "vnd.youtube://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=twitter-deep-link", + "urlTwitterIos": "vnd.youtube://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=twitter-deep-link" + } + }, + "responseContext": { + "mainAppWebResponseContext": { + "loggedOut": true + }, + "maxAgeSeconds": 300, + "serviceTrackingParams": [ + { + "params": [ + { + "key": "route", + "value": "channel.about" + }, + { + "key": "is_casual", + "value": "false" + }, + { + "key": "is_owner", + "value": "false" + }, + { + "key": "is_monetization_enabled", + "value": "true" + }, + { + "key": "num_shelves", + "value": "3" + }, + { + "key": "is_alc_surface", + "value": "false" + }, + { + "key": "browse_id", + "value": "UC2DjFE7Xf11URZqWBigcVOQ" + }, + { + "key": "logged_in", + "value": "0" + }, + { + "key": "e", + "value": "1714240,23804281,23858057,23882685,23918597,23934970,23946420,23966208,23983296,23986025,23998056,24001373,24002022,24002025,24004644,24007246,24034168,24036947,24077241,24080738,24120820,24135310,24140247,24152442,24160837,24161116,24164186,24166867,24169501,24175559,24181174,24185614,24187043,24187377,24191629,24197275,24199724,24199774,24211178,24211242,24219713,24225483,24226335,24227844,24228637,24229161,24238596,24241378,24243988,24246430,24248385,24249085,24254502,24255165,24255543,24255545,24260441,24260783,24260844,24262346,24263796,24264860,24265820,24267564,24267570,24268142,24268870,24268936,24272785,24275322,24276632,24277923,24277989,24278489,24280256,24280303,24281190,24283093,24283281,24286003,24286010,24286017,24286396,24287795,24288047,24289901,24290131,24290276,24292296,24292715,24293107,39322278,39322357,39322382,39322386,39322399,39322456,45686551" + } + ], + "service": "GFEEDBACK" + }, + { + "params": [ + { + "key": "browse_id", + "value": "UC2DjFE7Xf11URZqWBigcVOQ" + } + ], + "service": "GOOGLE_HELP" + }, + { + "params": [ + { + "key": "c", + "value": "WEB" + }, + { + "key": "cver", + "value": "2.20220921.08.00" + }, + { + "key": "yt_li", + "value": "0" + }, + { + "key": "GetChannelPage_rid", + "value": "0xaada99e22093f27c" + } + ], + "service": "CSI" + }, + { + "params": [ + { + "key": "logged_in", + "value": "0" + } + ], + "service": "GUIDED_HELP" + }, + { + "params": [ + { + "key": "client.version", + "value": "2.20220921" + }, + { + "key": "client.name", + "value": "WEB" + }, + { + "key": "client.fexp", + "value": "23966208,24140247,24272785,24286010,24161116,24286017,23983296,24267570,39322456,24226335,24268936,24286396,23882685,24243988,24277989,24255543,1714240,39322386,24280303,24185614,24283281,24199724,24036947,24268142,24187377,24260441,24290276,24248385,39322382,24120820,24293107,24211242,23858057,24169501,39322399,24219713,24002022,24080738,39322357,24225483,24249085,24199774,24265820,23918597,45686551,24260844,24254502,24246430,24255545,24077241,24175559,24290131,23946420,23804281,24001373,24152442,24276632,24197275,24181174,24228637,24280256,24034168,24275322,24160837,24238596,24281190,24292715,24002025,24262346,24166867,24283093,24227844,24287795,24278489,24255165,24263796,24267564,24264860,24191629,24292296,24260783,24229161,24241378,24187043,23986025,24164186,39322278,23934970,24007246,24277923,23998056,24135310,24288047,24004644,24211178,24286003,24268870,24289901" + } + ], + "service": "ECATCHER" + } + ], + "visitorData": "CgszMUUzZDlGLWxiRSipqr2ZBg%3D%3D", + "webResponseContextExtensionData": { + "hasDecorated": true + } + }, + "topbar": { + "desktopTopbarRenderer": { + "a11ySkipNavigationButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAUQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAUQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "signalAction": { + "signal": "SKIP_NAVIGATION" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "text": { + "runs": [ + { + "text": "Skip navigation" + } + ] + }, + "trackingParams": "CAUQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "backButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAcQvIYDIhMI0Jfy6Y-u-gIVxehRCh3KTQcD", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAcQvIYDIhMI0Jfy6Y-u-gIVxehRCh3KTQcD", + "signalAction": { + "signal": "HISTORY_BACK" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "trackingParams": "CAcQvIYDIhMI0Jfy6Y-u-gIVxehRCh3KTQcD" + } + }, + "forwardButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAYQvYYDIhMI0Jfy6Y-u-gIVxehRCh3KTQcD", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAYQvYYDIhMI0Jfy6Y-u-gIVxehRCh3KTQcD", + "signalAction": { + "signal": "HISTORY_FORWARD" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "trackingParams": "CAYQvYYDIhMI0Jfy6Y-u-gIVxehRCh3KTQcD" + } + }, + "hotkeyDialog": { + "hotkeyDialogRenderer": { + "dismissButton": { + "buttonRenderer": { + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_BLUE_TEXT", + "text": { + "runs": [ + { + "text": "Dismiss" + } + ] + }, + "trackingParams": "CAkQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "sections": [ + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "k", + "label": { + "runs": [ + { + "text": "Toggle play/pause" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "j", + "label": { + "runs": [ + { + "text": "Rewind 10 seconds" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "l", + "label": { + "runs": [ + { + "text": "Fast forward 10 seconds" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "P (SHIFT+p)", + "label": { + "runs": [ + { + "text": "Previous video" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "N (SHIFT+n)", + "label": { + "runs": [ + { + "text": "Next video" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": ",", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Comma" + } + }, + "label": { + "runs": [ + { + "text": "Previous frame (while paused)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": ".", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Period" + } + }, + "label": { + "runs": [ + { + "text": "Next frame (while paused)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "< (SHIFT+,)", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Less than or SHIFT + comma" + } + }, + "label": { + "runs": [ + { + "text": "Decrease playback rate" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "> (SHIFT+.)", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Greater than or SHIFT + period" + } + }, + "label": { + "runs": [ + { + "text": "Increase playback rate" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "0..9", + "label": { + "runs": [ + { + "text": "Seek to specific point in the video (7 advances to 70% of duration)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "CONTROL + ←", + "label": { + "runs": [ + { + "text": "Seek to previous chapter" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "CONTROL + →", + "label": { + "runs": [ + { + "text": "Seek to next chapter" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Playback" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "f", + "label": { + "runs": [ + { + "text": "Toggle full screen" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "t", + "label": { + "runs": [ + { + "text": "Toggle theater mode" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "i", + "label": { + "runs": [ + { + "text": "Toggle miniplayer" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "ESCAPE", + "label": { + "runs": [ + { + "text": "Close miniplayer or current dialog" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "m", + "label": { + "runs": [ + { + "text": "Toggle mute" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "General" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "c", + "label": { + "runs": [ + { + "text": "If the video supports captions, toggle captions ON/OFF" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "o", + "label": { + "runs": [ + { + "text": "Rotate through different text opacity levels" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "w", + "label": { + "runs": [ + { + "text": "Rotate through different window opacity levels" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "+", + "label": { + "runs": [ + { + "text": "Rotate through font sizes (increasing)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "-", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Minus" + } + }, + "label": { + "runs": [ + { + "text": "Rotate through font sizes (decreasing)" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Subtitles and closed captions" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "w", + "label": { + "runs": [ + { + "text": "Pan up" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "a", + "label": { + "runs": [ + { + "text": "Pan left" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "s", + "label": { + "runs": [ + { + "text": "Pan down" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "d", + "label": { + "runs": [ + { + "text": "Pan right" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "+ on numpad or ]", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Plus on number pad or right bracket" + } + }, + "label": { + "runs": [ + { + "text": "Zoom in" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "- on numpad or [", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Minus on number pad or left bracket" + } + }, + "label": { + "runs": [ + { + "text": "Zoom out" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Spherical Videos" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Keyboard shortcuts" + } + ] + }, + "trackingParams": "CAgQteYDIhMI0Jfy6Y-u-gIVxehRCh3KTQcD" + } + }, + "logo": { + "topbarLogoRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "FEwhat_to_watch" + }, + "clickTrackingParams": "CA8QsV4iEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3854, + "url": "/", + "webPageType": "WEB_PAGE_TYPE_BROWSE" + } + } + }, + "iconImage": { + "iconType": "YOUTUBE_LOGO" + }, + "overrideEntityKey": "EgZ0b3BiYXIg9QEoAQ%3D%3D", + "tooltipText": { + "runs": [ + { + "text": "YouTube Home" + } + ] + }, + "trackingParams": "CA8QsV4iEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "searchbox": { + "fusionSearchboxRenderer": { + "clearButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Clear search query" + } + }, + "icon": { + "iconType": "CLOSE" + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "trackingParams": "CA4Q8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "config": { + "webSearchboxConfig": { + "focusSearchbox": true, + "hasOnscreenKeyboard": false, + "requestDomain": "us", + "requestLanguage": "en" + } + }, + "icon": { + "iconType": "SEARCH" + }, + "placeholderText": { + "runs": [ + { + "text": "Search" + } + ] + }, + "searchEndpoint": { + "clickTrackingParams": "CA0Q7VAiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 4724, + "url": "/results?search_query=", + "webPageType": "WEB_PAGE_TYPE_SEARCH" + } + }, + "searchEndpoint": { + "query": "" + } + }, + "trackingParams": "CA0Q7VAiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "topbarButtons": [ + { + "topbarMenuButtonRenderer": { + "accessibility": { + "accessibilityData": { + "label": "Settings" + } + }, + "icon": { + "iconType": "MORE_VERT" + }, + "menuRequest": { + "clickTrackingParams": "CAsQ_qsBGAAiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/account/account_menu", + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAsQ_qsBGAAiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "openPopupAction": { + "beReused": true, + "popup": { + "multiPageMenuRenderer": { + "showLoadingSpinner": true, + "style": "MULTI_PAGE_MENU_STYLE_TYPE_SYSTEM", + "trackingParams": "CAwQ_6sBIhMI0Jfy6Y-u-gIVxehRCh3KTQcD" + } + }, + "popupType": "DROPDOWN" + } + } + ], + "signal": "GET_ACCOUNT_MENU" + } + }, + "style": "STYLE_DEFAULT", + "tooltip": "Settings", + "trackingParams": "CAsQ_qsBGAAiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + { + "buttonRenderer": { + "icon": { + "iconType": "AVATAR_LOGGED_OUT" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAoQ1IAEGAEiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fyoutubei%252Fv1%252Fbrowse%253Fkey%253DAIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8%2526prettyPrint%253Dfalse&hl=en&ec=65620", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "idamTag": "65620" + } + }, + "size": "SIZE_SMALL", + "style": "STYLE_SUGGESTIVE", + "targetId": "topbar-signin", + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "trackingParams": "CAoQ1IAEGAEiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + } + ], + "trackingParams": "CAEQq6wBIhMI0Jfy6Y-u-gIVxehRCh3KTQcD", + "voiceSearchButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Search with your voice" + } + }, + "icon": { + "iconType": "MICROPHONE_ON" + }, + "isDisabled": false, + "serviceEndpoint": { + "clickTrackingParams": "CAIQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAIQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=", + "openPopupAction": { + "popup": { + "voiceSearchDialogRenderer": { + "connectionErrorHeader": { + "runs": [ + { + "text": "No connection" + } + ] + }, + "connectionErrorMicrophoneLabel": { + "runs": [ + { + "text": "Check your connection and try again" + } + ] + }, + "disabledHeader": { + "runs": [ + { + "text": "Search with your voice" + } + ] + }, + "disabledSubtext": { + "runs": [ + { + "text": "To search by voice, go to your browser settings and allow access to microphone" + } + ] + }, + "exampleQuery1": { + "runs": [ + { + "text": "\"Play Dua Lipa\"" + } + ] + }, + "exampleQuery2": { + "runs": [ + { + "text": "\"Show me my subscriptions\"" + } + ] + }, + "exitButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Cancel" + } + }, + "icon": { + "iconType": "CLOSE" + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "trackingParams": "CAQQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + }, + "loadingHeader": { + "runs": [ + { + "text": "Working..." + } + ] + }, + "microphoneButtonAriaLabel": { + "runs": [ + { + "text": "Cancel" + } + ] + }, + "microphoneOffPromptHeader": { + "runs": [ + { + "text": "Microphone off. Try again." + } + ] + }, + "permissionsHeader": { + "runs": [ + { + "text": "Waiting for permission" + } + ] + }, + "permissionsSubtext": { + "runs": [ + { + "text": "Allow microphone access to search with voice" + } + ] + }, + "placeholderHeader": { + "runs": [ + { + "text": "Listening..." + } + ] + }, + "promptHeader": { + "runs": [ + { + "text": "Didn't hear that. Try again." + } + ] + }, + "promptMicrophoneLabel": { + "runs": [ + { + "text": "Tap microphone to try again" + } + ] + }, + "trackingParams": "CAMQ7q8FIhMI0Jfy6Y-u-gIVxehRCh3KTQcD" + } + }, + "popupType": "TOP_ALIGNED_DIALOG" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "tooltip": "Search with your voice", + "trackingParams": "CAIQ8FsiEwjQl_Lpj676AhXF6FEKHcpNBwM=" + } + } + } + }, + "trackingParams": "CAAQhGciEwjQl_Lpj676AhXF6FEKHcpNBwM=" +} diff --git a/testfiles/channel/channel_playlists.json b/testfiles/channel/channel_playlists.json new file mode 100644 index 0000000..a57edde --- /dev/null +++ b/testfiles/channel/channel_playlists.json @@ -0,0 +1,8584 @@ +{ + "contents": { + "twoColumnBrowseResultsRenderer": { + "tabs": [ + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "disablePullToRefresh": true, + "trackingParams": "CGQQui8iEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EghmZWF0dXJlZA%3D%3D" + }, + "clickTrackingParams": "CGMQ8JMBGAUiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/featured", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Home", + "trackingParams": "CGMQ8JMBGAUiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "disablePullToRefresh": true, + "trackingParams": "CGIQui8iEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgZ2aWRlb3M%3D" + }, + "clickTrackingParams": "CGEQ8JMBGAYiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/videos", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Videos", + "trackingParams": "CGEQ8JMBGAYiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "contents": [ + { + "itemSectionRenderer": { + "contents": [ + { + "gridRenderer": { + "items": [ + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CF8QljUYACITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=4yosozyeIP4&list=PLvOlSehNtuHtOV3AEwhuea4TnviddKfAj", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0T1YzQUV3aHVlYTRUbnZpZGRLZkFq" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtOV3AEwhuea4TnviddKfAj", + "videoId": "4yosozyeIP4", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jelnes.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=e32a2ca33c9e20fe&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CF8QljUYACITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHtOV3AEwhuea4TnviddKfAj", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/Kr2XyhpUdUI/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/4yosozyeIP4/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAkwsCiJjFkWhYxtcg5NgfnQbkZrA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "2" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/4yosozyeIP4/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAkwsCiJjFkWhYxtcg5NgfnQbkZrA", + "width": 480 + } + ] + }, + "trackingParams": "CGAQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CF8QljUYACITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=4yosozyeIP4&list=PLvOlSehNtuHtOV3AEwhuea4TnviddKfAj", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0T1YzQUV3aHVlYTRUbnZpZGRLZkFq" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtOV3AEwhuea4TnviddKfAj", + "videoId": "4yosozyeIP4", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jelnes.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=e32a2ca33c9e20fe&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "MacGyver Project" + } + ] + }, + "trackingParams": "CF8QljUYACITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "2" + }, + "videoCountText": { + "runs": [ + { + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHtOV3AEwhuea4TnviddKfAj" + }, + "clickTrackingParams": "CF8QljUYACITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHtOV3AEwhuea4TnviddKfAj", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CF0QljUYASITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=S3R4r2xvVYQ&list=PLvOlSehNtuHuvHE5GQrQJxWXHdmW2l5IF", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1dkhFNUdRclFKeFdYSGRtVzJsNUlG" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHuvHE5GQrQJxWXHdmW2l5IF", + "videoId": "S3R4r2xvVYQ", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr3---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=4b7478af6c6f5584&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CF0QljUYASITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHuvHE5GQrQJxWXHdmW2l5IF", + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/S3R4r2xvVYQ/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLB7HH5drG-33c1SyRe9kyZBrXvm3A", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "1" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/S3R4r2xvVYQ/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLB7HH5drG-33c1SyRe9kyZBrXvm3A", + "width": 480 + } + ] + }, + "trackingParams": "CF4Qy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "1" + }, + { + "text": " video" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CF0QljUYASITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=S3R4r2xvVYQ&list=PLvOlSehNtuHuvHE5GQrQJxWXHdmW2l5IF", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1dkhFNUdRclFKeFdYSGRtVzJsNUlG" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHuvHE5GQrQJxWXHdmW2l5IF", + "videoId": "S3R4r2xvVYQ", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr3---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=4b7478af6c6f5584&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Calculators" + } + ] + }, + "trackingParams": "CF0QljUYASITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "1" + }, + "videoCountText": { + "runs": [ + { + "text": "1 video" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHuvHE5GQrQJxWXHdmW2l5IF" + }, + "clickTrackingParams": "CF0QljUYASITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHuvHE5GQrQJxWXHdmW2l5IF", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CFsQljUYAiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=WPyEFB4cHkA&list=PLvOlSehNtuHs6wRwVSaErU0BEnLiHfnKJ", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzNndSd1ZTYUVyVTBCRW5MaUhmbktK" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHs6wRwVSaErU0BEnLiHfnKJ", + "videoId": "WPyEFB4cHkA", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeened.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=58fc84141e1c1e40&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CFsQljUYAiITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHs6wRwVSaErU0BEnLiHfnKJ", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/YM--cxT6X3k/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/UKIzhz0XLaQ/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/9s9LXOBknck/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/WPyEFB4cHkA/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAzBuQFV8T9hM8adlPvv58C9TeDug", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "9" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/WPyEFB4cHkA/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAzBuQFV8T9hM8adlPvv58C9TeDug", + "width": 480 + } + ] + }, + "trackingParams": "CFwQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "9" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CFsQljUYAiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=WPyEFB4cHkA&list=PLvOlSehNtuHs6wRwVSaErU0BEnLiHfnKJ", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzNndSd1ZTYUVyVTBCRW5MaUhmbktK" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHs6wRwVSaErU0BEnLiHfnKJ", + "videoId": "WPyEFB4cHkA", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeened.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=58fc84141e1c1e40&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "BM235" + } + ] + }, + "trackingParams": "CFsQljUYAiITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "9" + }, + "videoCountText": { + "runs": [ + { + "text": "9" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHs6wRwVSaErU0BEnLiHfnKJ" + }, + "clickTrackingParams": "CFsQljUYAiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHs6wRwVSaErU0BEnLiHfnKJ", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CFkQljUYAyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=uus_cpZiqsU&list=PLvOlSehNtuHu4k0ZkKFLsysSB5iava6Qu", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1NGswWmtLRkxzeXNTQjVpYXZhNlF1" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHu4k0ZkKFLsysSB5iava6Qu", + "videoId": "uus_cpZiqsU", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeln7l.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=baeb3f729662aac5&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CFkQljUYAyITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHu4k0ZkKFLsysSB5iava6Qu", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/1Y2L6QLOi-c/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/uus_cpZiqsU/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCqdsjWVFaLOkEcXgbZD2Eca8MnuQ", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "2" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/uus_cpZiqsU/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCqdsjWVFaLOkEcXgbZD2Eca8MnuQ", + "width": 480 + } + ] + }, + "trackingParams": "CFoQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CFkQljUYAyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=uus_cpZiqsU&list=PLvOlSehNtuHu4k0ZkKFLsysSB5iava6Qu", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1NGswWmtLRkxzeXNTQjVpYXZhNlF1" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHu4k0ZkKFLsysSB5iava6Qu", + "videoId": "uus_cpZiqsU", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeln7l.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=baeb3f729662aac5&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Vibration Measurement" + } + ] + }, + "trackingParams": "CFkQljUYAyITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "2" + }, + "videoCountText": { + "runs": [ + { + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHu4k0ZkKFLsysSB5iava6Qu" + }, + "clickTrackingParams": "CFkQljUYAyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHu4k0ZkKFLsysSB5iava6Qu", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CFcQljUYBCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=uq1DMWtjL2U&list=PLvOlSehNtuHtdQF-m5UFZ5GEjABadI3kI", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0ZFFGLW01VUZaNUdFakFCYWRJM2tJ" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtdQF-m5UFZ5GEjABadI3kI", + "videoId": "uq1DMWtjL2U", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenl6.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=baad43316b632f65&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CFcQljUYBCITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHtdQF-m5UFZ5GEjABadI3kI", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/YHRxvUqy3Uw/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/c5M8P6oe9xY/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/i1Ad5jfk_v4/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/uq1DMWtjL2U/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAbgb1Jdb5P69JGdZQ-a8asLLyYdA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "4" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/uq1DMWtjL2U/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAbgb1Jdb5P69JGdZQ-a8asLLyYdA", + "width": 480 + } + ] + }, + "trackingParams": "CFgQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "4" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CFcQljUYBCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=uq1DMWtjL2U&list=PLvOlSehNtuHtdQF-m5UFZ5GEjABadI3kI", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0ZFFGLW01VUZaNUdFakFCYWRJM2tJ" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtdQF-m5UFZ5GEjABadI3kI", + "videoId": "uq1DMWtjL2U", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenl6.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=baad43316b632f65&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Component Selection" + } + ] + }, + "trackingParams": "CFcQljUYBCITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "4" + }, + "videoCountText": { + "runs": [ + { + "text": "4" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHtdQF-m5UFZ5GEjABadI3kI" + }, + "clickTrackingParams": "CFcQljUYBCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHtdQF-m5UFZ5GEjABadI3kI", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CFUQljUYBSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=oIImmlfCyzo&list=PLvOlSehNtuHtlndPUSOPgsujUdq1c5Mr9", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0bG5kUFVTT1Bnc3VqVWRxMWM1TXI5" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtlndPUSOPgsujUdq1c5Mr9", + "videoId": "oIImmlfCyzo", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr1---sn-h0jeln7l.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=a082269a57c2cb3a&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CFUQljUYBSITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHtlndPUSOPgsujUdq1c5Mr9", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/dM50P4K9UVk/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/AvAlEe6qecM/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/l6n8UEKZies/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/oIImmlfCyzo/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBxApgyGu3dNXRGoqLctVUnESpEIA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "18" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/oIImmlfCyzo/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBxApgyGu3dNXRGoqLctVUnESpEIA", + "width": 480 + } + ] + }, + "trackingParams": "CFYQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "18" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CFUQljUYBSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=oIImmlfCyzo&list=PLvOlSehNtuHtlndPUSOPgsujUdq1c5Mr9", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0bG5kUFVTT1Bnc3VqVWRxMWM1TXI5" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtlndPUSOPgsujUdq1c5Mr9", + "videoId": "oIImmlfCyzo", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr1---sn-h0jeln7l.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=a082269a57c2cb3a&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Solar Roadways" + } + ] + }, + "trackingParams": "CFUQljUYBSITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "18" + }, + "videoCountText": { + "runs": [ + { + "text": "18" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHtlndPUSOPgsujUdq1c5Mr9" + }, + "clickTrackingParams": "CFUQljUYBSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHtlndPUSOPgsujUdq1c5Mr9", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CFMQljUYBiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=rrPtvYYJ2-g&list=PLvOlSehNtuHvD6M_7WeN071OVsZFE0_q-", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2RDZNXzdXZU4wNzFPVnNaRkUwX3Et" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvD6M_7WeN071OVsZFE0_q-", + "videoId": "rrPtvYYJ2-g", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeener.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=aeb3edbd8609dbe8&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CFMQljUYBiITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHvD6M_7WeN071OVsZFE0_q-", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/yEG6pKUdIlg/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/GfihUkWPCQQ/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/rrPtvYYJ2-g/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBEVc71xxSjJ-xlA_dDQaYIjdHyUw", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "3" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/rrPtvYYJ2-g/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBEVc71xxSjJ-xlA_dDQaYIjdHyUw", + "width": 480 + } + ] + }, + "trackingParams": "CFQQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "3" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CFMQljUYBiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=rrPtvYYJ2-g&list=PLvOlSehNtuHvD6M_7WeN071OVsZFE0_q-", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2RDZNXzdXZU4wNzFPVnNaRkUwX3Et" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvD6M_7WeN071OVsZFE0_q-", + "videoId": "rrPtvYYJ2-g", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeener.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=aeb3edbd8609dbe8&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Electronics Tutorials - AC Theory Series" + } + ] + }, + "trackingParams": "CFMQljUYBiITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "3" + }, + "videoCountText": { + "runs": [ + { + "text": "3" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHvD6M_7WeN071OVsZFE0_q-" + }, + "clickTrackingParams": "CFMQljUYBiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHvD6M_7WeN071OVsZFE0_q-", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CFEQljUYByITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=xSRe_4TQbuo&list=PLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0VkxxMk1EUEl6ODJCV01JWmN1d2hL" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK", + "videoId": "xSRe_4TQbuo", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeenl6.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=c5245eff84d06eea&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CFEQljUYByITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/AQK7RyecVW0/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/fHoHYEZnVIg/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/WBfAEeEzDlg/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/xSRe_4TQbuo/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLDP4V24_MG6vzvUZsHep9WFSCCY6Q", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "8" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/xSRe_4TQbuo/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLDP4V24_MG6vzvUZsHep9WFSCCY6Q", + "width": 480 + } + ] + }, + "trackingParams": "CFIQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "8" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CFEQljUYByITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=xSRe_4TQbuo&list=PLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0VkxxMk1EUEl6ODJCV01JWmN1d2hL" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK", + "videoId": "xSRe_4TQbuo", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeenl6.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=c5245eff84d06eea&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Electronics Tutorial - DC Fundamentals" + } + ] + }, + "trackingParams": "CFEQljUYByITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "8" + }, + "videoCountText": { + "runs": [ + { + "text": "8" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK" + }, + "clickTrackingParams": "CFEQljUYByITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHtVLq2MDPIz82BWMIZcuwhK", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CE8QljUYCCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=OiAmER1OJh4&list=PLvOlSehNtuHvIDfW3x2p4BY6l4RYgfBJE", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2SURmVzN4MnA0Qlk2bDRSWWdmQkpF" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvIDfW3x2p4BY6l4RYgfBJE", + "videoId": "OiAmER1OJh4", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=3a2026111d4e261e&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CE8QljUYCCITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHvIDfW3x2p4BY6l4RYgfBJE", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/2xy3Hm1_ZqI/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/nImoQcoqkuQ/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/GOlgaEK2Hsk/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/OiAmER1OJh4/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAXeGAvEc8y3pEsPUxWdsNIP9UmPw", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "13" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/OiAmER1OJh4/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAXeGAvEc8y3pEsPUxWdsNIP9UmPw", + "width": 480 + } + ] + }, + "trackingParams": "CFAQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "13" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CE8QljUYCCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=OiAmER1OJh4&list=PLvOlSehNtuHvIDfW3x2p4BY6l4RYgfBJE", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2SURmVzN4MnA0Qlk2bDRSWWdmQkpF" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvIDfW3x2p4BY6l4RYgfBJE", + "videoId": "OiAmER1OJh4", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=3a2026111d4e261e&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Oscilloscope Probing" + } + ] + }, + "trackingParams": "CE8QljUYCCITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "13" + }, + "videoCountText": { + "runs": [ + { + "text": "13" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHvIDfW3x2p4BY6l4RYgfBJE" + }, + "clickTrackingParams": "CE8QljUYCCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHvIDfW3x2p4BY6l4RYgfBJE", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CE0QljUYCSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=8ruFVmxf0zs&list=PLvOlSehNtuHu6Jjb8U82eKQfvKhJVl0Bu", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1NkpqYjhVODJlS1FmdktoSlZsMEJ1" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHu6Jjb8U82eKQfvKhJVl0Bu", + "videoId": "8ruFVmxf0zs", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr3---sn-h0jeened.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=f2bb85566c5fd33b&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CE0QljUYCSITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHu6Jjb8U82eKQfvKhJVl0Bu", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/2ygnAv6koSQ/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/RTmzVs6LHRo/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/NznO-DVfLd0/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/8ruFVmxf0zs/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCkE6yS4th9AsfNku19dhbZl4CbXA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "9" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/8ruFVmxf0zs/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCkE6yS4th9AsfNku19dhbZl4CbXA", + "width": 480 + } + ] + }, + "trackingParams": "CE4Qy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "9" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CE0QljUYCSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=8ruFVmxf0zs&list=PLvOlSehNtuHu6Jjb8U82eKQfvKhJVl0Bu", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1NkpqYjhVODJlS1FmdktoSlZsMEJ1" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHu6Jjb8U82eKQfvKhJVl0Bu", + "videoId": "8ruFVmxf0zs", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr3---sn-h0jeened.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=f2bb85566c5fd33b&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Thermal Design" + } + ] + }, + "trackingParams": "CE0QljUYCSITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "9" + }, + "videoCountText": { + "runs": [ + { + "text": "9" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHu6Jjb8U82eKQfvKhJVl0Bu" + }, + "clickTrackingParams": "CE0QljUYCSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHu6Jjb8U82eKQfvKhJVl0Bu", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CEsQljUYCiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=CPcZm1Tu5VI&list=PLvOlSehNtuHs-X2Awg33PCBNrP2BGFVhC", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzLVgyQXdnMzNQQ0JOclAyQkdGVmhD" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHs-X2Awg33PCBNrP2BGFVhC", + "videoId": "CPcZm1Tu5VI", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenl6.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=08f7199b54eee552&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CEsQljUYCiITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHs-X2Awg33PCBNrP2BGFVhC", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/dKs3LytrICA/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/hbPKE62aM0U/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/svNDD4XRJF4/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/CPcZm1Tu5VI/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCsm8De0QaHPaeCZqxMp_F464fWzg", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "7" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/CPcZm1Tu5VI/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCsm8De0QaHPaeCZqxMp_F464fWzg", + "width": 480 + } + ] + }, + "trackingParams": "CEwQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "7" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CEsQljUYCiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=CPcZm1Tu5VI&list=PLvOlSehNtuHs-X2Awg33PCBNrP2BGFVhC", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzLVgyQXdnMzNQQ0JOclAyQkdGVmhD" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHs-X2Awg33PCBNrP2BGFVhC", + "videoId": "CPcZm1Tu5VI", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenl6.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=08f7199b54eee552&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Electric Cars" + } + ] + }, + "trackingParams": "CEsQljUYCiITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "7" + }, + "videoCountText": { + "runs": [ + { + "text": "7" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHs-X2Awg33PCBNrP2BGFVhC" + }, + "clickTrackingParams": "CEsQljUYCiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHs-X2Awg33PCBNrP2BGFVhC", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CEkQljUYCyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=0AEVilxXAAo&list=PLvOlSehNtuHuLODLTeq3PM-OJRP2nzNUa", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1TE9ETFRlcTNQTS1PSlJQMm56TlVh" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHuLODLTeq3PM-OJRP2nzNUa", + "videoId": "0AEVilxXAAo", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenld.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=d001158a5c57000a&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CEkQljUYCyITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHuLODLTeq3PM-OJRP2nzNUa", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/y5qjGPZ5VhQ/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/UVjLoJMVL0s/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/0AEVilxXAAo/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCjotFuRjPPBHd2LWzt3lviPj9HaA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "3" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/0AEVilxXAAo/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCjotFuRjPPBHd2LWzt3lviPj9HaA", + "width": 480 + } + ] + }, + "trackingParams": "CEoQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "3" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CEkQljUYCyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=0AEVilxXAAo&list=PLvOlSehNtuHuLODLTeq3PM-OJRP2nzNUa", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1TE9ETFRlcTNQTS1PSlJQMm56TlVh" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHuLODLTeq3PM-OJRP2nzNUa", + "videoId": "0AEVilxXAAo", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenld.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=d001158a5c57000a&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Designing a better uCurrent" + } + ] + }, + "trackingParams": "CEkQljUYCyITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "3" + }, + "videoCountText": { + "runs": [ + { + "text": "3" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHuLODLTeq3PM-OJRP2nzNUa" + }, + "clickTrackingParams": "CEkQljUYCyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHuLODLTeq3PM-OJRP2nzNUa", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CEcQljUYDCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=lYmfVMWbIHQ&list=PLvOlSehNtuHtvTKP4RTNW1-08Kmzy1pvA", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0dlRLUDRSVE5XMS0wOEttenkxcHZB" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtvTKP4RTNW1-08Kmzy1pvA", + "videoId": "lYmfVMWbIHQ", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr3---sn-h0jeener.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=95899f54c59b2074&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CEcQljUYDCITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHtvTKP4RTNW1-08Kmzy1pvA", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/nImoQcoqkuQ/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/2xy3Hm1_ZqI/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/crs_QLuUTyQ/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/lYmfVMWbIHQ/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBtygEqMXx7Lwe5SuBWt2q0CSahYA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "8" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/lYmfVMWbIHQ/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBtygEqMXx7Lwe5SuBWt2q0CSahYA", + "width": 480 + } + ] + }, + "trackingParams": "CEgQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "8" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CEcQljUYDCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=lYmfVMWbIHQ&list=PLvOlSehNtuHtvTKP4RTNW1-08Kmzy1pvA", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0dlRLUDRSVE5XMS0wOEttenkxcHZB" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtvTKP4RTNW1-08Kmzy1pvA", + "videoId": "lYmfVMWbIHQ", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr3---sn-h0jeener.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=95899f54c59b2074&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "EMC Compliance & Measurement" + } + ] + }, + "trackingParams": "CEcQljUYDCITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "8" + }, + "videoCountText": { + "runs": [ + { + "text": "8" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHtvTKP4RTNW1-08Kmzy1pvA" + }, + "clickTrackingParams": "CEcQljUYDCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHtvTKP4RTNW1-08Kmzy1pvA", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CEUQljUYDSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=nTpE1Nw3Yy4&list=PLvOlSehNtuHuUTpCrTVX7BdU68l2aVqMv", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1VVRwQ3JUVlg3QmRVNjhsMmFWcU12" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHuUTpCrTVX7BdU68l2aVqMv", + "videoId": "nTpE1Nw3Yy4", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr1---sn-h0jelne7.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=9d3a44d4dc37632e&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CEUQljUYDSITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHuUTpCrTVX7BdU68l2aVqMv", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/XoHkE4xgaFA/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/nTpE1Nw3Yy4/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAbPl28_i7isizY6A1t2_c6gV8BAQ", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "2" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/nTpE1Nw3Yy4/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAbPl28_i7isizY6A1t2_c6gV8BAQ", + "width": 480 + } + ] + }, + "trackingParams": "CEYQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CEUQljUYDSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=nTpE1Nw3Yy4&list=PLvOlSehNtuHuUTpCrTVX7BdU68l2aVqMv", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1VVRwQ3JUVlg3QmRVNjhsMmFWcU12" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHuUTpCrTVX7BdU68l2aVqMv", + "videoId": "nTpE1Nw3Yy4", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr1---sn-h0jelne7.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=9d3a44d4dc37632e&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Power Counter Display Project" + } + ] + }, + "trackingParams": "CEUQljUYDSITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "2" + }, + "videoCountText": { + "runs": [ + { + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHuUTpCrTVX7BdU68l2aVqMv" + }, + "clickTrackingParams": "CEUQljUYDSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHuUTpCrTVX7BdU68l2aVqMv", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CEMQljUYDiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=gQ7TTuiDH1M&list=PLvOlSehNtuHvm120Tq40nKrM5SUBlolN3", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2bTEyMFRxNDBuS3JNNVNVQmxvbE4z" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvm120Tq40nKrM5SUBlolN3", + "videoId": "gQ7TTuiDH1M", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeenek.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=810ed34ee8831f53&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CEMQljUYDiITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHvm120Tq40nKrM5SUBlolN3", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/DWS4Qp3Yn0A/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/gQ7TTuiDH1M/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBMnucUil90WeDSIeFz8mZCOtEv9g", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "3" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/gQ7TTuiDH1M/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBMnucUil90WeDSIeFz8mZCOtEv9g", + "width": 480 + } + ] + }, + "trackingParams": "CEQQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "3" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CEMQljUYDiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=gQ7TTuiDH1M&list=PLvOlSehNtuHvm120Tq40nKrM5SUBlolN3", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2bTEyMFRxNDBuS3JNNVNVQmxvbE4z" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvm120Tq40nKrM5SUBlolN3", + "videoId": "gQ7TTuiDH1M", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeenek.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=810ed34ee8831f53&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Live - Ask Dave" + } + ] + }, + "trackingParams": "CEMQljUYDiITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "3" + }, + "videoCountText": { + "runs": [ + { + "text": "3" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHvm120Tq40nKrM5SUBlolN3" + }, + "clickTrackingParams": "CEMQljUYDiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHvm120Tq40nKrM5SUBlolN3", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CEEQljUYDyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=r45r4rV5JOI&list=PLvOlSehNtuHsiF93KOLoF1KAHArmIW9lC", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzaUY5M0tPTG9GMUtBSEFybUlXOWxD" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHsiF93KOLoF1KAHArmIW9lC", + "videoId": "r45r4rV5JOI", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeln7e.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=af8e6be2b57924e2&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CEEQljUYDyITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHsiF93KOLoF1KAHArmIW9lC", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/Rixo78hv_lw/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/VYhAGnsnO7w/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/4Zw_W0iaGFM/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/r45r4rV5JOI/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCn4kGWcjBOhk3vN8QPMDa9L3mkKA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "10" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/r45r4rV5JOI/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCn4kGWcjBOhk3vN8QPMDa9L3mkKA", + "width": 480 + } + ] + }, + "trackingParams": "CEIQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "10" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CEEQljUYDyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=r45r4rV5JOI&list=PLvOlSehNtuHsiF93KOLoF1KAHArmIW9lC", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzaUY5M0tPTG9GMUtBSEFybUlXOWxD" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHsiF93KOLoF1KAHArmIW9lC", + "videoId": "r45r4rV5JOI", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeln7e.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=af8e6be2b57924e2&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Padauk Microcontroller" + } + ] + }, + "trackingParams": "CEEQljUYDyITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "10" + }, + "videoCountText": { + "runs": [ + { + "text": "10" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHsiF93KOLoF1KAHArmIW9lC" + }, + "clickTrackingParams": "CEEQljUYDyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHsiF93KOLoF1KAHArmIW9lC", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CD8QljUYECITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=WopuF9vD7KE&list=PLvOlSehNtuHvxTzBLwUFw4My4rtrNFzED", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2eFR6Qkx3VUZ3NE15NHJ0ck5GekVE" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvxTzBLwUFw4My4rtrNFzED", + "videoId": "WopuF9vD7KE", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenle.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=5a8a6e17dbc3eca1&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CD8QljUYECITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHvxTzBLwUFw4My4rtrNFzED", + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/WopuF9vD7KE/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBv5buh3qMs4feQaPj6Fy6bxl_vuA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "1" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/WopuF9vD7KE/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBv5buh3qMs4feQaPj6Fy6bxl_vuA", + "width": 480 + } + ] + }, + "trackingParams": "CEAQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "1" + }, + { + "text": " video" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CD8QljUYECITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=WopuF9vD7KE&list=PLvOlSehNtuHvxTzBLwUFw4My4rtrNFzED", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2eFR6Qkx3VUZ3NE15NHJ0ck5GekVE" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvxTzBLwUFw4My4rtrNFzED", + "videoId": "WopuF9vD7KE", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenle.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=5a8a6e17dbc3eca1&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Other Debunking Videos" + } + ] + }, + "trackingParams": "CD8QljUYECITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "1" + }, + "videoCountText": { + "runs": [ + { + "text": "1 video" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHvxTzBLwUFw4My4rtrNFzED" + }, + "clickTrackingParams": "CD8QljUYECITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHvxTzBLwUFw4My4rtrNFzED", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CD0QljUYESITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=qHbkw0Gm7pk&list=PLvOlSehNtuHt2pJ7X5tumuM4Wa3r1OC7Q", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0MnBKN1g1dHVtdU00V2EzcjFPQzdR" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHt2pJ7X5tumuM4Wa3r1OC7Q", + "videoId": "qHbkw0Gm7pk", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeenld.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=a876e4c341a6ee99&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CD0QljUYESITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHt2pJ7X5tumuM4Wa3r1OC7Q", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/019eUy-vNhk/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/dftkoD7LG0A/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/_k5MrB99lpU/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/qHbkw0Gm7pk/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCJBYXTDttGHTm51j3bfwqxOqVFig", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "9" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/qHbkw0Gm7pk/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCJBYXTDttGHTm51j3bfwqxOqVFig", + "width": 480 + } + ] + }, + "trackingParams": "CD4Qy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "9" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CD0QljUYESITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=qHbkw0Gm7pk&list=PLvOlSehNtuHt2pJ7X5tumuM4Wa3r1OC7Q", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0MnBKN1g1dHVtdU00V2EzcjFPQzdR" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHt2pJ7X5tumuM4Wa3r1OC7Q", + "videoId": "qHbkw0Gm7pk", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeenld.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=a876e4c341a6ee99&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Audio & Speakers" + } + ] + }, + "trackingParams": "CD0QljUYESITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "9" + }, + "videoCountText": { + "runs": [ + { + "text": "9" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHt2pJ7X5tumuM4Wa3r1OC7Q" + }, + "clickTrackingParams": "CD0QljUYESITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHt2pJ7X5tumuM4Wa3r1OC7Q", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CDsQljUYEiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=g9umAQ1-an4&list=PLvOlSehNtuHtX7OearWdmqGzqiu4DHKWi", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0WDdPZWFyV2RtcUd6cWl1NERIS1dp" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtX7OearWdmqGzqiu4DHKWi", + "videoId": "g9umAQ1-an4", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeln7l.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=83dba6010d7e6a7e&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CDsQljUYEiITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHtX7OearWdmqGzqiu4DHKWi", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/1EuBRmfJLSk/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/1jPcYCcaHv0/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/cGxUXg1fQCs/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/g9umAQ1-an4/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCB5jNm9U-rypnpthK_N321LpYWew", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "16" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/g9umAQ1-an4/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCB5jNm9U-rypnpthK_N321LpYWew", + "width": 480 + } + ] + }, + "trackingParams": "CDwQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "16" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CDsQljUYEiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=g9umAQ1-an4&list=PLvOlSehNtuHtX7OearWdmqGzqiu4DHKWi", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0WDdPZWFyV2RtcUd6cWl1NERIS1dp" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtX7OearWdmqGzqiu4DHKWi", + "videoId": "g9umAQ1-an4", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeln7l.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=83dba6010d7e6a7e&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Cameras" + } + ] + }, + "trackingParams": "CDsQljUYEiITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "16" + }, + "videoCountText": { + "runs": [ + { + "text": "16" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHtX7OearWdmqGzqiu4DHKWi" + }, + "clickTrackingParams": "CDsQljUYEiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHtX7OearWdmqGzqiu4DHKWi", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CDkQljUYEyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=ibPgfzd9zd8&list=PLvOlSehNtuHu-TaNRp27_PiXjBG5wY9Gv", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1LVRhTlJwMjdfUGlYakJHNXdZOUd2" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHu-TaNRp27_PiXjBG5wY9Gv", + "videoId": "ibPgfzd9zd8", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jelne7.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=89b3e07f377dcddf&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CDkQljUYEyITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHu-TaNRp27_PiXjBG5wY9Gv", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/w1Js9R39778/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/SKWYO3Qh79A/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/BzxGoJdd8a4/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/SKWYO3Qh79A/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/ibPgfzd9zd8/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLDe3IXT88HR3XxnxfqrpAxh6pfYMg", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "7" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/ibPgfzd9zd8/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLDe3IXT88HR3XxnxfqrpAxh6pfYMg", + "width": 480 + } + ] + }, + "trackingParams": "CDoQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "7" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CDkQljUYEyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=ibPgfzd9zd8&list=PLvOlSehNtuHu-TaNRp27_PiXjBG5wY9Gv", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1LVRhTlJwMjdfUGlYakJHNXdZOUd2" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHu-TaNRp27_PiXjBG5wY9Gv", + "videoId": "ibPgfzd9zd8", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jelne7.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=89b3e07f377dcddf&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Cryptocurrency" + } + ] + }, + "trackingParams": "CDkQljUYEyITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "7" + }, + "videoCountText": { + "runs": [ + { + "text": "7" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHu-TaNRp27_PiXjBG5wY9Gv" + }, + "clickTrackingParams": "CDkQljUYEyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHu-TaNRp27_PiXjBG5wY9Gv", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CDcQljUYFCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=ZYvxgl-9tNM&list=PLvOlSehNtuHvmK-VGcZ33ZuATmcNB8tvH", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2bUstVkdjWjMzWnVBVG1jTkI4dHZI" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvmK-VGcZ33ZuATmcNB8tvH", + "videoId": "ZYvxgl-9tNM", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr1---sn-h0jeln7e.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=658bf1825fbdb4d3&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CDcQljUYFCITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHvmK-VGcZ33ZuATmcNB8tvH", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/mo4_5vG8bbU/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/ZP0KxZl5N2o/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/pW4HjuH1QRY/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/ZYvxgl-9tNM/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLDv2WT4Chl1_H2G43AjfSFpPcKVoA", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "6" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/ZYvxgl-9tNM/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLDv2WT4Chl1_H2G43AjfSFpPcKVoA", + "width": 480 + } + ] + }, + "trackingParams": "CDgQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "6" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CDcQljUYFCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=ZYvxgl-9tNM&list=PLvOlSehNtuHvmK-VGcZ33ZuATmcNB8tvH", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2bUstVkdjWjMzWnVBVG1jTkI4dHZI" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvmK-VGcZ33ZuATmcNB8tvH", + "videoId": "ZYvxgl-9tNM", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr1---sn-h0jeln7e.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=658bf1825fbdb4d3&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "LCD Tutorial" + } + ] + }, + "trackingParams": "CDcQljUYFCITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "6" + }, + "videoCountText": { + "runs": [ + { + "text": "6" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHvmK-VGcZ33ZuATmcNB8tvH" + }, + "clickTrackingParams": "CDcQljUYFCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHvmK-VGcZ33ZuATmcNB8tvH", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CDUQljUYFSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=vr8ROiYs8AQ&list=PLvOlSehNtuHvbV8x_bWQBKEg4IshWjG3U", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2YlY4eF9iV1FCS0VnNElzaFdqRzNV" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvbV8x_bWQBKEg4IshWjG3U", + "videoId": "vr8ROiYs8AQ", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenle.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=bebf113a262cf004&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CDUQljUYFSITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHvbV8x_bWQBKEg4IshWjG3U", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/vwAhHz7Zpzk/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/8OaZ89TN0fo/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/HbMnQdRzD8A/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/vr8ROiYs8AQ/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLB3-0simU6JRFu9oztPXxqg_dgpGg", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "12" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/vr8ROiYs8AQ/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLB3-0simU6JRFu9oztPXxqg_dgpGg", + "width": 480 + } + ] + }, + "trackingParams": "CDYQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "12" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CDUQljUYFSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=vr8ROiYs8AQ&list=PLvOlSehNtuHvbV8x_bWQBKEg4IshWjG3U", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2YlY4eF9iV1FCS0VnNElzaFdqRzNV" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvbV8x_bWQBKEg4IshWjG3U", + "videoId": "vr8ROiYs8AQ", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jeenle.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=bebf113a262cf004&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Guest Videos" + } + ] + }, + "trackingParams": "CDUQljUYFSITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "12" + }, + "videoCountText": { + "runs": [ + { + "text": "12" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHvbV8x_bWQBKEg4IshWjG3U" + }, + "clickTrackingParams": "CDUQljUYFSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHvbV8x_bWQBKEg4IshWjG3U", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CDMQljUYFiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=-_rqzsJy_Qs&list=PLvOlSehNtuHs5tuhiqdxQeegsLDP7TM8V", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzNXR1aGlxZHhRZWVnc0xEUDdUTThW" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHs5tuhiqdxQeegsLDP7TM8V", + "videoId": "-_rqzsJy_Qs", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=fbfaeacec272fd0b&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CDMQljUYFiITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHs5tuhiqdxQeegsLDP7TM8V", + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/-_rqzsJy_Qs/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBfgyRT22Y0kXITD5pTNU5BkKG31Q", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "1" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/-_rqzsJy_Qs/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLBfgyRT22Y0kXITD5pTNU5BkKG31Q", + "width": 480 + } + ] + }, + "trackingParams": "CDQQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "1" + }, + { + "text": " video" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CDMQljUYFiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=-_rqzsJy_Qs&list=PLvOlSehNtuHs5tuhiqdxQeegsLDP7TM8V", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzNXR1aGlxZHhRZWVnc0xEUDdUTThW" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHs5tuhiqdxQeegsLDP7TM8V", + "videoId": "-_rqzsJy_Qs", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=fbfaeacec272fd0b&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Software Development" + } + ] + }, + "trackingParams": "CDMQljUYFiITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "1" + }, + "videoCountText": { + "runs": [ + { + "text": "1 video" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHs5tuhiqdxQeegsLDP7TM8V" + }, + "clickTrackingParams": "CDMQljUYFiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHs5tuhiqdxQeegsLDP7TM8V", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CDEQljUYFyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=ewtdnzlv0Rg&list=PLvOlSehNtuHu328BlpUOUDsv9Kf1Ri8Tg", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1MzI4QmxwVU9VRHN2OUtmMVJpOFRn" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHu328BlpUOUDsv9Kf1Ri8Tg", + "videoId": "ewtdnzlv0Rg", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jelnes.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=7b0b5d9f396fd118&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CDEQljUYFyITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHu328BlpUOUDsv9Kf1Ri8Tg", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/WoRJOCdNahc/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/fpstmpm_rFM/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/DD7unrTrVdc/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/ewtdnzlv0Rg/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAzFf6hh75LI2ldJq-EyV4Ke9WBtg", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "5" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/ewtdnzlv0Rg/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAzFf6hh75LI2ldJq-EyV4Ke9WBtg", + "width": 480 + } + ] + }, + "trackingParams": "CDIQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "5" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CDEQljUYFyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=ewtdnzlv0Rg&list=PLvOlSehNtuHu328BlpUOUDsv9Kf1Ri8Tg", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1MzI4QmxwVU9VRHN2OUtmMVJpOFRn" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHu328BlpUOUDsv9Kf1Ri8Tg", + "videoId": "ewtdnzlv0Rg", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jelnes.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=7b0b5d9f396fd118&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "John Kenny - Keysight" + } + ] + }, + "trackingParams": "CDEQljUYFyITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "5" + }, + "videoCountText": { + "runs": [ + { + "text": "5" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHu328BlpUOUDsv9Kf1Ri8Tg" + }, + "clickTrackingParams": "CDEQljUYFyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHu328BlpUOUDsv9Kf1Ri8Tg", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CC8QljUYGCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=f0uvS80YIGU&list=PLvOlSehNtuHvj_E5KUBluJJupXmideiZk", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2al9FNUtVQmx1Skp1cFhtaWRlaVpr" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvj_E5KUBluJJupXmideiZk", + "videoId": "f0uvS80YIGU", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeenek.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=7f4baf4bcd182065&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CC8QljUYGCITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHvj_E5KUBluJJupXmideiZk", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/SRSAK3D8VJU/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/f0uvS80YIGU/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLA4L-gzgcRGOdzbQOV6Wd6hw_d6og", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "2" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/f0uvS80YIGU/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLA4L-gzgcRGOdzbQOV6Wd6hw_d6og", + "width": 480 + } + ] + }, + "trackingParams": "CDAQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CC8QljUYGCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=f0uvS80YIGU&list=PLvOlSehNtuHvj_E5KUBluJJupXmideiZk", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh2al9FNUtVQmx1Skp1cFhtaWRlaVpr" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHvj_E5KUBluJJupXmideiZk", + "videoId": "f0uvS80YIGU", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jeenek.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=7f4baf4bcd182065&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "General Tech Information" + } + ] + }, + "trackingParams": "CC8QljUYGCITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "2" + }, + "videoCountText": { + "runs": [ + { + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHvj_E5KUBluJJupXmideiZk" + }, + "clickTrackingParams": "CC8QljUYGCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHvj_E5KUBluJJupXmideiZk", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CC0QljUYGSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=-JDsRZ4nmbo&list=PLvOlSehNtuHsWHPg1KlSd8agKbrcn3Dwn", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzV0hQZzFLbFNkOGFnS2JyY24zRHdu" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHsWHPg1KlSd8agKbrcn3Dwn", + "videoId": "-JDsRZ4nmbo", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jelnes.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=f890ec459e2799ba&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CC0QljUYGSITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHsWHPg1KlSd8agKbrcn3Dwn", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/vwo7sSrSSW4/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/CWVbVSKT7js/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/MvFf9RSJUhk/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/-JDsRZ4nmbo/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCnVvEd6IDEuMlyZkP8hpeTkEA4SQ", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "4" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/-JDsRZ4nmbo/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCnVvEd6IDEuMlyZkP8hpeTkEA4SQ", + "width": 480 + } + ] + }, + "trackingParams": "CC4Qy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "4" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CC0QljUYGSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=-JDsRZ4nmbo&list=PLvOlSehNtuHsWHPg1KlSd8agKbrcn3Dwn", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzV0hQZzFLbFNkOGFnS2JyY24zRHdu" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHsWHPg1KlSd8agKbrcn3Dwn", + "videoId": "-JDsRZ4nmbo", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr4---sn-h0jelnes.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=f890ec459e2799ba&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Microscope" + } + ] + }, + "trackingParams": "CC0QljUYGSITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "4" + }, + "videoCountText": { + "runs": [ + { + "text": "4" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHsWHPg1KlSd8agKbrcn3Dwn" + }, + "clickTrackingParams": "CC0QljUYGSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHsWHPg1KlSd8agKbrcn3Dwn", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CCsQljUYGiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=g3y_Vr8ZJ7w&list=PLvOlSehNtuHuQb5djEVLzwBSTT27p2dXB", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1UWI1ZGpFVkx6d0JTVFQyN3AyZFhC" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHuQb5djEVLzwBSTT27p2dXB", + "videoId": "g3y_Vr8ZJ7w", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr3---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=837cbf56bf1927bc&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CCsQljUYGiITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHuQb5djEVLzwBSTT27p2dXB", + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/g3y_Vr8ZJ7w/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAx4HS5YSjouN2nc6A40Bp5ffmK1Q", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "1" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/g3y_Vr8ZJ7w/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLAx4HS5YSjouN2nc6A40Bp5ffmK1Q", + "width": 480 + } + ] + }, + "trackingParams": "CCwQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "1" + }, + { + "text": " video" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CCsQljUYGiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=g3y_Vr8ZJ7w&list=PLvOlSehNtuHuQb5djEVLzwBSTT27p2dXB", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1UWI1ZGpFVkx6d0JTVFQyN3AyZFhC" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHuQb5djEVLzwBSTT27p2dXB", + "videoId": "g3y_Vr8ZJ7w", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr3---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=837cbf56bf1927bc&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "The Signal Path" + } + ] + }, + "trackingParams": "CCsQljUYGiITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "1" + }, + "videoCountText": { + "runs": [ + { + "text": "1 video" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHuQb5djEVLzwBSTT27p2dXB" + }, + "clickTrackingParams": "CCsQljUYGiITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHuQb5djEVLzwBSTT27p2dXB", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CCkQljUYGyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=NznO-DVfLd0&list=PLvOlSehNtuHstMIbtLqlEiidVjj8ob0xp", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzdE1JYnRMcWxFaWlkVmpqOG9iMHhw" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHstMIbtLqlEiidVjj8ob0xp", + "videoId": "NznO-DVfLd0", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeenld.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=3739cef8355f2ddd&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CCkQljUYGyITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHstMIbtLqlEiidVjj8ob0xp", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/8gJxII4UvSA/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/NznO-DVfLd0/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCUMV2m5W3Y3tzSQipHpoRBqnBqfw", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "2" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/NznO-DVfLd0/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCUMV2m5W3Y3tzSQipHpoRBqnBqfw", + "width": 480 + } + ] + }, + "trackingParams": "CCoQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CCkQljUYGyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=NznO-DVfLd0&list=PLvOlSehNtuHstMIbtLqlEiidVjj8ob0xp", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUhzdE1JYnRMcWxFaWlkVmpqOG9iMHhw" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHstMIbtLqlEiidVjj8ob0xp", + "videoId": "NznO-DVfLd0", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeenld.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=3739cef8355f2ddd&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Thermal Imaging" + } + ] + }, + "trackingParams": "CCkQljUYGyITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "2" + }, + "videoCountText": { + "runs": [ + { + "text": "2" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHstMIbtLqlEiidVjj8ob0xp" + }, + "clickTrackingParams": "CCkQljUYGyITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHstMIbtLqlEiidVjj8ob0xp", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CCcQljUYHCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=hFvqEfZfMtA&list=PLvOlSehNtuHugqRHdt46SN9Bmoh-D5Gp2", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1Z3FSSGR0NDZTTjlCbW9oLUQ1R3Ay" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHugqRHdt46SN9Bmoh-D5Gp2", + "videoId": "hFvqEfZfMtA", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=845bea11f65f32d0&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CCcQljUYHCITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHugqRHdt46SN9Bmoh-D5Gp2", + "sidebarThumbnails": [ + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/7bVnsXHO6Uw/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/9hMsNOwY5AQ/default.jpg", + "width": 43 + } + ] + }, + { + "thumbnails": [ + { + "height": 20, + "url": "https://i.ytimg.com/vi/fm13tIe5wSc/default.jpg", + "width": 43 + } + ] + } + ], + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/hFvqEfZfMtA/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCnfuvZnlr0XbuNbDrwF0SVrbTsQg", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "9" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/hFvqEfZfMtA/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLCnfuvZnlr0XbuNbDrwF0SVrbTsQg", + "width": 480 + } + ] + }, + "trackingParams": "CCgQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "9" + }, + { + "text": " videos" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CCcQljUYHCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=hFvqEfZfMtA&list=PLvOlSehNtuHugqRHdt46SN9Bmoh-D5Gp2", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh1Z3FSSGR0NDZTTjlCbW9oLUQ1R3Ay" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHugqRHdt46SN9Bmoh-D5Gp2", + "videoId": "hFvqEfZfMtA", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr5---sn-h0jelnez.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=845bea11f65f32d0&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1306250&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "EEVacademy" + } + ] + }, + "trackingParams": "CCcQljUYHCITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "9" + }, + "videoCountText": { + "runs": [ + { + "text": "9" + }, + { + "text": " videos" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHugqRHdt46SN9Bmoh-D5Gp2" + }, + "clickTrackingParams": "CCcQljUYHCITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHugqRHdt46SN9Bmoh-D5Gp2", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "gridPlaylistRenderer": { + "navigationEndpoint": { + "clickTrackingParams": "CCUQljUYHSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=p5jpxZbGp0Y&list=PLvOlSehNtuHtqqYM7ON99sbyiokMKrwwI", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0cXFZTTdPTjk5c2J5aW9rTUtyd3dJ" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtqqYM7ON99sbyiokMKrwwI", + "videoId": "p5jpxZbGp0Y", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeenld.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=a798e9c596c6a746&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "ownerBadges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CCUQljUYHSITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "playlistId": "PLvOlSehNtuHtqqYM7ON99sbyiokMKrwwI", + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/p5jpxZbGp0Y/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLC10fWKf9O9VVPVSEpEjioljWzl_Q", + "width": 480 + } + ] + }, + "thumbnailOverlays": [ + { + "thumbnailOverlaySidePanelRenderer": { + "icon": { + "iconType": "PLAYLISTS" + }, + "text": { + "simpleText": "1" + } + } + }, + { + "thumbnailOverlayHoverTextRenderer": { + "icon": { + "iconType": "PLAY_ALL" + }, + "text": { + "runs": [ + { + "text": "Play all" + } + ] + } + } + }, + { + "thumbnailOverlayNowPlayingRenderer": { + "text": { + "runs": [ + { + "text": "Now playing" + } + ] + } + } + } + ], + "thumbnailRenderer": { + "playlistVideoThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "height": 270, + "url": "https://i.ytimg.com/vi/p5jpxZbGp0Y/hqdefault.jpg?sqp=-oaymwEXCOADEI4CSFryq4qpAwkIARUAAIhCGAE=&rs=AOn4CLC10fWKf9O9VVPVSEpEjioljWzl_Q", + "width": 480 + } + ] + }, + "trackingParams": "CCYQy-wJIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "thumbnailText": { + "runs": [ + { + "bold": true, + "text": "1" + }, + { + "text": " video" + } + ] + }, + "title": { + "runs": [ + { + "navigationEndpoint": { + "clickTrackingParams": "CCUQljUYHSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdoWhhVQzJEakZFN1hmMTFVUlpxV0JpZ2NWT1GaAQUQ8jgYaA==", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 3832, + "url": "/watch?v=p5jpxZbGp0Y&list=PLvOlSehNtuHtqqYM7ON99sbyiokMKrwwI", + "webPageType": "WEB_PAGE_TYPE_WATCH" + } + }, + "watchEndpoint": { + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GiJQTHZPbFNlaE50dUh0cXFZTTdPTjk5c2J5aW9rTUtyd3dJ" + } + }, + "params": "OAI%3D", + "playlistId": "PLvOlSehNtuHtqqYM7ON99sbyiokMKrwwI", + "videoId": "p5jpxZbGp0Y", + "watchEndpointSupportedOnesieConfig": { + "html5PlaybackOnesieConfig": { + "commonConfig": { + "url": "https://rr2---sn-h0jeenld.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=a798e9c596c6a746&ip=2003%3Ade%3Aaf30%3A200%3A41df%3Ab43d%3A25fa%3Ac6b7&initcwndbps=1310000&mt=1664046065&oweuc=&pxtags=Cg4KAnR4EggyNDI2ODE1Mw&rxtags=Cg4KAnR4EggyNDI2ODE1Mw%2CCg4KAnR4EggyNDI2ODE1NA%2CCg4KAnR4EggyNDI2ODE1NQ" + } + } + } + } + }, + "text": "Brainstorming" + } + ] + }, + "trackingParams": "CCUQljUYHSITCNPcwumPrvoCFZqOUQodPo8OGw==", + "videoCountShortText": { + "simpleText": "1" + }, + "videoCountText": { + "runs": [ + { + "text": "1 video" + } + ] + }, + "viewPlaylistText": { + "runs": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "VLPLvOlSehNtuHtqqYM7ON99sbyiokMKrwwI" + }, + "clickTrackingParams": "CCUQljUYHSITCNPcwumPrvoCFZqOUQodPo8OGzIGZy1oaWdo", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 5754, + "url": "/playlist?list=PLvOlSehNtuHtqqYM7ON99sbyiokMKrwwI", + "webPageType": "WEB_PAGE_TYPE_PLAYLIST" + } + } + }, + "text": "View full playlist" + } + ] + } + } + }, + { + "continuationItemRenderer": { + "continuationEndpoint": { + "clickTrackingParams": "CCQQ6IsCGAAiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "sendPost": true + } + }, + "continuationCommand": { + "request": "CONTINUATION_REQUEST_TYPE_BROWSE", + "token": "4qmFsgLCARIYVUMyRGpGRTdYZjExVVJacVdCaWdjVk9RGnRFZ2x3YkdGNWJHbHpkSE1ZQXlBQk1BRTRBZW9EUEVOblRrUlJhbEZUU2tKSmFWVkZlREpVTW5oVVdsZG9UMlJJVmtsa1NFWjRWMVV3TTFRd05EVlBXRTVwWlZkc2RtRXdNVXhqYm1RelUxTm5PQSUzRCUzRJoCL2Jyb3dzZS1mZWVkVUMyRGpGRTdYZjExVVJacVdCaWdjVk9RcGxheWxpc3RzMTA0" + } + }, + "trigger": "CONTINUATION_TRIGGER_ON_ITEM_SHOWN" + } + } + ], + "targetId": "browse-feedUC2DjFE7Xf11URZqWBigcVOQplaylists104", + "trackingParams": "CCQQ6IsCGAAiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + } + ], + "trackingParams": "CCMQuy8YACITCNPcwumPrvoCFZqOUQodPo8OGw==" + } + } + ], + "disablePullToRefresh": true, + "subMenu": { + "channelSubMenuRenderer": { + "contentTypeSubMenuItems": [ + { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EglwbGF5bGlzdHMgAQ%3D%3D" + }, + "clickTrackingParams": "CB8Qui8iEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/playlists?view=1", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": true, + "title": "Created playlists" + } + ], + "sortSetting": { + "sortFilterSubMenuRenderer": { + "accessibility": { + "accessibilityData": { + "label": "Sort by" + } + }, + "icon": { + "iconType": "SORT" + }, + "subMenuItems": [ + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EglwbGF5bGlzdHMYAyABMAE%3D" + }, + "clickTrackingParams": "CCIQ48AHGAAiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/playlists?view=1&sort=dd&flow=grid", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": true, + "title": "Date added (newest)", + "trackingParams": "CCIQ48AHGAAiEwjT3MLpj676AhWajlEKHT6PDhs=" + }, + { + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EglwbGF5bGlzdHMYBCABMAE%3D" + }, + "clickTrackingParams": "CCEQ48AHGAEiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/playlists?view=1&sort=lad&flow=grid", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Last video added", + "trackingParams": "CCEQ48AHGAEiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + ], + "title": "Sort by", + "trackingParams": "CCAQgdoEIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + } + } + }, + "targetId": "browse-feedUC2DjFE7Xf11URZqWBigcVOQplaylists", + "trackingParams": "CB8Qui8iEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EglwbGF5bGlzdHM%3D" + }, + "clickTrackingParams": "CB4Q8JMBGAciEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/playlists", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": true, + "title": "Playlists", + "trackingParams": "CB4Q8JMBGAciEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "disablePullToRefresh": true, + "trackingParams": "CB0Qui8iEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "Egljb21tdW5pdHk%3D" + }, + "clickTrackingParams": "CBwQ8JMBGAgiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/community", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Community", + "trackingParams": "CBwQ8JMBGAgiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "disablePullToRefresh": true, + "trackingParams": "CBsQui8iEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgVzdG9yZQ%3D%3D" + }, + "clickTrackingParams": "CBoQ8JMBGAkiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/store", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Store", + "trackingParams": "CBoQ8JMBGAkiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "disablePullToRefresh": true, + "trackingParams": "CBkQui8iEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EghjaGFubmVscw%3D%3D" + }, + "clickTrackingParams": "CBgQ8JMBGAoiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/channels", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Channels", + "trackingParams": "CBgQ8JMBGAoiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "disablePullToRefresh": true, + "trackingParams": "CBcQui8iEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgVhYm91dA%3D%3D" + }, + "clickTrackingParams": "CBYQ8JMBGAsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/about", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "About", + "trackingParams": "CBYQ8JMBGAsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + { + "expandableTabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EgZzZWFyY2g%3D" + }, + "clickTrackingParams": "CAAQhGciEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/search", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Search" + } + } + ] + } + }, + "header": { + "c4TabbedHeaderRenderer": { + "avatar": { + "thumbnails": [ + { + "height": 48, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s48-c-k-c0x00ffffff-no-rj", + "width": 48 + }, + { + "height": 88, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s88-c-k-c0x00ffffff-no-rj", + "width": 88 + }, + { + "height": 176, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s176-c-k-c0x00ffffff-no-rj", + "width": 176 + } + ] + }, + "badges": [ + { + "metadataBadgeRenderer": { + "accessibilityData": { + "label": "Verified" + }, + "icon": { + "iconType": "CHECK_CIRCLE_THICK" + }, + "style": "BADGE_STYLE_TYPE_VERIFIED", + "tooltip": "Verified", + "trackingParams": "CBAQ8DsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + } + ], + "banner": { + "thumbnails": [ + { + "height": 175, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1060-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 1060 + }, + { + "height": 188, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1138-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 1138 + }, + { + "height": 283, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1707-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 1707 + }, + { + "height": 351, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2120-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 2120 + }, + { + "height": 377, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2276-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 2276 + }, + { + "height": 424, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2560-fcrop64=1,00005a57ffffa5a8-k-c0xffffffff-no-nd-rj", + "width": 2560 + } + ] + }, + "channelId": "UC2DjFE7Xf11URZqWBigcVOQ", + "headerLinks": { + "channelHeaderLinksRenderer": { + "primaryLinks": [ + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeeYHqSanvu-1kS8-j8snFjPciLtknpI1FBXBB6ChDhHFlCRCjevwoP5AOW1u3m9HaeGexWOI4DJeisvRR1YK_jsARgDOrkbO3qWsfWQFxBaEkSQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqa0FTZzNVenVjaTllQ0JtYW9FRnV0UUdVSG5NZ3xBQ3Jtc0tuUW51b3Zmd1NpdmFJb0pCUjZSamFaTF8xQjZxUGdqakJLX3pVNkNZRkIza3BnenV2X2hnS3RON1lmRkU3c1YtRTBTOU11UVFMaFVyQXNTci1HT2F0SjBlNVJRTzQ1aXo2U2otQ0l1THY3Qk5tcWtTTQ&q=http%3A%2F%2Fwww.eevblog.com", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqa0FTZzNVenVjaTllQ0JtYW9FRnV0UUdVSG5NZ3xBQ3Jtc0tuUW51b3Zmd1NpdmFJb0pCUjZSamFaTF8xQjZxUGdqakJLX3pVNkNZRkIza3BnenV2X2hnS3RON1lmRkU3c1YtRTBTOU11UVFMaFVyQXNTci1HT2F0SjBlNVJRTzQ1aXo2U2otQ0l1THY3Qk5tcWtTTQ&q=http%3A%2F%2Fwww.eevblog.com" + } + }, + "title": { + "simpleText": "EEVblog Web Site" + } + } + ], + "secondaryLinks": [ + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn1.gstatic.com/favicon-tbn?q=tbn:ANd9GcSnyfGgzwnk19b891nCqykpMzr3jlkKm0Z65gNVJbtXsk9-gzW5EiqqEvM02nZyYKmI2x1JQI9OuGsWU69bgq9_rNrHCYrXLP6HqhP9iVwr0bm2IQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbnhUTHJIXzExei15WlBzdlhRMUl5RVBmaUsyd3xBQ3Jtc0trN3A4SEg0dzJWU1ZSOWZzTV93cnljSno0ODR0OWFMelVTWFZ3VzJPd0xCdDdHOUViWlpjUGhWaXlzLVF0dkJVQldjamh6aEJLMFB2aXFmcnNFNUVtaTVIcE5XQ3V2Y1dncjBhNTR6alNIZTQ1SjdtVQ&q=http%3A%2F%2Fwww.twitter.com%2Feevblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbnhUTHJIXzExei15WlBzdlhRMUl5RVBmaUsyd3xBQ3Jtc0trN3A4SEg0dzJWU1ZSOWZzTV93cnljSno0ODR0OWFMelVTWFZ3VzJPd0xCdDdHOUViWlpjUGhWaXlzLVF0dkJVQldjamh6aEJLMFB2aXFmcnNFNUVtaTVIcE5XQ3V2Y1dncjBhNTR6alNIZTQ1SjdtVQ&q=http%3A%2F%2Fwww.twitter.com%2Feevblog" + } + }, + "title": { + "simpleText": "Twitter" + } + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn3.gstatic.com/favicon-tbn?q=tbn:ANd9GcRmQS0-yT-68TopCQcxwbvtkTB0rdiUtc7g4WFZBVWFT4tJ8tSTon4n5uCmm9_b69_7bgTNZNmFw3-zyF-kWNXXZJEBTm_-r1qZrKLyDfCYxiEXY50" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbk1kNnlXYjdDTVhnRHhON29FS192Zzl4ZWhzUXxBQ3Jtc0tuWExzMTRUNjFwMEZMc1RoeTJ5UVcyM3d1ejRsOFkzNm8tX0c5aklOQzdlMjlJZFpsY0JkNDdpX0pNMFV4cVpocVdvZ0VMSGJHS2pCeFFybXdzYktXOXpIck9ISnBoeUlZSWNDcURFazd2dDVYelMwWQ&q=http%3A%2F%2Fwww.facebook.com%2FEEVblog", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbk1kNnlXYjdDTVhnRHhON29FS192Zzl4ZWhzUXxBQ3Jtc0tuWExzMTRUNjFwMEZMc1RoeTJ5UVcyM3d1ejRsOFkzNm8tX0c5aklOQzdlMjlJZFpsY0JkNDdpX0pNMFV4cVpocVdvZ0VMSGJHS2pCeFFybXdzYktXOXpIck9ISnBoeUlZSWNDcURFazd2dDVYelMwWQ&q=http%3A%2F%2Fwww.facebook.com%2FEEVblog" + } + }, + "title": { + "simpleText": "Facebook" + } + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn0.gstatic.com/favicon-tbn?q=tbn:ANd9GcRY4no9kYJtEAHXBEY2GDprV__HH1zc94olyS6G6fT5isS71bPyqvIi7-9VE1MMy3_3vsNOQLAerwcSQqGNyADWfxKpd2hLc8HuacZdgEjgZc_WLN8" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "url": "https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ" + } + }, + "title": { + "simpleText": "EEVdiscover" + } + }, + { + "icon": { + "thumbnails": [ + { + "url": "https://encrypted-tbn2.gstatic.com/favicon-tbn?q=tbn:ANd9GcSeeYHqSanvu-1kS8-j8snFjPciLtknpI1FBXBB6ChDhHFlCRCjevwoP5AOW1u3m9HaeGexWOI4DJeisvRR1YK_jsARgDOrkbO3qWsfWQFxBaEkSQ" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CBAQ8DsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbjNnZ004alBYZnlJdmx3Qi1aNDZxcF94RzVBZ3xBQ3Jtc0trSXRYcE1EQVI5UEVHNDVtcGp5eVk1a1VjZ21BalZ1N2RncjZUVl82UzRxYldISkNRU0QwbXdCVmZSbkZSVlotQWZWOVpSc1phMFVsT3NnMHlKakN4NXZEUy1KOGp3dk1JdzFVYVFfSUV2SXZDSXdScw&q=http%3A%2F%2Fwww.eevblog.com%2Fforum", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "urlEndpoint": { + "nofollow": true, + "target": "TARGET_NEW_WINDOW", + "url": "https://www.youtube.com/redirect?event=channel_banner&redir_token=QUFFLUhqbjNnZ004alBYZnlJdmx3Qi1aNDZxcF94RzVBZ3xBQ3Jtc0trSXRYcE1EQVI5UEVHNDVtcGp5eVk1a1VjZ21BalZ1N2RncjZUVl82UzRxYldISkNRU0QwbXdCVmZSbkZSVlotQWZWOVpSc1phMFVsT3NnMHlKakN4NXZEUy1KOGp3dk1JdzFVYVFfSUV2SXZDSXdScw&q=http%3A%2F%2Fwww.eevblog.com%2Fforum" + } + }, + "title": { + "simpleText": "The EEVblog Forum" + } + } + ] + } + }, + "mobileBanner": { + "thumbnails": [ + { + "height": 88, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w320-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 320 + }, + { + "height": 175, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w640-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 640 + }, + { + "height": 263, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w960-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 960 + }, + { + "height": 351, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1280-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 1280 + }, + { + "height": 395, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1440-fcrop64=1,32b75a57cd48a5a8-k-c0xffffffff-no-nd-rj", + "width": 1440 + } + ] + }, + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave" + }, + "clickTrackingParams": "CBAQ8DsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "sponsorButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Join this channel" + } + }, + "hint": { + "hintRenderer": { + "dwellTimeMs": "60000", + "hintCap": { + "impressionCap": "1" + }, + "hintId": "sponsor-pre-purchase", + "trackingParams": "CBIQpecFIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBEQqGAiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "ignoreNavigation": true + } + }, + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "button": { + "buttonRenderer": { + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBMQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fyoutubei%252Fv1%252Fbrowse%253Fkey%253DAIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8%2526prettyPrint%253Dfalse&hl=en", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "hack": true + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_BRAND", + "text": { + "simpleText": "Sign in" + }, + "trackingParams": "CBMQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "content": { + "runs": [ + { + "text": "Sign in to become a member." + } + ] + }, + "title": { + "runs": [ + { + "text": "Want to join this channel?" + } + ] + } + } + } + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_SUGGESTIVE", + "targetId": "sponsorships-button", + "text": { + "runs": [ + { + "text": "Join" + } + ] + }, + "trackingParams": "CBEQqGAiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "subscribeButton": { + "buttonRenderer": { + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBQQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "ignoreNavigation": true + } + }, + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "button": { + "buttonRenderer": { + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBUQ_YYEIhMI09zC6Y-u-gIVmo5RCh0-jw4bMglzdWJzY3JpYmU=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3D%252Fc%252FEevblogDave%252Fplaylists%26continue_action%3DQUFFLUhqbVN4MUhuMERKMkdTd2E5bklZMk8wODEwNmlYQXxBQ3Jtc0trbWhnRktMX2t6UDNNUFBlQXZZaWVpQzBhWDhmNnRCOEJrb2hzWnVmRWVrQmdQSG5KdURFdnRqaXpDSzRJek9teDlTdVl2dzktaGw0eHhCZ01DLVVsdmJYUWdSWVItaXVkbDZhcmxhdGtOc2tuYjlhaFp4aFJlUEVIZktTZGpEVXhrNWo4dV9WWTdmakFWa2RwRzVZd0NXcWdWdzRKRjc4ZUhodXE5cURtdnl3YzE1YmYydVAyMmE1Y3lsaDc1a3VIcmdDUGZoUFFMYXVHZzdVSC1UTldRajVPV0lB&hl=en&ec=66429", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "continueAction": "QUFFLUhqbVN4MUhuMERKMkdTd2E5bklZMk8wODEwNmlYQXxBQ3Jtc0trbWhnRktMX2t6UDNNUFBlQXZZaWVpQzBhWDhmNnRCOEJrb2hzWnVmRWVrQmdQSG5KdURFdnRqaXpDSzRJek9teDlTdVl2dzktaGw0eHhCZ01DLVVsdmJYUWdSWVItaXVkbDZhcmxhdGtOc2tuYjlhaFp4aFJlUEVIZktTZGpEVXhrNWo4dV9WWTdmakFWa2RwRzVZd0NXcWdWdzRKRjc4ZUhodXE5cURtdnl3YzE1YmYydVAyMmE1Y3lsaDc1a3VIcmdDUGZoUFFMYXVHZzdVSC1UTldRajVPV0lB", + "idamTag": "66429", + "nextEndpoint": { + "browseEndpoint": { + "browseId": "UC2DjFE7Xf11URZqWBigcVOQ", + "canonicalBaseUrl": "/c/EevblogDave", + "params": "EglwbGF5bGlzdHM%3D" + }, + "clickTrackingParams": "CBUQ_YYEIhMI09zC6Y-u-gIVmo5RCh0-jw4b", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/c/EevblogDave/playlists", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + } + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_BLUE_TEXT", + "text": { + "simpleText": "Sign in" + }, + "trackingParams": "CBUQ_YYEIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "content": { + "simpleText": "Sign in to subscribe to this channel." + }, + "title": { + "simpleText": "Want to subscribe to this channel?" + } + } + } + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_DESTRUCTIVE", + "text": { + "runs": [ + { + "text": "Subscribe" + } + ] + }, + "trackingParams": "CBQQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "subscriberCountText": { + "accessibility": { + "accessibilityData": { + "label": "881K subscribers" + } + }, + "simpleText": "881K subscribers" + }, + "title": "EEVblog", + "trackingParams": "CBAQ8DsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "tvBanner": { + "thumbnails": [ + { + "height": 180, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w320-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 320 + }, + { + "height": 480, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w854-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 854 + }, + { + "height": 720, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1280-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 1280 + }, + { + "height": 1080, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w1920-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 1920 + }, + { + "height": 1192, + "url": "https://yt3.ggpht.com/yIJ9ad80n49rK-YUcZLe_8bLmR-aGyg5ybDH_XKIc0GDWrC6s1Wzz8lxnq3_hux_5b6NHPZ9=w2120-fcrop64=1,00000000ffffffff-k-c0xffffffff-no-nd-rj", + "width": 2120 + } + ] + }, + "visitTracking": { + "remarketingPing": "https://www.youtube.com/pagead/viewthroughconversion/962985656/?backend=innertube&cname=1&cver=2_20220921_08_00&foc_id=2DjFE7Xf11URZqWBigcVOQ&label=followon_cvisit&ptype=no_rmkt&utuid=2DjFE7Xf11URZqWBigcVOQ" + } + } + }, + "metadata": { + "channelMetadataRenderer": { + "androidAppindexingLink": "android-app://com.google.android.youtube/http/www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "androidDeepLink": "android-app://com.google.android.youtube/http/www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "availableCountryCodes": [ + "CA", + "CI", + "AG", + "WF", + "CX", + "SR", + "MS", + "EC", + "BJ", + "GG", + "BM", + "KM", + "IR", + "PM", + "CU", + "TW", + "GI", + "UG", + "HR", + "MO", + "KE", + "SM", + "AQ", + "PW", + "AZ", + "VA", + "LV", + "TV", + "AF", + "FK", + "DE", + "MD", + "MZ", + "GF", + "TL", + "TG", + "LI", + "FM", + "IS", + "RS", + "SD", + "US", + "PF", + "PL", + "ML", + "FO", + "BZ", + "CL", + "MT", + "HM", + "SY", + "BI", + "CW", + "IQ", + "NI", + "NZ", + "SC", + "CC", + "TZ", + "BE", + "LY", + "VE", + "GM", + "DM", + "LB", + "PS", + "TC", + "ME", + "BT", + "BL", + "PN", + "ZW", + "BS", + "NO", + "BW", + "CG", + "IM", + "JO", + "KG", + "AE", + "KP", + "TN", + "EG", + "DO", + "GP", + "IN", + "MQ", + "SS", + "DZ", + "ID", + "MW", + "PE", + "SO", + "CZ", + "WS", + "BO", + "NU", + "AW", + "QA", + "BG", + "HK", + "BA", + "JE", + "UY", + "CF", + "MF", + "LR", + "PG", + "SA", + "KZ", + "KR", + "BF", + "MR", + "BV", + "GS", + "LS", + "IE", + "HT", + "FR", + "NL", + "PT", + "KH", + "VG", + "IL", + "SG", + "CM", + "HU", + "TJ", + "MV", + "AL", + "KN", + "KW", + "OM", + "BB", + "AM", + "LT", + "CK", + "TH", + "SX", + "AT", + "YE", + "FI", + "LC", + "AR", + "GE", + "TF", + "GN", + "IO", + "GR", + "KY", + "ZA", + "SB", + "RW", + "GQ", + "GW", + "CR", + "SL", + "TM", + "CY", + "MX", + "GU", + "MK", + "CD", + "ST", + "MN", + "AD", + "AI", + "UM", + "GB", + "YT", + "TT", + "PY", + "EE", + "RU", + "CO", + "AU", + "NG", + "PK", + "VC", + "GY", + "NC", + "BN", + "BQ", + "SZ", + "TK", + "UZ", + "SV", + "VI", + "GD", + "GT", + "PR", + "CH", + "LU", + "DK", + "GL", + "MC", + "LA", + "RE", + "SI", + "EH", + "LK", + "NE", + "PH", + "SK", + "UA", + "KI", + "MG", + "FJ", + "MA", + "MY", + "VN", + "GH", + "MU", + "BY", + "DJ", + "SE", + "NA", + "ES", + "MP", + "CN", + "IT", + "NP", + "BH", + "BR", + "JM", + "SN", + "MM", + "ZM", + "AS", + "BD", + "JP", + "RO", + "TO", + "AO", + "SJ", + "VU", + "CV", + "ER", + "HN", + "AX", + "NF", + "PA", + "NR", + "TD", + "TR", + "GA", + "ET", + "MH", + "SH" + ], + "avatar": { + "thumbnails": [ + { + "height": 900, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s900-c-k-c0x00ffffff-no-rj", + "width": 900 + } + ] + }, + "channelConversionUrl": "https://www.youtube.com/pagead/viewthroughconversion/962985656/?backend=innertube&cname=1&cver=2_20220921_08_00&foc_id=2DjFE7Xf11URZqWBigcVOQ&label=followon_cvisit&ptype=no_rmkt&utuid=2DjFE7Xf11URZqWBigcVOQ", + "channelUrl": "https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "description": "NO SCRIPT, NO FEAR, ALL OPINION\nAn off-the-cuff Video Blog about Electronics Engineering, for engineers, hobbyists, enthusiasts, hackers and Makers\nHosted by Dave Jones from Sydney Australia\n\nDONATIONS:\nBitcoin: 3KqyH1U3qrMPnkLufM2oHDU7YB4zVZeFyZ\nEthereum: 0x99ccc4d2654ba40744a1f678d9868ecb15e91206\nPayPal: david@alternatezone.com\n\nPatreon: https://www.patreon.com/eevblog\n\nEEVblog2: http://www.youtube.com/EEVblog2\nEEVdiscover: https://www.youtube.com/channel/UCkGvUEt8iQLmq3aJIMjT2qQ\n\nEMAIL:\nAdvertising/Commercial: eevblog+business@gmail.com\nFan mail: eevblog+fan@gmail.com\nHate Mail: eevblog+hate@gmail.com\n\nI DON'T DO PAID VIDEO SPONSORSHIPS, DON'T ASK!\n\nPLEASE:\nDo NOT ask for personal advice on something, post it in the EEVblog forum.\nI read ALL email, but please don't be offended if I don't have time to reply, I get a LOT of email.\n\nMailbag\nPO Box 7949\nBaulkham Hills NSW 2153\nAUSTRALIA", + "doubleclickTrackingUsername": "EEVblog", + "externalId": "UC2DjFE7Xf11URZqWBigcVOQ", + "facebookProfileId": "EEVblog", + "iosAppindexingLink": "ios-app://544007664/vnd.youtube/www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "isFamilySafe": true, + "keywords": "electronics engineering maker hacker design circuit hardware pic atmel oscilloscope multimeter diy hobby review teardown microcontroller arduino video blog tutorial how-to interview rant industry news mailbag \"dumpster diving\" debunking", + "ownerUrls": [ + "http://www.youtube.com/c/EevblogDave" + ], + "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UC2DjFE7Xf11URZqWBigcVOQ", + "title": "EEVblog", + "vanityChannelUrl": "http://www.youtube.com/c/EevblogDave" + } + }, + "microformat": { + "microformatDataRenderer": { + "androidPackage": "com.google.android.youtube", + "appName": "YouTube", + "availableCountries": [ + "CA", + "CI", + "AG", + "WF", + "CX", + "SR", + "MS", + "EC", + "BJ", + "GG", + "BM", + "KM", + "IR", + "PM", + "CU", + "TW", + "GI", + "UG", + "HR", + "MO", + "KE", + "SM", + "AQ", + "PW", + "AZ", + "VA", + "LV", + "TV", + "AF", + "FK", + "DE", + "MD", + "MZ", + "GF", + "TL", + "TG", + "LI", + "FM", + "IS", + "RS", + "SD", + "US", + "PF", + "PL", + "ML", + "FO", + "BZ", + "CL", + "MT", + "HM", + "SY", + "BI", + "CW", + "IQ", + "NI", + "NZ", + "SC", + "CC", + "TZ", + "BE", + "LY", + "VE", + "GM", + "DM", + "LB", + "PS", + "TC", + "ME", + "BT", + "BL", + "PN", + "ZW", + "BS", + "NO", + "BW", + "CG", + "IM", + "JO", + "KG", + "AE", + "KP", + "TN", + "EG", + "DO", + "GP", + "IN", + "MQ", + "SS", + "DZ", + "ID", + "MW", + "PE", + "SO", + "CZ", + "WS", + "BO", + "NU", + "AW", + "QA", + "BG", + "HK", + "BA", + "JE", + "UY", + "CF", + "MF", + "LR", + "PG", + "SA", + "KZ", + "KR", + "BF", + "MR", + "BV", + "GS", + "LS", + "IE", + "HT", + "FR", + "NL", + "PT", + "KH", + "VG", + "IL", + "SG", + "CM", + "HU", + "TJ", + "MV", + "AL", + "KN", + "KW", + "OM", + "BB", + "AM", + "LT", + "CK", + "TH", + "SX", + "AT", + "YE", + "FI", + "LC", + "AR", + "GE", + "TF", + "GN", + "IO", + "GR", + "KY", + "ZA", + "SB", + "RW", + "GQ", + "GW", + "CR", + "SL", + "TM", + "CY", + "MX", + "GU", + "MK", + "CD", + "ST", + "MN", + "AD", + "AI", + "UM", + "GB", + "YT", + "TT", + "PY", + "EE", + "RU", + "CO", + "AU", + "NG", + "PK", + "VC", + "GY", + "NC", + "BN", + "BQ", + "SZ", + "TK", + "UZ", + "SV", + "VI", + "GD", + "GT", + "PR", + "CH", + "LU", + "DK", + "GL", + "MC", + "LA", + "RE", + "SI", + "EH", + "LK", + "NE", + "PH", + "SK", + "UA", + "KI", + "MG", + "FJ", + "MA", + "MY", + "VN", + "GH", + "MU", + "BY", + "DJ", + "SE", + "NA", + "ES", + "MP", + "CN", + "IT", + "NP", + "BH", + "BR", + "JM", + "SN", + "MM", + "ZM", + "AS", + "BD", + "JP", + "RO", + "TO", + "AO", + "SJ", + "VU", + "CV", + "ER", + "HN", + "AX", + "NF", + "PA", + "NR", + "TD", + "TR", + "GA", + "ET", + "MH", + "SH" + ], + "description": "NO SCRIPT, NO FEAR, ALL OPINION An off-the-cuff Video Blog about Electronics Engineering, for engineers, hobbyists, enthusiasts, hackers and Makers Hosted by...", + "familySafe": true, + "iosAppArguments": "https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "iosAppStoreId": "544007664", + "linkAlternates": [ + { + "hrefUrl": "https://m.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ" + }, + { + "hrefUrl": "android-app://com.google.android.youtube/http/youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ" + }, + { + "hrefUrl": "ios-app://544007664/http/youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ" + } + ], + "noindex": false, + "ogType": "yt-fb-app:channel", + "schemaDotOrgType": "http://schema.org/http://schema.org/YoutubeChannelV2", + "siteName": "YouTube", + "tags": [ + "electronics", + "engineering", + "maker", + "hacker", + "design", + "circuit", + "hardware", + "pic", + "atmel", + "oscilloscope", + "multimeter", + "diy", + "hobby", + "review", + "teardown", + "microcontroller", + "arduino", + "video", + "blog", + "tutorial", + "how-to", + "interview", + "rant", + "industry", + "news", + "mailbag", + "dumpster diving", + "debunking" + ], + "thumbnail": { + "thumbnails": [ + { + "height": 200, + "url": "https://yt3.ggpht.com/ytc/AMLnZu9eKk4Nd16fX4Rn1TF1G7ReluwOl6M5558FTYAM=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=19259", + "width": 200 + } + ] + }, + "title": "EEVblog", + "twitterCardType": "summary", + "twitterSiteHandle": "@YouTube", + "unlisted": false, + "urlApplinksAndroid": "vnd.youtube://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=applinks", + "urlApplinksIos": "vnd.youtube://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=applinks", + "urlApplinksWeb": "https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=applinks", + "urlCanonical": "https://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ", + "urlTwitterAndroid": "vnd.youtube://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=twitter-deep-link", + "urlTwitterIos": "vnd.youtube://www.youtube.com/channel/UC2DjFE7Xf11URZqWBigcVOQ?feature=twitter-deep-link" + } + }, + "responseContext": { + "mainAppWebResponseContext": { + "loggedOut": true + }, + "maxAgeSeconds": 300, + "serviceTrackingParams": [ + { + "params": [ + { + "key": "route", + "value": "channel.playlists" + }, + { + "key": "is_casual", + "value": "false" + }, + { + "key": "is_owner", + "value": "false" + }, + { + "key": "is_monetization_enabled", + "value": "true" + }, + { + "key": "num_shelves", + "value": "3" + }, + { + "key": "is_alc_surface", + "value": "false" + }, + { + "key": "browse_id", + "value": "UC2DjFE7Xf11URZqWBigcVOQ" + }, + { + "key": "logged_in", + "value": "0" + }, + { + "key": "e", + "value": "1714250,23804281,23882503,23918597,23934970,23946420,23966208,23983296,23986019,23998056,24001373,24002022,24002025,24004644,24007246,24034168,24036948,24077241,24080738,24108447,24120819,24135310,24140247,24152442,24161116,24164186,24166867,24169501,24181174,24185614,24187043,24187377,24191629,24199724,24199774,24211178,24216166,24219713,24225482,24226335,24227844,24229161,24241378,24243988,24245610,24246428,24247768,24248092,24248385,24248956,24254502,24255165,24255543,24255545,24256986,24260441,24260783,24260844,24262346,24263796,24264860,24265820,24267564,24267570,24268142,24268153,24268870,24277923,24277989,24278488,24280303,24281086,24281190,24283093,24283280,24284914,24287149,24287603,24287795,24288491,24289901,24290131,24292296,24292447,24294176,24296312,39322278,39322357,39322382,39322386,39322399,39322456,45686551" + } + ], + "service": "GFEEDBACK" + }, + { + "params": [ + { + "key": "browse_id", + "value": "UC2DjFE7Xf11URZqWBigcVOQ" + } + ], + "service": "GOOGLE_HELP" + }, + { + "params": [ + { + "key": "c", + "value": "WEB" + }, + { + "key": "cver", + "value": "2.20220921.08.00" + }, + { + "key": "yt_li", + "value": "0" + }, + { + "key": "GetChannelPage_rid", + "value": "0xf96af655bc7b74e3" + } + ], + "service": "CSI" + }, + { + "params": [ + { + "key": "logged_in", + "value": "0" + } + ], + "service": "GUIDED_HELP" + }, + { + "params": [ + { + "key": "client.version", + "value": "2.20220921" + }, + { + "key": "client.name", + "value": "WEB" + }, + { + "key": "client.fexp", + "value": "24187043,24243988,39322357,24287603,24225482,24161116,24226335,24191629,39322399,24211178,24255545,24288491,24290131,24248385,24265820,24254502,24283280,24120819,24260844,23882503,45686551,24277989,24255543,24284914,39322386,24169501,24181174,24268153,23966208,24140247,24267570,24080738,24002022,24278488,39322456,24034168,24219713,23983296,24256986,1714250,24247768,24077241,24152442,24001373,23804281,39322382,24281086,23946420,24280303,24296312,24260441,24268142,39322278,24263796,24264860,24267564,24260783,24227844,24036948,24268870,24289901,24248956,23918597,24002025,24277923,24199774,24166867,24135310,24294176,24248092,24164186,24241378,23986019,23934970,24281190,24216166,24108447,24246428,24229161,24292296,24292447,24004644,24287795,24245610,24255165,24287149,24199724,24007246,24262346,24185614,24283093,24187377,23998056" + } + ], + "service": "ECATCHER" + } + ], + "visitorData": "CgttaWpyTVpUN1AyZyioqr2ZBg%3D%3D", + "webResponseContextExtensionData": { + "hasDecorated": true + } + }, + "topbar": { + "desktopTopbarRenderer": { + "a11ySkipNavigationButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAUQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAUQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "signalAction": { + "signal": "SKIP_NAVIGATION" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "text": { + "runs": [ + { + "text": "Skip navigation" + } + ] + }, + "trackingParams": "CAUQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "backButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAcQvIYDIhMI09zC6Y-u-gIVmo5RCh0-jw4b", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAcQvIYDIhMI09zC6Y-u-gIVmo5RCh0-jw4b", + "signalAction": { + "signal": "HISTORY_BACK" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "trackingParams": "CAcQvIYDIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "forwardButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAYQvYYDIhMI09zC6Y-u-gIVmo5RCh0-jw4b", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAYQvYYDIhMI09zC6Y-u-gIVmo5RCh0-jw4b", + "signalAction": { + "signal": "HISTORY_FORWARD" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "trackingParams": "CAYQvYYDIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "hotkeyDialog": { + "hotkeyDialogRenderer": { + "dismissButton": { + "buttonRenderer": { + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_BLUE_TEXT", + "text": { + "runs": [ + { + "text": "Dismiss" + } + ] + }, + "trackingParams": "CAkQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "sections": [ + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "k", + "label": { + "runs": [ + { + "text": "Toggle play/pause" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "j", + "label": { + "runs": [ + { + "text": "Rewind 10 seconds" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "l", + "label": { + "runs": [ + { + "text": "Fast forward 10 seconds" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "P (SHIFT+p)", + "label": { + "runs": [ + { + "text": "Previous video" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "N (SHIFT+n)", + "label": { + "runs": [ + { + "text": "Next video" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": ",", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Comma" + } + }, + "label": { + "runs": [ + { + "text": "Previous frame (while paused)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": ".", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Period" + } + }, + "label": { + "runs": [ + { + "text": "Next frame (while paused)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "< (SHIFT+,)", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Less than or SHIFT + comma" + } + }, + "label": { + "runs": [ + { + "text": "Decrease playback rate" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "> (SHIFT+.)", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Greater than or SHIFT + period" + } + }, + "label": { + "runs": [ + { + "text": "Increase playback rate" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "0..9", + "label": { + "runs": [ + { + "text": "Seek to specific point in the video (7 advances to 70% of duration)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "CONTROL + ←", + "label": { + "runs": [ + { + "text": "Seek to previous chapter" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "CONTROL + →", + "label": { + "runs": [ + { + "text": "Seek to next chapter" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Playback" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "f", + "label": { + "runs": [ + { + "text": "Toggle full screen" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "t", + "label": { + "runs": [ + { + "text": "Toggle theater mode" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "i", + "label": { + "runs": [ + { + "text": "Toggle miniplayer" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "ESCAPE", + "label": { + "runs": [ + { + "text": "Close miniplayer or current dialog" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "m", + "label": { + "runs": [ + { + "text": "Toggle mute" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "General" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "c", + "label": { + "runs": [ + { + "text": "If the video supports captions, toggle captions ON/OFF" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "o", + "label": { + "runs": [ + { + "text": "Rotate through different text opacity levels" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "w", + "label": { + "runs": [ + { + "text": "Rotate through different window opacity levels" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "+", + "label": { + "runs": [ + { + "text": "Rotate through font sizes (increasing)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "-", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Minus" + } + }, + "label": { + "runs": [ + { + "text": "Rotate through font sizes (decreasing)" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Subtitles and closed captions" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "w", + "label": { + "runs": [ + { + "text": "Pan up" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "a", + "label": { + "runs": [ + { + "text": "Pan left" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "s", + "label": { + "runs": [ + { + "text": "Pan down" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "d", + "label": { + "runs": [ + { + "text": "Pan right" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "+ on numpad or ]", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Plus on number pad or right bracket" + } + }, + "label": { + "runs": [ + { + "text": "Zoom in" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "- on numpad or [", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Minus on number pad or left bracket" + } + }, + "label": { + "runs": [ + { + "text": "Zoom out" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Spherical Videos" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Keyboard shortcuts" + } + ] + }, + "trackingParams": "CAgQteYDIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "logo": { + "topbarLogoRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "FEwhat_to_watch" + }, + "clickTrackingParams": "CA8QsV4iEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3854, + "url": "/", + "webPageType": "WEB_PAGE_TYPE_BROWSE" + } + } + }, + "iconImage": { + "iconType": "YOUTUBE_LOGO" + }, + "overrideEntityKey": "EgZ0b3BiYXIg9QEoAQ%3D%3D", + "tooltipText": { + "runs": [ + { + "text": "YouTube Home" + } + ] + }, + "trackingParams": "CA8QsV4iEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "searchbox": { + "fusionSearchboxRenderer": { + "clearButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Clear search query" + } + }, + "icon": { + "iconType": "CLOSE" + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "trackingParams": "CA4Q8FsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "config": { + "webSearchboxConfig": { + "focusSearchbox": true, + "hasOnscreenKeyboard": false, + "requestDomain": "us", + "requestLanguage": "en" + } + }, + "icon": { + "iconType": "SEARCH" + }, + "placeholderText": { + "runs": [ + { + "text": "Search" + } + ] + }, + "searchEndpoint": { + "clickTrackingParams": "CA0Q7VAiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 4724, + "url": "/results?search_query=", + "webPageType": "WEB_PAGE_TYPE_SEARCH" + } + }, + "searchEndpoint": { + "query": "" + } + }, + "trackingParams": "CA0Q7VAiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "topbarButtons": [ + { + "topbarMenuButtonRenderer": { + "accessibility": { + "accessibilityData": { + "label": "Settings" + } + }, + "icon": { + "iconType": "MORE_VERT" + }, + "menuRequest": { + "clickTrackingParams": "CAsQ_qsBGAAiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/account/account_menu", + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAsQ_qsBGAAiEwjT3MLpj676AhWajlEKHT6PDhs=", + "openPopupAction": { + "beReused": true, + "popup": { + "multiPageMenuRenderer": { + "showLoadingSpinner": true, + "style": "MULTI_PAGE_MENU_STYLE_TYPE_SYSTEM", + "trackingParams": "CAwQ_6sBIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "popupType": "DROPDOWN" + } + } + ], + "signal": "GET_ACCOUNT_MENU" + } + }, + "style": "STYLE_DEFAULT", + "tooltip": "Settings", + "trackingParams": "CAsQ_qsBGAAiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + { + "buttonRenderer": { + "icon": { + "iconType": "AVATAR_LOGGED_OUT" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAoQ1IAEGAEiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fyoutubei%252Fv1%252Fbrowse%253Fkey%253DAIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8%2526prettyPrint%253Dfalse&hl=en&ec=65620", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "idamTag": "65620" + } + }, + "size": "SIZE_SMALL", + "style": "STYLE_SUGGESTIVE", + "targetId": "topbar-signin", + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "trackingParams": "CAoQ1IAEGAEiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + } + ], + "trackingParams": "CAEQq6wBIhMI09zC6Y-u-gIVmo5RCh0-jw4b", + "voiceSearchButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Search with your voice" + } + }, + "icon": { + "iconType": "MICROPHONE_ON" + }, + "isDisabled": false, + "serviceEndpoint": { + "clickTrackingParams": "CAIQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAIQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=", + "openPopupAction": { + "popup": { + "voiceSearchDialogRenderer": { + "connectionErrorHeader": { + "runs": [ + { + "text": "No connection" + } + ] + }, + "connectionErrorMicrophoneLabel": { + "runs": [ + { + "text": "Check your connection and try again" + } + ] + }, + "disabledHeader": { + "runs": [ + { + "text": "Search with your voice" + } + ] + }, + "disabledSubtext": { + "runs": [ + { + "text": "To search by voice, go to your browser settings and allow access to microphone" + } + ] + }, + "exampleQuery1": { + "runs": [ + { + "text": "\"Play Dua Lipa\"" + } + ] + }, + "exampleQuery2": { + "runs": [ + { + "text": "\"Show me my subscriptions\"" + } + ] + }, + "exitButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Cancel" + } + }, + "icon": { + "iconType": "CLOSE" + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "trackingParams": "CAQQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + }, + "loadingHeader": { + "runs": [ + { + "text": "Working..." + } + ] + }, + "microphoneButtonAriaLabel": { + "runs": [ + { + "text": "Cancel" + } + ] + }, + "microphoneOffPromptHeader": { + "runs": [ + { + "text": "Microphone off. Try again." + } + ] + }, + "permissionsHeader": { + "runs": [ + { + "text": "Waiting for permission" + } + ] + }, + "permissionsSubtext": { + "runs": [ + { + "text": "Allow microphone access to search with voice" + } + ] + }, + "placeholderHeader": { + "runs": [ + { + "text": "Listening..." + } + ] + }, + "promptHeader": { + "runs": [ + { + "text": "Didn't hear that. Try again." + } + ] + }, + "promptMicrophoneLabel": { + "runs": [ + { + "text": "Tap microphone to try again" + } + ] + }, + "trackingParams": "CAMQ7q8FIhMI09zC6Y-u-gIVmo5RCh0-jw4b" + } + }, + "popupType": "TOP_ALIGNED_DIALOG" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "tooltip": "Search with your voice", + "trackingParams": "CAIQ8FsiEwjT3MLpj676AhWajlEKHT6PDhs=" + } + } + } + }, + "trackingParams": "CAAQhGciEwjT3MLpj676AhWajlEKHT6PDhs=" +} diff --git a/testfiles/channel/channel_videos_empty.json b/testfiles/channel/channel_videos_empty.json new file mode 100644 index 0000000..7d8fca7 --- /dev/null +++ b/testfiles/channel/channel_videos_empty.json @@ -0,0 +1,1820 @@ +{ + "contents": { + "twoColumnBrowseResultsRenderer": { + "tabs": [ + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UCxBa895m48H5idw5li7h-0g", + "canonicalBaseUrl": "/channel/UCxBa895m48H5idw5li7h-0g", + "params": "EghmZWF0dXJlZPIGBAoCMgA%3D" + }, + "clickTrackingParams": "CBoQ8JMBGAUiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/channel/UCxBa895m48H5idw5li7h-0g/featured", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Home", + "trackingParams": "CBoQ8JMBGAUiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + { + "tabRenderer": { + "content": { + "sectionListRenderer": { + "contents": [ + { + "itemSectionRenderer": { + "contents": [ + { + "messageRenderer": { + "text": { + "simpleText": "This channel has no videos." + }, + "trackingParams": "CBkQljsYACITCO7Dob__svoCFdTu5godQ5UKsw==" + } + } + ], + "trackingParams": "CBgQuy8YACITCO7Dob__svoCFdTu5godQ5UKsw==" + } + } + ], + "disablePullToRefresh": true, + "subMenu": { + "channelSubMenuRenderer": {} + }, + "trackingParams": "CBcQui8iEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "endpoint": { + "browseEndpoint": { + "browseId": "UCxBa895m48H5idw5li7h-0g", + "canonicalBaseUrl": "/channel/UCxBa895m48H5idw5li7h-0g", + "params": "EgZ2aWRlb3PyBgQKAjoA" + }, + "clickTrackingParams": "CBYQ8JMBGAYiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/channel/UCxBa895m48H5idw5li7h-0g/videos", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": true, + "title": "Videos", + "trackingParams": "CBYQ8JMBGAYiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UCxBa895m48H5idw5li7h-0g", + "canonicalBaseUrl": "/channel/UCxBa895m48H5idw5li7h-0g", + "params": "EglwbGF5bGlzdHPyBgQKAkIA" + }, + "clickTrackingParams": "CBUQ8JMBGAciEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/channel/UCxBa895m48H5idw5li7h-0g/playlists", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Playlists", + "trackingParams": "CBUQ8JMBGAciEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UCxBa895m48H5idw5li7h-0g", + "canonicalBaseUrl": "/channel/UCxBa895m48H5idw5li7h-0g", + "params": "EghjaGFubmVsc_IGBAoCUgA%3D" + }, + "clickTrackingParams": "CBQQ8JMBGAgiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/channel/UCxBa895m48H5idw5li7h-0g/channels", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "Channels", + "trackingParams": "CBQQ8JMBGAgiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + { + "tabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UCxBa895m48H5idw5li7h-0g", + "canonicalBaseUrl": "/channel/UCxBa895m48H5idw5li7h-0g", + "params": "EgVhYm91dPIGBAoCEgA%3D" + }, + "clickTrackingParams": "CBMQ8JMBGAkiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/channel/UCxBa895m48H5idw5li7h-0g/about", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "title": "About", + "trackingParams": "CBMQ8JMBGAkiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + { + "expandableTabRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "UCxBa895m48H5idw5li7h-0g", + "canonicalBaseUrl": "/channel/UCxBa895m48H5idw5li7h-0g", + "params": "EgZzZWFyY2jyBgQKAloA" + }, + "clickTrackingParams": "CAAQhGciEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/channel/UCxBa895m48H5idw5li7h-0g/search", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "selected": false, + "title": "Search" + } + } + ] + } + }, + "header": { + "c4TabbedHeaderRenderer": { + "avatar": { + "thumbnails": [ + { + "height": 48, + "url": "https://yt3.ggpht.com/ytc/AMLnZu_hsZ1XlUXHzXsGNHJw0np79WhWZcC4j8eFdy-tiUCDBKAjJyJOzE5kXFRiqL2S=s48-c-k-c0x00ffffff-no-rj", + "width": 48 + }, + { + "height": 88, + "url": "https://yt3.ggpht.com/ytc/AMLnZu_hsZ1XlUXHzXsGNHJw0np79WhWZcC4j8eFdy-tiUCDBKAjJyJOzE5kXFRiqL2S=s88-c-k-c0x00ffffff-no-rj", + "width": 88 + }, + { + "height": 176, + "url": "https://yt3.ggpht.com/ytc/AMLnZu_hsZ1XlUXHzXsGNHJw0np79WhWZcC4j8eFdy-tiUCDBKAjJyJOzE5kXFRiqL2S=s176-c-k-c0x00ffffff-no-rj", + "width": 176 + } + ] + }, + "channelId": "UCxBa895m48H5idw5li7h-0g", + "navigationEndpoint": { + "browseEndpoint": { + "browseId": "UCxBa895m48H5idw5li7h-0g", + "canonicalBaseUrl": "/channel/UCxBa895m48H5idw5li7h-0g" + }, + "clickTrackingParams": "CBAQ8DsiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/channel/UCxBa895m48H5idw5li7h-0g", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + }, + "shrinkToFit": true, + "subscribeButton": { + "buttonRenderer": { + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBEQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "ignoreNavigation": true + } + }, + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "button": { + "buttonRenderer": { + "isDisabled": false, + "navigationEndpoint": { + "clickTrackingParams": "CBIQ_YYEIhMI7sOhv_-y-gIV1O7mCh1DlQqzMglzdWJzY3JpYmU=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3D%252Fchannel%252FUCxBa895m48H5idw5li7h-0g%252Fvideos%26continue_action%3DQUFFLUhqa0lwOTNOb0Q2ZE5ZemRrbGlEaHZiQlkzdG44QXxBQ3Jtc0trQXEwcTZsRzQ5M2lxOXRWRlZHd2MtcmVscEViUmNPUENrLWFDdDhsXzZRb1V2cC01N25NamtHdzhOUFhwdnBEU1FzSGJSVGRYQ2dFa1BBZlpkMzBpQ1FGcXpKZC1LZ0o2N3BmMm5LWmhzOEloaFEyRk94WGstUXRad1NhbnpDVFJBWUxucmViVmtldll0bjVOYUs4cDN1Z21xRmRyUUxoZjY5Wlgzdl9iYTM2SG5MTFFBWnYxZ1hFZ2dYN3I0Y1c2VTZfWVlLTXotMFAxcXYwU0V4SGpDRlZudklB&hl=en&ec=66429", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "continueAction": "QUFFLUhqa0lwOTNOb0Q2ZE5ZemRrbGlEaHZiQlkzdG44QXxBQ3Jtc0trQXEwcTZsRzQ5M2lxOXRWRlZHd2MtcmVscEViUmNPUENrLWFDdDhsXzZRb1V2cC01N25NamtHdzhOUFhwdnBEU1FzSGJSVGRYQ2dFa1BBZlpkMzBpQ1FGcXpKZC1LZ0o2N3BmMm5LWmhzOEloaFEyRk94WGstUXRad1NhbnpDVFJBWUxucmViVmtldll0bjVOYUs4cDN1Z21xRmRyUUxoZjY5Wlgzdl9iYTM2SG5MTFFBWnYxZ1hFZ2dYN3I0Y1c2VTZfWVlLTXotMFAxcXYwU0V4SGpDRlZudklB", + "idamTag": "66429", + "nextEndpoint": { + "browseEndpoint": { + "browseId": "UCxBa895m48H5idw5li7h-0g", + "canonicalBaseUrl": "/channel/UCxBa895m48H5idw5li7h-0g", + "params": "EgZ2aWRlb3M%3D" + }, + "clickTrackingParams": "CBIQ_YYEIhMI7sOhv_-y-gIV1O7mCh1DlQqz", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3611, + "url": "/channel/UCxBa895m48H5idw5li7h-0g/videos", + "webPageType": "WEB_PAGE_TYPE_CHANNEL" + } + } + } + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_BLUE_TEXT", + "text": { + "simpleText": "Sign in" + }, + "trackingParams": "CBIQ_YYEIhMI7sOhv_-y-gIV1O7mCh1DlQqz" + } + }, + "content": { + "simpleText": "Sign in to subscribe to this channel." + }, + "title": { + "simpleText": "Want to subscribe to this channel?" + } + } + } + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_DESTRUCTIVE", + "text": { + "runs": [ + { + "text": "Subscribe" + } + ] + }, + "trackingParams": "CBEQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "title": "Sebastian Figurroa", + "trackingParams": "CBAQ8DsiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "metadata": { + "channelMetadataRenderer": { + "androidAppindexingLink": "android-app://com.google.android.youtube/http/www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g", + "androidDeepLink": "android-app://com.google.android.youtube/http/www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g", + "availableCountryCodes": [ + "BQ", + "CM", + "GL", + "AG", + "QA", + "ER", + "KI", + "ME", + "ID", + "BZ", + "BE", + "PY", + "FI", + "PS", + "MZ", + "AQ", + "BA", + "EE", + "GN", + "ET", + "SS", + "ZW", + "PE", + "BJ", + "SI", + "FM", + "MM", + "LR", + "TC", + "CU", + "PR", + "SE", + "TT", + "GS", + "GF", + "MA", + "TK", + "CR", + "IM", + "NL", + "SY", + "NF", + "MC", + "MU", + "CA", + "SX", + "AD", + "PF", + "VN", + "SZ", + "AO", + "NI", + "GD", + "DO", + "TM", + "FO", + "GY", + "MW", + "JO", + "AZ", + "IS", + "TH", + "TF", + "GT", + "DZ", + "SN", + "EG", + "ML", + "HN", + "NG", + "LC", + "LA", + "DJ", + "GQ", + "EC", + "MX", + "VI", + "MY", + "CF", + "NA", + "RE", + "AI", + "CN", + "AW", + "TJ", + "KP", + "CK", + "DK", + "CY", + "LK", + "US", + "ZA", + "BT", + "ES", + "MR", + "AM", + "LV", + "AX", + "TV", + "NZ", + "GE", + "LI", + "BN", + "GM", + "RW", + "NE", + "FR", + "CW", + "MV", + "KM", + "MQ", + "LT", + "WS", + "CX", + "GH", + "CD", + "SH", + "FJ", + "PM", + "UG", + "SG", + "CV", + "SV", + "MF", + "HM", + "IQ", + "AU", + "BL", + "SD", + "SO", + "AF", + "UA", + "IL", + "HT", + "NP", + "PT", + "GG", + "BS", + "BW", + "KW", + "MS", + "NO", + "PG", + "IE", + "SM", + "HR", + "MG", + "HK", + "KH", + "SL", + "SR", + "MD", + "ZM", + "DE", + "KN", + "LY", + "TR", + "UM", + "GI", + "BY", + "SJ", + "PN", + "SK", + "VA", + "RO", + "LS", + "NU", + "FK", + "TD", + "PW", + "IR", + "JM", + "AT", + "UZ", + "IN", + "BG", + "TZ", + "AE", + "YT", + "BH", + "KR", + "AL", + "PH", + "BB", + "ST", + "IO", + "TL", + "YE", + "TG", + "MH", + "CO", + "CZ", + "KG", + "CH", + "KE", + "RU", + "CC", + "GW", + "SC", + "SA", + "GB", + "OM", + "JE", + "MT", + "RS", + "HU", + "MK", + "WF", + "AR", + "NC", + "AS", + "CI", + "CL", + "LB", + "GA", + "BV", + "PA", + "KY", + "PK", + "PL", + "VU", + "EH", + "JP", + "TO", + "BF", + "BR", + "CG", + "GR", + "GP", + "SB", + "TW", + "MN", + "LU", + "BO", + "GU", + "IT", + "MP", + "VG", + "BM", + "VE", + "VC", + "KZ", + "MO", + "BI", + "NR", + "TN", + "UY", + "BD", + "DM" + ], + "avatar": { + "thumbnails": [ + { + "height": 900, + "url": "https://yt3.ggpht.com/ytc/AMLnZu_hsZ1XlUXHzXsGNHJw0np79WhWZcC4j8eFdy-tiUCDBKAjJyJOzE5kXFRiqL2S=s900-c-k-c0x00ffffff-no-rj", + "width": 900 + } + ] + }, + "channelUrl": "https://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g", + "description": "", + "externalId": "UCxBa895m48H5idw5li7h-0g", + "iosAppindexingLink": "ios-app://544007664/vnd.youtube/www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g", + "isFamilySafe": true, + "keywords": "", + "ownerUrls": [ + "http://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g" + ], + "rssUrl": "https://www.youtube.com/feeds/videos.xml?channel_id=UCxBa895m48H5idw5li7h-0g", + "title": "Sebastian Figurroa", + "vanityChannelUrl": "http://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g" + } + }, + "microformat": { + "microformatDataRenderer": { + "androidPackage": "com.google.android.youtube", + "appName": "YouTube", + "availableCountries": [ + "BQ", + "CM", + "GL", + "AG", + "QA", + "ER", + "KI", + "ME", + "ID", + "BZ", + "BE", + "PY", + "FI", + "PS", + "MZ", + "AQ", + "BA", + "EE", + "GN", + "ET", + "SS", + "ZW", + "PE", + "BJ", + "SI", + "FM", + "MM", + "LR", + "TC", + "CU", + "PR", + "SE", + "TT", + "GS", + "GF", + "MA", + "TK", + "CR", + "IM", + "NL", + "SY", + "NF", + "MC", + "MU", + "CA", + "SX", + "AD", + "PF", + "VN", + "SZ", + "AO", + "NI", + "GD", + "DO", + "TM", + "FO", + "GY", + "MW", + "JO", + "AZ", + "IS", + "TH", + "TF", + "GT", + "DZ", + "SN", + "EG", + "ML", + "HN", + "NG", + "LC", + "LA", + "DJ", + "GQ", + "EC", + "MX", + "VI", + "MY", + "CF", + "NA", + "RE", + "AI", + "CN", + "AW", + "TJ", + "KP", + "CK", + "DK", + "CY", + "LK", + "US", + "ZA", + "BT", + "ES", + "MR", + "AM", + "LV", + "AX", + "TV", + "NZ", + "GE", + "LI", + "BN", + "GM", + "RW", + "NE", + "FR", + "CW", + "MV", + "KM", + "MQ", + "LT", + "WS", + "CX", + "GH", + "CD", + "SH", + "FJ", + "PM", + "UG", + "SG", + "CV", + "SV", + "MF", + "HM", + "IQ", + "AU", + "BL", + "SD", + "SO", + "AF", + "UA", + "IL", + "HT", + "NP", + "PT", + "GG", + "BS", + "BW", + "KW", + "MS", + "NO", + "PG", + "IE", + "SM", + "HR", + "MG", + "HK", + "KH", + "SL", + "SR", + "MD", + "ZM", + "DE", + "KN", + "LY", + "TR", + "UM", + "GI", + "BY", + "SJ", + "PN", + "SK", + "VA", + "RO", + "LS", + "NU", + "FK", + "TD", + "PW", + "IR", + "JM", + "AT", + "UZ", + "IN", + "BG", + "TZ", + "AE", + "YT", + "BH", + "KR", + "AL", + "PH", + "BB", + "ST", + "IO", + "TL", + "YE", + "TG", + "MH", + "CO", + "CZ", + "KG", + "CH", + "KE", + "RU", + "CC", + "GW", + "SC", + "SA", + "GB", + "OM", + "JE", + "MT", + "RS", + "HU", + "MK", + "WF", + "AR", + "NC", + "AS", + "CI", + "CL", + "LB", + "GA", + "BV", + "PA", + "KY", + "PK", + "PL", + "VU", + "EH", + "JP", + "TO", + "BF", + "BR", + "CG", + "GR", + "GP", + "SB", + "TW", + "MN", + "LU", + "BO", + "GU", + "IT", + "MP", + "VG", + "BM", + "VE", + "VC", + "KZ", + "MO", + "BI", + "NR", + "TN", + "UY", + "BD", + "DM" + ], + "description": "", + "familySafe": true, + "iosAppArguments": "https://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g", + "iosAppStoreId": "544007664", + "linkAlternates": [ + { + "hrefUrl": "https://m.youtube.com/channel/UCxBa895m48H5idw5li7h-0g" + }, + { + "hrefUrl": "android-app://com.google.android.youtube/http/youtube.com/channel/UCxBa895m48H5idw5li7h-0g" + }, + { + "hrefUrl": "ios-app://544007664/http/youtube.com/channel/UCxBa895m48H5idw5li7h-0g" + } + ], + "noindex": false, + "ogType": "yt-fb-app:channel", + "schemaDotOrgType": "http://schema.org/http://schema.org/YoutubeChannelV2", + "siteName": "YouTube", + "thumbnail": { + "thumbnails": [ + { + "height": 200, + "url": "https://yt3.ggpht.com/ytc/AMLnZu_hsZ1XlUXHzXsGNHJw0np79WhWZcC4j8eFdy-tiUCDBKAjJyJOzE5kXFRiqL2S=s200-c-k-c0x00ffffff-no-rj?days_since_epoch=19261", + "width": 200 + } + ] + }, + "title": "Sebastian Figurroa", + "twitterCardType": "summary", + "twitterSiteHandle": "@YouTube", + "unlisted": false, + "urlApplinksAndroid": "vnd.youtube://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g?feature=applinks", + "urlApplinksIos": "vnd.youtube://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g?feature=applinks", + "urlApplinksWeb": "https://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g?feature=applinks", + "urlCanonical": "https://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g", + "urlTwitterAndroid": "vnd.youtube://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g?feature=twitter-deep-link", + "urlTwitterIos": "vnd.youtube://www.youtube.com/channel/UCxBa895m48H5idw5li7h-0g?feature=twitter-deep-link" + } + }, + "responseContext": { + "mainAppWebResponseContext": { + "loggedOut": true + }, + "maxAgeSeconds": 300, + "serviceTrackingParams": [ + { + "params": [ + { + "key": "route", + "value": "channel.videos" + }, + { + "key": "is_casual", + "value": "true" + }, + { + "key": "is_owner", + "value": "false" + }, + { + "key": "is_monetization_enabled", + "value": "false" + }, + { + "key": "num_shelves", + "value": "0" + }, + { + "key": "is_alc_surface", + "value": "false" + }, + { + "key": "browse_id", + "value": "UCxBa895m48H5idw5li7h-0g" + }, + { + "key": "logged_in", + "value": "0" + }, + { + "key": "e", + "value": "1714243,23703445,23804281,23882502,23918597,23934970,23940248,23946420,23966208,23983296,23986032,23998056,24001373,24002022,24002025,24004644,24007246,24034168,24036947,24077241,24080738,24120819,24135310,24140247,24147969,24152442,24161116,24164186,24166867,24169501,24181174,24181490,24185614,24187043,24187377,24191629,24197277,24199724,24199774,24204664,24211178,24211852,24214616,24219359,24219713,24225482,24226335,24227844,24229161,24241378,24243988,24246429,24248092,24248385,24248466,24248955,24254502,24255165,24255184,24255543,24255545,24256986,24260441,24260783,24260844,24262346,24263796,24264860,24265820,24267564,24267570,24268142,24268870,24275160,24275320,24276619,24276631,24277923,24277989,24278489,24278545,24280303,24281190,24282684,24282724,24283093,24283280,24283717,24286003,24286017,24286468,24287795,24287799,24288047,24289901,24290131,24290276,24290971,24291913,24291977,24291981,24292296,24292447,39322278,39322357,39322379,39322386,39322399,39322450,45686551" + } + ], + "service": "GFEEDBACK" + }, + { + "params": [ + { + "key": "browse_id", + "value": "UCxBa895m48H5idw5li7h-0g" + } + ], + "service": "GOOGLE_HELP" + }, + { + "params": [ + { + "key": "c", + "value": "WEB" + }, + { + "key": "cver", + "value": "2.20220921.08.00" + }, + { + "key": "yt_li", + "value": "0" + }, + { + "key": "GetChannelPage_rid", + "value": "0x46f55abae021b730" + } + ], + "service": "CSI" + }, + { + "params": [ + { + "key": "logged_in", + "value": "0" + } + ], + "service": "GUIDED_HELP" + }, + { + "params": [ + { + "key": "client.version", + "value": "2.20220921" + }, + { + "key": "client.name", + "value": "WEB" + }, + { + "key": "client.fexp", + "value": "24080738,24002022,39322399,24169501,24219713,24290131,23703445,39322357,45686551,24248955,24254502,24283280,24120819,24260844,23918597,24265820,24199774,23804281,24001373,24219359,23946420,1714243,24077241,24290971,24197277,24152442,23882502,24255545,24226335,24256986,23983296,24267570,23966208,24140247,24286017,39322386,24255543,24161116,39322379,24243988,24225482,24277989,24290276,24036947,24280303,24248466,24260441,24187377,24268142,24275320,24199724,24282684,24255184,24185614,24248385,24291913,24246429,24276619,24147969,24229161,24191629,24292296,24292447,24260783,24264860,23940248,24263796,24289901,24278545,24267564,39322450,39322278,24276631,23934970,24164186,24187043,24241378,24135310,24288047,24214616,23998056,23986032,24007246,24277923,24204664,24286003,24283717,24004644,24268870,24291977,24211178,24287799,24034168,24181174,24181490,24211852,24291981,24286468,24281190,24262346,24248092,24283093,24166867,24002025,24255165,24282724,24275160,24278489,24287795,24227844" + } + ], + "service": "ECATCHER" + } + ], + "visitorData": "Cgtvc2s4UllvTGl6byigxseZBg%3D%3D", + "webResponseContextExtensionData": { + "hasDecorated": true + } + }, + "topbar": { + "desktopTopbarRenderer": { + "a11ySkipNavigationButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAUQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAUQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "signalAction": { + "signal": "SKIP_NAVIGATION" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "text": { + "runs": [ + { + "text": "Skip navigation" + } + ] + }, + "trackingParams": "CAUQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "backButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAcQvIYDIhMI7sOhv_-y-gIV1O7mCh1DlQqz", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAcQvIYDIhMI7sOhv_-y-gIV1O7mCh1DlQqz", + "signalAction": { + "signal": "HISTORY_BACK" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "trackingParams": "CAcQvIYDIhMI7sOhv_-y-gIV1O7mCh1DlQqz" + } + }, + "forwardButton": { + "buttonRenderer": { + "command": { + "clickTrackingParams": "CAYQvYYDIhMI7sOhv_-y-gIV1O7mCh1DlQqz", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAYQvYYDIhMI7sOhv_-y-gIV1O7mCh1DlQqz", + "signalAction": { + "signal": "HISTORY_FORWARD" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "trackingParams": "CAYQvYYDIhMI7sOhv_-y-gIV1O7mCh1DlQqz" + } + }, + "hotkeyDialog": { + "hotkeyDialogRenderer": { + "dismissButton": { + "buttonRenderer": { + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_BLUE_TEXT", + "text": { + "runs": [ + { + "text": "Dismiss" + } + ] + }, + "trackingParams": "CAkQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "sections": [ + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "k", + "label": { + "runs": [ + { + "text": "Toggle play/pause" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "j", + "label": { + "runs": [ + { + "text": "Rewind 10 seconds" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "l", + "label": { + "runs": [ + { + "text": "Fast forward 10 seconds" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "P (SHIFT+p)", + "label": { + "runs": [ + { + "text": "Previous video" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "N (SHIFT+n)", + "label": { + "runs": [ + { + "text": "Next video" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": ",", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Comma" + } + }, + "label": { + "runs": [ + { + "text": "Previous frame (while paused)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": ".", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Period" + } + }, + "label": { + "runs": [ + { + "text": "Next frame (while paused)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "< (SHIFT+,)", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Less than or SHIFT + comma" + } + }, + "label": { + "runs": [ + { + "text": "Decrease playback rate" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "> (SHIFT+.)", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Greater than or SHIFT + period" + } + }, + "label": { + "runs": [ + { + "text": "Increase playback rate" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "0..9", + "label": { + "runs": [ + { + "text": "Seek to specific point in the video (7 advances to 70% of duration)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "CONTROL + ←", + "label": { + "runs": [ + { + "text": "Seek to previous chapter" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "CONTROL + →", + "label": { + "runs": [ + { + "text": "Seek to next chapter" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Playback" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "f", + "label": { + "runs": [ + { + "text": "Toggle full screen" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "t", + "label": { + "runs": [ + { + "text": "Toggle theater mode" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "i", + "label": { + "runs": [ + { + "text": "Toggle miniplayer" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "ESCAPE", + "label": { + "runs": [ + { + "text": "Close miniplayer or current dialog" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "m", + "label": { + "runs": [ + { + "text": "Toggle mute" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "General" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "c", + "label": { + "runs": [ + { + "text": "If the video supports captions, toggle captions ON/OFF" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "o", + "label": { + "runs": [ + { + "text": "Rotate through different text opacity levels" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "w", + "label": { + "runs": [ + { + "text": "Rotate through different window opacity levels" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "+", + "label": { + "runs": [ + { + "text": "Rotate through font sizes (increasing)" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "-", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Minus" + } + }, + "label": { + "runs": [ + { + "text": "Rotate through font sizes (decreasing)" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Subtitles and closed captions" + } + ] + } + } + }, + { + "hotkeyDialogSectionRenderer": { + "options": [ + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "w", + "label": { + "runs": [ + { + "text": "Pan up" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "a", + "label": { + "runs": [ + { + "text": "Pan left" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "s", + "label": { + "runs": [ + { + "text": "Pan down" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "d", + "label": { + "runs": [ + { + "text": "Pan right" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "+ on numpad or ]", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Plus on number pad or right bracket" + } + }, + "label": { + "runs": [ + { + "text": "Zoom in" + } + ] + } + } + }, + { + "hotkeyDialogSectionOptionRenderer": { + "hotkey": "- on numpad or [", + "hotkeyAccessibilityLabel": { + "accessibilityData": { + "label": "Minus on number pad or left bracket" + } + }, + "label": { + "runs": [ + { + "text": "Zoom out" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Spherical Videos" + } + ] + } + } + } + ], + "title": { + "runs": [ + { + "text": "Keyboard shortcuts" + } + ] + }, + "trackingParams": "CAgQteYDIhMI7sOhv_-y-gIV1O7mCh1DlQqz" + } + }, + "logo": { + "topbarLogoRenderer": { + "endpoint": { + "browseEndpoint": { + "browseId": "FEwhat_to_watch" + }, + "clickTrackingParams": "CA8QsV4iEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/browse", + "rootVe": 3854, + "url": "/", + "webPageType": "WEB_PAGE_TYPE_BROWSE" + } + } + }, + "iconImage": { + "iconType": "YOUTUBE_LOGO" + }, + "overrideEntityKey": "EgZ0b3BiYXIg9QEoAQ%3D%3D", + "tooltipText": { + "runs": [ + { + "text": "YouTube Home" + } + ] + }, + "trackingParams": "CA8QsV4iEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "searchbox": { + "fusionSearchboxRenderer": { + "clearButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Clear search query" + } + }, + "icon": { + "iconType": "CLOSE" + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "trackingParams": "CA4Q8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "config": { + "webSearchboxConfig": { + "focusSearchbox": true, + "hasOnscreenKeyboard": false, + "requestDomain": "us", + "requestLanguage": "en" + } + }, + "icon": { + "iconType": "SEARCH" + }, + "placeholderText": { + "runs": [ + { + "text": "Search" + } + ] + }, + "searchEndpoint": { + "clickTrackingParams": "CA0Q7VAiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 4724, + "url": "/results?search_query=", + "webPageType": "WEB_PAGE_TYPE_SEARCH" + } + }, + "searchEndpoint": { + "query": "" + } + }, + "trackingParams": "CA0Q7VAiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "topbarButtons": [ + { + "topbarMenuButtonRenderer": { + "accessibility": { + "accessibilityData": { + "label": "Settings" + } + }, + "icon": { + "iconType": "MORE_VERT" + }, + "menuRequest": { + "clickTrackingParams": "CAsQ_qsBGAAiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "apiUrl": "/youtubei/v1/account/account_menu", + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAsQ_qsBGAAiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "openPopupAction": { + "beReused": true, + "popup": { + "multiPageMenuRenderer": { + "showLoadingSpinner": true, + "style": "MULTI_PAGE_MENU_STYLE_TYPE_SYSTEM", + "trackingParams": "CAwQ_6sBIhMI7sOhv_-y-gIV1O7mCh1DlQqz" + } + }, + "popupType": "DROPDOWN" + } + } + ], + "signal": "GET_ACCOUNT_MENU" + } + }, + "style": "STYLE_DEFAULT", + "tooltip": "Settings", + "trackingParams": "CAsQ_qsBGAAiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + { + "buttonRenderer": { + "icon": { + "iconType": "AVATAR_LOGGED_OUT" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAoQ1IAEGAEiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "rootVe": 83769, + "url": "https://accounts.google.com/ServiceLogin?service=youtube&uilel=3&passive=true&continue=https%3A%2F%2Fwww.youtube.com%2Fsignin%3Faction_handle_signin%3Dtrue%26app%3Ddesktop%26hl%3Den%26next%3Dhttps%253A%252F%252Fwww.youtube.com%252Fyoutubei%252Fv1%252Fbrowse%253Fkey%253DAIzaSyAO_FJ2SlqU8Q4STEHLGCilw_Y9_11qcW8%2526prettyPrint%253Dfalse&hl=en&ec=65620", + "webPageType": "WEB_PAGE_TYPE_UNKNOWN" + } + }, + "signInEndpoint": { + "idamTag": "65620" + } + }, + "size": "SIZE_SMALL", + "style": "STYLE_SUGGESTIVE", + "targetId": "topbar-signin", + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "trackingParams": "CAoQ1IAEGAEiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + } + ], + "trackingParams": "CAEQq6wBIhMI7sOhv_-y-gIV1O7mCh1DlQqz", + "voiceSearchButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Search with your voice" + } + }, + "icon": { + "iconType": "MICROPHONE_ON" + }, + "isDisabled": false, + "serviceEndpoint": { + "clickTrackingParams": "CAIQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "commandMetadata": { + "webCommandMetadata": { + "sendPost": true + } + }, + "signalServiceEndpoint": { + "actions": [ + { + "clickTrackingParams": "CAIQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=", + "openPopupAction": { + "popup": { + "voiceSearchDialogRenderer": { + "connectionErrorHeader": { + "runs": [ + { + "text": "No connection" + } + ] + }, + "connectionErrorMicrophoneLabel": { + "runs": [ + { + "text": "Check your connection and try again" + } + ] + }, + "disabledHeader": { + "runs": [ + { + "text": "Search with your voice" + } + ] + }, + "disabledSubtext": { + "runs": [ + { + "text": "To search by voice, go to your browser settings and allow access to microphone" + } + ] + }, + "exampleQuery1": { + "runs": [ + { + "text": "\"Play Dua Lipa\"" + } + ] + }, + "exampleQuery2": { + "runs": [ + { + "text": "\"Show me my subscriptions\"" + } + ] + }, + "exitButton": { + "buttonRenderer": { + "accessibilityData": { + "accessibilityData": { + "label": "Cancel" + } + }, + "icon": { + "iconType": "CLOSE" + }, + "isDisabled": false, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "trackingParams": "CAQQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + }, + "loadingHeader": { + "runs": [ + { + "text": "Working..." + } + ] + }, + "microphoneButtonAriaLabel": { + "runs": [ + { + "text": "Cancel" + } + ] + }, + "microphoneOffPromptHeader": { + "runs": [ + { + "text": "Microphone off. Try again." + } + ] + }, + "permissionsHeader": { + "runs": [ + { + "text": "Waiting for permission" + } + ] + }, + "permissionsSubtext": { + "runs": [ + { + "text": "Allow microphone access to search with voice" + } + ] + }, + "placeholderHeader": { + "runs": [ + { + "text": "Listening..." + } + ] + }, + "promptHeader": { + "runs": [ + { + "text": "Didn't hear that. Try again." + } + ] + }, + "promptMicrophoneLabel": { + "runs": [ + { + "text": "Tap microphone to try again" + } + ] + }, + "trackingParams": "CAMQ7q8FIhMI7sOhv_-y-gIV1O7mCh1DlQqz" + } + }, + "popupType": "TOP_ALIGNED_DIALOG" + } + } + ], + "signal": "CLIENT_SIGNAL" + } + }, + "size": "SIZE_DEFAULT", + "style": "STYLE_DEFAULT", + "tooltip": "Search with your voice", + "trackingParams": "CAIQ8FsiEwjuw6G__7L6AhXU7uYKHUOVCrM=" + } + } + } + }, + "trackingParams": "CAAQhGciEwjuw6G__7L6AhXU7uYKHUOVCrM=" +}