diff --git a/README.md b/README.md index 7a6ddb3..7e19f77 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ inspired by [NewPipe](https://github.com/TeamNewPipe/NewPipeExtractor). - [X] **Album** - [X] **Artist** - [X] **Search** -- [ ] **Search suggestions** +- [X] **Search suggestions** - [X] **Radio** - [X] **Track details** (lyrics, recommendations) - [ ] **Moods** diff --git a/codegen/src/download_testfiles.rs b/codegen/src/download_testfiles.rs index 9ff42a9..790eaab 100644 --- a/codegen/src/download_testfiles.rs +++ b/codegen/src/download_testfiles.rs @@ -48,6 +48,7 @@ pub async fn download_testfiles(project_root: &Path) { music_search_artists(&testfiles).await; music_search_playlists(&testfiles).await; music_search_cont(&testfiles).await; + music_search_suggestion(&testfiles).await; music_artist(&testfiles).await; music_details(&testfiles).await; music_lyrics(&testfiles).await; @@ -585,10 +586,14 @@ async fn music_album(testfiles: &Path) { } async fn music_search(testfiles: &Path) { - for (name, query) in [("default", "black mamba"), ("typo", "liblingsmensch")] { + for (name, query) in [ + ("default", "black mamba"), + ("typo", "liblingsmensch"), + ("radio", "pop radio"), + ] { let mut json_path = testfiles.to_path_buf(); json_path.push("music_search"); - json_path.push(format!("{}.json", name)); + json_path.push(format!("main_{}.json", name)); if json_path.exists() { continue; } @@ -684,6 +689,20 @@ async fn music_search_cont(testfiles: &Path) { res.items.next(&rp.query()).await.unwrap().unwrap(); } +async fn music_search_suggestion(testfiles: &Path) { + for (name, query) in [("default", "t"), ("empty", "reujbhevmfndxnjrze")] { + let mut json_path = testfiles.to_path_buf(); + json_path.push("music_search"); + json_path.push(format!("suggestion_{}.json", name)); + if json_path.exists() { + continue; + } + + let rp = rp_testfile(&json_path); + rp.query().music_search_suggestion(query).await.unwrap(); + } +} + async fn music_artist(testfiles: &Path) { for (name, id) in [ ("default", "UClmXPfaYhXOYsNn_QUyheWQ"), diff --git a/src/client/music_search.rs b/src/client/music_search.rs index ab27642..3cc7ba1 100644 --- a/src/client/music_search.rs +++ b/src/client/music_search.rs @@ -24,6 +24,13 @@ struct QSearch<'a> { params: Option, } +#[derive(Debug, Serialize)] +#[serde(rename_all = "camelCase")] +struct QSearchSuggestion<'a> { + context: YTContext<'a>, + input: &'a str, +} + #[derive(Debug, Serialize)] enum Params { #[serde(rename = "EgWKAQIIAWoMEAMQBBAJEA4QChAF")] @@ -182,6 +189,23 @@ impl RustyPipeQuery { ) .await } + + pub async fn music_search_suggestion(&self, query: &str) -> Result, Error> { + let context = self.get_context(ClientType::DesktopMusic, true, None).await; + let request_body = QSearchSuggestion { + context, + input: query, + }; + + self.execute_request::( + ClientType::DesktopMusic, + "music_search_suggestion", + query, + "music/get_search_suggestions", + &request_body, + ) + .await + } } impl MapResponse for response::MusicSearch { @@ -293,6 +317,41 @@ impl MapResponse> for response::MusicSearc } } +impl MapResponse> for response::MusicSearchSuggestion { + fn map_response( + self, + _id: &str, + _lang: crate::param::Language, + _deobf: Option<&crate::deobfuscate::Deobfuscator>, + ) -> Result>, ExtractionError> { + let items = self + .contents + .into_iter() + .next() + .map(|content| { + content + .search_suggestions_section_renderer + .contents + .into_iter() + .filter_map(|itm| { + match itm { + response::music_search::SearchSuggestionItem::SearchSuggestionRenderer { + suggestion, + } => Some(suggestion), + response::music_search::SearchSuggestionItem::None => None, + } + }) + .collect::>() + }) + .unwrap_or_default(); + + Ok(MapResult { + c: items, + warnings: Vec::new(), + }) + } +} + #[cfg(test)] mod tests { use std::{fs::File, io::BufReader, path::Path}; @@ -312,8 +371,9 @@ mod tests { #[rstest] #[case::default("default")] #[case::typo("typo")] - fn map_music_search(#[case] name: &str) { - let filename = format!("testfiles/music_search/{}.json", name); + #[case::radio("radio")] + fn map_music_search_main(#[case] name: &str) { + let filename = format!("testfiles/music_search/main_{}.json", name); let json_path = Path::new(&filename); let json_file = File::open(json_path).unwrap(); @@ -328,7 +388,7 @@ mod tests { map_res.warnings ); - insta::assert_ron_snapshot!(format!("map_music_search_{}", name), map_res.c); + insta::assert_ron_snapshot!(format!("map_music_search_main_{}", name), map_res.c); } #[rstest] @@ -416,4 +476,26 @@ mod tests { insta::assert_ron_snapshot!(format!("map_music_search_playlists_{}", name), map_res.c); } + + #[rstest] + #[case::default("default")] + #[case::empty("empty")] + fn map_music_search_suggestion(#[case] name: &str) { + let filename = format!("testfiles/music_search/suggestion_{}.json", name); + let json_path = Path::new(&filename); + let json_file = File::open(json_path).unwrap(); + + let suggestion: response::MusicSearchSuggestion = + serde_json::from_reader(BufReader::new(json_file)).unwrap(); + let map_res: MapResult> = + suggestion.map_response("", Language::En, None).unwrap(); + + assert!( + map_res.warnings.is_empty(), + "deserialization/mapping warnings: {:?}", + map_res.warnings + ); + + insta::assert_ron_snapshot!(format!("map_music_search_suggestion_{}", name), map_res.c); + } } diff --git a/src/client/response/mod.rs b/src/client/response/mod.rs index ee46a24..e2fe6ca 100644 --- a/src/client/response/mod.rs +++ b/src/client/response/mod.rs @@ -21,6 +21,7 @@ pub(crate) use music_details::MusicRelated; pub(crate) use music_item::MusicContinuation; pub(crate) use music_playlist::MusicPlaylist; pub(crate) use music_search::MusicSearch; +pub(crate) use music_search::MusicSearchSuggestion; pub(crate) use player::Player; pub(crate) use playlist::Playlist; pub(crate) use playlist::PlaylistCont; diff --git a/src/client/response/music_item.rs b/src/client/response/music_item.rs index 6ece502..35039ea 100644 --- a/src/client/response/music_item.rs +++ b/src/client/response/music_item.rs @@ -15,7 +15,7 @@ use crate::{ }; use super::{ - url_endpoint::{BrowseEndpointWrap, NavigationEndpoint, PageType}, + url_endpoint::{BrowseEndpointWrap, MusicPageType, NavigationEndpoint, PageType}, ContentsRenderer, MusicContinuationData, Thumbnails, ThumbnailsWrap, }; @@ -408,119 +408,30 @@ impl MusicListMapper { let c2 = columns.next(); let c3 = columns.next(); - match item.navigation_endpoint { - // Artist / Album / Playlist - Some(ne) => { - let mut subtitle_parts = c2 - .ok_or_else(|| "could not get subtitle".to_owned())? - .renderer - .text - .split(util::DOT_SEPARATOR) - .into_iter(); + let first_tn = item + .thumbnail + .music_thumbnail_renderer + .thumbnail + .thumbnails + .first(); - let (page_type, id) = match ne.music_page() { - Some(music_page) => music_page, - None => { - // Ignore radio items - if subtitle_parts.len() == 1 { - return Ok(None); - } - return Err("invalid navigation endpoint".to_string()); - } - }; + let pt_id = item + .navigation_endpoint + .and_then(|ne| ne.music_page()) + .or_else(|| { + item.playlist_item_data + .map(|d| (MusicPageType::Track, d.video_id)) + }) + .or_else(|| { + first_tn.and_then(|tn| { + util::video_id_from_thumbnail_url(&tn.url) + .map(|id| (MusicPageType::Track, id)) + }) + }); - let title = - title.ok_or_else(|| format!("track {}: could not get title", id))?; - - let subtitle_p1 = subtitle_parts.next(); - let subtitle_p2 = subtitle_parts.next(); - let subtitle_p3 = subtitle_parts.next(); - - match page_type { - PageType::Artist => { - let subscriber_count = subtitle_p2.and_then(|p| { - util::parse_large_numstr(p.first_str(), self.lang) - }); - - self.items.push(MusicItem::Artist(ArtistItem { - id, - name: title, - avatar: item.thumbnail.into(), - subscriber_count, - })); - Ok(Some(MusicEntityType::Artist)) - } - PageType::Album => { - let album_type = subtitle_p1 - .map(|st| map_album_type(st.first_str(), self.lang)) - .unwrap_or_default(); - - let (artists, by_va) = map_artists(subtitle_p2); - - let year = subtitle_p3 - .and_then(|st| util::parse_numeric(st.first_str()).ok()); - - self.items.push(MusicItem::Album(AlbumItem { - id, - name: title, - cover: item.thumbnail.into(), - artists, - album_type, - year, - by_va, - })); - Ok(Some(MusicEntityType::Album)) - } - PageType::Playlist => { - // Part 1 may be the "Playlist" label - let (channel_p, tcount_p) = match subtitle_p3 { - Some(_) => (subtitle_p2, subtitle_p3), - None => (subtitle_p1, subtitle_p2), - }; - - let from_ytm = channel_p - .as_ref() - .map(|p| p.first_str() == util::YT_MUSIC_NAME) - .unwrap_or_default(); - let channel = channel_p.and_then(|p| { - p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok()) - }); - let track_count = - tcount_p.and_then(|p| util::parse_numeric(p.first_str()).ok()); - - self.items.push(MusicItem::Playlist(MusicPlaylistItem { - id, - name: title, - thumbnail: item.thumbnail.into(), - channel, - track_count, - from_ytm, - })); - Ok(Some(MusicEntityType::Playlist)) - } - PageType::Channel => { - // There may be broken YT channels from the artist search. They can be skipped. - Ok(None) - } - } - } + match pt_id { // Track - None => { - let first_tn = item - .thumbnail - .music_thumbnail_renderer - .thumbnail - .thumbnails - .first(); - - let id = item - .playlist_item_data - .map(|d| d.video_id) - .or_else(|| { - first_tn.and_then(|tn| util::video_id_from_thumbnail_url(&tn.url)) - }) - .ok_or_else(|| "no video id".to_owned())?; - + Some((MusicPageType::Track, id)) => { let title = title.ok_or_else(|| format!("track {}: could not get title", id))?; @@ -633,6 +544,92 @@ impl MusicListMapper { })); Ok(Some(MusicEntityType::Track)) } + // Artist / Album / Playlist + Some((page_type, id)) => { + let mut subtitle_parts = c2 + .ok_or_else(|| "could not get subtitle".to_owned())? + .renderer + .text + .split(util::DOT_SEPARATOR) + .into_iter(); + + let title = + title.ok_or_else(|| format!("track {}: could not get title", id))?; + + let subtitle_p1 = subtitle_parts.next(); + let subtitle_p2 = subtitle_parts.next(); + let subtitle_p3 = subtitle_parts.next(); + + match page_type { + MusicPageType::Artist => { + let subscriber_count = subtitle_p2.and_then(|p| { + util::parse_large_numstr(p.first_str(), self.lang) + }); + + self.items.push(MusicItem::Artist(ArtistItem { + id, + name: title, + avatar: item.thumbnail.into(), + subscriber_count, + })); + Ok(Some(MusicEntityType::Artist)) + } + MusicPageType::Album => { + let album_type = subtitle_p1 + .map(|st| map_album_type(st.first_str(), self.lang)) + .unwrap_or_default(); + + let (artists, by_va) = map_artists(subtitle_p2); + + let year = subtitle_p3 + .and_then(|st| util::parse_numeric(st.first_str()).ok()); + + self.items.push(MusicItem::Album(AlbumItem { + id, + name: title, + cover: item.thumbnail.into(), + artists, + album_type, + year, + by_va, + })); + Ok(Some(MusicEntityType::Album)) + } + MusicPageType::Playlist => { + // Part 1 may be the "Playlist" label + let (channel_p, tcount_p) = match subtitle_p3 { + Some(_) => (subtitle_p2, subtitle_p3), + None => (subtitle_p1, subtitle_p2), + }; + + let from_ytm = channel_p + .as_ref() + .map(|p| p.first_str() == util::YT_MUSIC_NAME) + .unwrap_or_default(); + let channel = channel_p.and_then(|p| { + p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok()) + }); + let track_count = + tcount_p.and_then(|p| util::parse_numeric(p.first_str()).ok()); + + self.items.push(MusicItem::Playlist(MusicPlaylistItem { + id, + name: title, + thumbnail: item.thumbnail.into(), + channel, + track_count, + from_ytm, + })); + Ok(Some(MusicEntityType::Playlist)) + } + MusicPageType::None => { + // There may be broken YT channels from the artist search. They can be skipped. + Ok(None) + } + MusicPageType::Track => unreachable!(), + } + } + None => Err("could not determine item type".to_owned()), } } // Tile @@ -642,44 +639,45 @@ impl MusicListMapper { let subtitle_p2 = subtitle_parts.next(); let subtitle_p3 = subtitle_parts.next(); - match item.navigation_endpoint.watch_endpoint { - // Music video - Some(wep) => { - let artists = map_artists(subtitle_p1).0; + match item.navigation_endpoint.music_page() { + Some((page_type, id)) => match page_type { + MusicPageType::Track => { + let artists = map_artists(subtitle_p1).0; - self.items.push(MusicItem::Track(TrackItem { - id: wep.video_id, - title: item.title, - duration: None, - cover: item.thumbnail_renderer.into(), - artist_id: artists.first().and_then(|a| a.id.to_owned()), - artists, - album: None, - view_count: subtitle_p2 - .and_then(|c| util::parse_large_numstr(c.first_str(), self.lang)), - is_video: true, - track_nr: None, - })); - Ok(Some(MusicEntityType::Track)) - } - // Artist / Album / Playlist - None => { - let (page_type, id) = item - .navigation_endpoint - .music_page() - .ok_or_else(|| "could not get navigation endpoint".to_owned())?; + self.items.push(MusicItem::Track(TrackItem { + id, + title: item.title, + duration: None, + cover: item.thumbnail_renderer.into(), + artist_id: artists.first().and_then(|a| a.id.to_owned()), + artists, + album: None, + view_count: subtitle_p2.and_then(|c| { + util::parse_large_numstr(c.first_str(), self.lang) + }), + is_video: true, + track_nr: None, + })); + Ok(Some(MusicEntityType::Track)) + } + MusicPageType::Artist => { + let subscriber_count = subtitle_p1 + .and_then(|p| util::parse_large_numstr(p.first_str(), self.lang)); - match page_type { - PageType::Album => { - let mut year = None; - let mut album_type = AlbumType::Single; + self.items.push(MusicItem::Artist(ArtistItem { + id, + name: item.title, + avatar: item.thumbnail_renderer.into(), + subscriber_count, + })); + Ok(Some(MusicEntityType::Artist)) + } + MusicPageType::Album => { + let mut year = None; + let mut album_type = AlbumType::Single; - let (artists, by_va) = match ( - subtitle_p1, - subtitle_p2, - &self.artists, - self.artist_page, - ) { + let (artists, by_va) = + match (subtitle_p1, subtitle_p2, &self.artists, self.artist_page) { // "2022" (Artist singles) (Some(year_txt), None, Some(artists), true) => { year = util::parse_numeric(year_txt.first_str()).ok(); @@ -706,56 +704,41 @@ impl MusicListMapper { } }; - self.items.push(MusicItem::Album(AlbumItem { - id, - name: item.title, - cover: item.thumbnail_renderer.into(), - artists, - album_type, - year, - by_va, - })); - Ok(Some(MusicEntityType::Album)) - } - PageType::Playlist => { - let from_ytm = subtitle_p2 - .as_ref() - .map(|p| p.first_str() == util::YT_MUSIC_NAME) - .unwrap_or_default(); - let channel = subtitle_p2.and_then(|p| { - p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok()) - }); - let track_count = subtitle_p3 - .and_then(|p| util::parse_numeric(p.first_str()).ok()); - - self.items.push(MusicItem::Playlist(MusicPlaylistItem { - id, - name: item.title, - thumbnail: item.thumbnail_renderer.into(), - channel, - track_count, - from_ytm, - })); - Ok(Some(MusicEntityType::Playlist)) - } - PageType::Artist => { - let subscriber_count = subtitle_p1.and_then(|p| { - util::parse_large_numstr(p.first_str(), self.lang) - }); - - self.items.push(MusicItem::Artist(ArtistItem { - id, - name: item.title, - avatar: item.thumbnail_renderer.into(), - subscriber_count, - })); - Ok(Some(MusicEntityType::Artist)) - } - PageType::Channel => { - Err(format!("channel items unsupported. id: {}", id)) - } + self.items.push(MusicItem::Album(AlbumItem { + id, + name: item.title, + cover: item.thumbnail_renderer.into(), + artists, + album_type, + year, + by_va, + })); + Ok(Some(MusicEntityType::Album)) } - } + MusicPageType::Playlist => { + let from_ytm = subtitle_p2 + .as_ref() + .map(|p| p.first_str() == util::YT_MUSIC_NAME) + .unwrap_or_default(); + let channel = subtitle_p2.and_then(|p| { + p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok()) + }); + let track_count = + subtitle_p3.and_then(|p| util::parse_numeric(p.first_str()).ok()); + + self.items.push(MusicItem::Playlist(MusicPlaylistItem { + id, + name: item.title, + thumbnail: item.thumbnail_renderer.into(), + channel, + track_count, + from_ytm, + })); + Ok(Some(MusicEntityType::Playlist)) + } + MusicPageType::None => Ok(None), + }, + None => Err("could not determine item type".to_owned()), } } } diff --git a/src/client/response/music_search.rs b/src/client/response/music_search.rs index e95e373..4f8950d 100644 --- a/src/client/response/music_search.rs +++ b/src/client/response/music_search.rs @@ -12,6 +12,16 @@ pub(crate) struct MusicSearch { pub contents: Contents, } +/// Response model for YouTube Music suggestion +#[serde_as] +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub(crate) struct MusicSearchSuggestion { + #[serde(default)] + #[serde_as(as = "VecSkipError<_>")] + pub contents: Vec, +} + #[derive(Debug, Deserialize)] #[serde(rename_all = "camelCase")] pub(crate) struct Contents { @@ -45,3 +55,21 @@ pub(crate) struct ShowingResultsForRenderer { #[serde_as(as = "Text")] pub corrected_query: String, } + +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub(crate) struct SearchSuggestionsSection { + pub search_suggestions_section_renderer: ContentsRenderer, +} + +#[serde_as] +#[derive(Debug, Deserialize)] +#[serde(rename_all = "camelCase")] +pub(crate) enum SearchSuggestionItem { + SearchSuggestionRenderer { + #[serde_as(as = "Text")] + suggestion: String, + }, + #[serde(other, deserialize_with = "deserialize_ignore_any")] + None, +} diff --git a/src/client/response/url_endpoint.rs b/src/client/response/url_endpoint.rs index 0627324..09713e1 100644 --- a/src/client/response/url_endpoint.rs +++ b/src/client/response/url_endpoint.rs @@ -32,6 +32,7 @@ pub(crate) struct NavigationEndpoint { #[serde(rename_all = "camelCase")] pub(crate) struct WatchEndpoint { pub video_id: String, + pub playlist_id: Option, #[serde(default)] pub start_time_seconds: u32, } @@ -146,17 +147,51 @@ impl PageType { } } +#[derive(Debug, Copy, Clone, PartialEq, Eq)] +pub(crate) enum MusicPageType { + Artist, + Album, + Playlist, + Track, + None, +} + +impl From for MusicPageType { + fn from(t: PageType) -> Self { + match t { + PageType::Artist => MusicPageType::Artist, + PageType::Album => MusicPageType::Album, + PageType::Playlist => MusicPageType::Playlist, + PageType::Channel => MusicPageType::None, + } + } +} + impl NavigationEndpoint { - pub(crate) fn music_page(self) -> Option<(PageType, String)> { + pub(crate) fn music_page(self) -> Option<(MusicPageType, String)> { match self.browse_endpoint { Some(browse) => match browse.browse_endpoint_context_supported_configs { Some(config) => Some(( - config.browse_endpoint_context_music_config.page_type, + config.browse_endpoint_context_music_config.page_type.into(), browse.browse_id, )), None => None, }, None => None, } + .or_else(|| { + self.watch_endpoint.map(|watch| { + if watch + .playlist_id + .map(|plid| plid.starts_with("RDQM")) + .unwrap_or_default() + { + // Genre radios (e.g. "pop radio") will be skipped + (MusicPageType::None, watch.video_id) + } else { + (MusicPageType::Track, watch.video_id) + } + }) + }) } } diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_default.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_main_default.snap similarity index 100% rename from src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_default.snap rename to src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_main_default.snap diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_main_radio.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_main_radio.snap new file mode 100644 index 0000000..1179b97 --- /dev/null +++ b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_main_radio.snap @@ -0,0 +1,497 @@ +--- +source: src/client/music_search.rs +expression: map_res.c +--- +MusicSearchResult( + tracks: [ + TrackItem( + id: "ITdJEc_81h4", + title: "Pop (Radio Version)", + duration: Some(176), + cover: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/gwNUEmnlDQimTO_eMcH4Dv-74PK_mcc00xyIk-3tzbW98KkRoD5ZGMhJHBNkZV-ExnTWfa-_ruQbcuM=w60-h60-s-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/gwNUEmnlDQimTO_eMcH4Dv-74PK_mcc00xyIk-3tzbW98KkRoD5ZGMhJHBNkZV-ExnTWfa-_ruQbcuM=w120-h120-s-l90-rj", + width: 120, + height: 120, + ), + ], + artists: [ + ArtistId( + id: Some("UCm-wsxhI_OOhg4O1TwDJ98A"), + name: "*NSYNC", + ), + ], + artist_id: Some("UCm-wsxhI_OOhg4O1TwDJ98A"), + album: Some(AlbumId( + id: "MPREb_k2jVJAzQhba", + name: "Greatest Hits (Deluxe)", + )), + view_count: None, + is_video: false, + track_nr: None, + ), + TrackItem( + id: "VHLPvrlclmQ", + title: "Pop im Radio", + duration: Some(224), + cover: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/OD-BVa7OhsLAQ-bV01DBNiBdzVecGxQ_kBvO7bsVJa6HBg9bVWdF7Izkmgs0E86RLRbKjYxVZTc4__o=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/OD-BVa7OhsLAQ-bV01DBNiBdzVecGxQ_kBvO7bsVJa6HBg9bVWdF7Izkmgs0E86RLRbKjYxVZTc4__o=w120-h120-l90-rj", + width: 120, + height: 120, + ), + ], + artists: [ + ArtistId( + id: Some("UCTMksUr7ijdCL7U5wqjKcdA"), + name: "Michy Reincke", + ), + ], + artist_id: Some("UCTMksUr7ijdCL7U5wqjKcdA"), + album: Some(AlbumId( + id: "MPREb_2AXSzG1uDh5", + name: "Das böse Glück (Bonus Edition)", + )), + view_count: None, + is_video: false, + track_nr: None, + ), + TrackItem( + id: "R9TPed_ohKM", + title: "POP!", + duration: Some(169), + cover: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/Xdwe3OXj4qkOv5P_FCNWqSf3cx1VnAfAtB6dD8g1v04ReAcxHm6KAtA08CzPSnbKph-9DwrIMGcRtwFx=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/Xdwe3OXj4qkOv5P_FCNWqSf3cx1VnAfAtB6dD8g1v04ReAcxHm6KAtA08CzPSnbKph-9DwrIMGcRtwFx=w120-h120-l90-rj", + width: 120, + height: 120, + ), + ], + artists: [ + ArtistId( + id: Some("UCBznuF9zIIbRS9Y1Yu4yOhg"), + name: "NAYEON", + ), + ], + artist_id: Some("UCBznuF9zIIbRS9Y1Yu4yOhg"), + album: Some(AlbumId( + id: "MPREb_pBK5MaK36C5", + name: "IM NAYEON", + )), + view_count: None, + is_video: false, + track_nr: None, + ), + TrackItem( + id: "Ej1nxBxFSKc", + title: "Non-Stop-Pop FM (Hosted by Cara Delevingne) [Grand Theft Auto V] | Pop, R&B, Dance-pop Music Mix", + duration: Some(8752), + cover: [ + Thumbnail( + url: "https://i.ytimg.com/vi/Ej1nxBxFSKc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nyY9c1BovrvjSAa2rjVSmcTZZcNA", + width: 400, + height: 225, + ), + ], + artists: [ + ArtistId( + id: Some("UC6ZVjGqRf7elKAcYTXCaIsw"), + name: "Listen To This", + ), + ], + artist_id: Some("UC6ZVjGqRf7elKAcYTXCaIsw"), + album: None, + view_count: Some(2400000), + is_video: true, + track_nr: None, + ), + TrackItem( + id: "26OrUhkRa3c", + title: "Top Hits 2020 Video Mix (CLEAN) | Hip Hop 2020 - (POP HITS 2020, TOP 40 HITS, BEST POP HITS,TOP 40)", + duration: Some(10012), + cover: [ + Thumbnail( + url: "https://i.ytimg.com/vi/26OrUhkRa3c/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mtPP2bCRAx6JAsJ3NGPbFrs06n6w", + width: 400, + height: 225, + ), + ], + artists: [ + ArtistId( + id: Some("UCM7nREGFBumYELglbtUL8FA"), + name: "Top Music", + ), + ], + artist_id: Some("UCM7nREGFBumYELglbtUL8FA"), + album: None, + view_count: Some(2100000), + is_video: true, + track_nr: None, + ), + TrackItem( + id: "Idk-oFqn3kM", + title: "THE BEST CHARTS POP HITS 2021 I THE BEST MUSIC RADIO CHARTS I", + duration: Some(8795), + cover: [ + Thumbnail( + url: "https://i.ytimg.com/vi/Idk-oFqn3kM/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3lm-ElqoCByIARJE5_7xs7jLv9AHA", + width: 320, + height: 180, + ), + ], + artists: [ + ArtistId( + id: Some("UCOVD3PtbJGiAcp-c6opijoQ"), + name: "SCHLAGER AKTUELL", + ), + ], + artist_id: Some("UCOVD3PtbJGiAcp-c6opijoQ"), + album: None, + view_count: Some(67000), + is_video: true, + track_nr: None, + ), + ], + albums: [ + AlbumItem( + id: "MPREb_CYbQPbuAWrt", + name: "Pop Radio", + cover: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/Lh8ESFXrI084BAHjCQTPTAwtMRxDiU3NqfCDNT0IHrG6s8eqPHzPbY5O5SumZaxwjq2g4EEtPIak47Sm=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/Lh8ESFXrI084BAHjCQTPTAwtMRxDiU3NqfCDNT0IHrG6s8eqPHzPbY5O5SumZaxwjq2g4EEtPIak47Sm=w120-h120-l90-rj", + width: 120, + height: 120, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/Lh8ESFXrI084BAHjCQTPTAwtMRxDiU3NqfCDNT0IHrG6s8eqPHzPbY5O5SumZaxwjq2g4EEtPIak47Sm=w226-h226-l90-rj", + width: 226, + height: 226, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/Lh8ESFXrI084BAHjCQTPTAwtMRxDiU3NqfCDNT0IHrG6s8eqPHzPbY5O5SumZaxwjq2g4EEtPIak47Sm=w544-h544-l90-rj", + width: 544, + height: 544, + ), + ], + artists: [], + album_type: Album, + year: Some(2016), + by_va: true, + ), + AlbumItem( + id: "MPREb_Cmf1lWfv0dV", + name: "Pop Radio", + cover: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/f0kOUZ3WurOC8qwxQ0JHtWhrmOGzwANS0x23Yw7iK9OdIvct4kMjJwNHla99_AI96-JBHwcq4Afs6rI=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/f0kOUZ3WurOC8qwxQ0JHtWhrmOGzwANS0x23Yw7iK9OdIvct4kMjJwNHla99_AI96-JBHwcq4Afs6rI=w120-h120-l90-rj", + width: 120, + height: 120, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/f0kOUZ3WurOC8qwxQ0JHtWhrmOGzwANS0x23Yw7iK9OdIvct4kMjJwNHla99_AI96-JBHwcq4Afs6rI=w226-h226-l90-rj", + width: 226, + height: 226, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/f0kOUZ3WurOC8qwxQ0JHtWhrmOGzwANS0x23Yw7iK9OdIvct4kMjJwNHla99_AI96-JBHwcq4Afs6rI=w544-h544-l90-rj", + width: 544, + height: 544, + ), + ], + artists: [], + album_type: Album, + year: Some(2022), + by_va: true, + ), + AlbumItem( + id: "MPREb_Ic1ZUsaeuRv", + name: "Pop Radio", + cover: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/AFWgHYm5Q7LdNo83TGXQWVApLntgB76Z8Vdf5wBMCxVhzwzcInS0uo2S9E_c6d9brP9MXjkAZW0X4EQ=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/AFWgHYm5Q7LdNo83TGXQWVApLntgB76Z8Vdf5wBMCxVhzwzcInS0uo2S9E_c6d9brP9MXjkAZW0X4EQ=w120-h120-l90-rj", + width: 120, + height: 120, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/AFWgHYm5Q7LdNo83TGXQWVApLntgB76Z8Vdf5wBMCxVhzwzcInS0uo2S9E_c6d9brP9MXjkAZW0X4EQ=w226-h226-l90-rj", + width: 226, + height: 226, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/AFWgHYm5Q7LdNo83TGXQWVApLntgB76Z8Vdf5wBMCxVhzwzcInS0uo2S9E_c6d9brP9MXjkAZW0X4EQ=w544-h544-l90-rj", + width: 544, + height: 544, + ), + ], + artists: [ + ArtistId( + id: Some("UCG7LUZBrK6GcfTwowTeTiOQ"), + name: "Strange Radio", + ), + ], + album_type: Album, + year: Some(2002), + by_va: false, + ), + ], + artists: [ + ArtistItem( + id: "UCSZJrhZ2_ILCpyk3Z3AZVTA", + name: "Icona Pop", + avatar: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/sw3ilLK-equKu_EtKG1ehnbNqbmo55ZqS_LjOlu4SuYRQrGyWoxIMF9OSw4ORpVtgYlKoeJGD4thG7k=w60-h60-p-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/sw3ilLK-equKu_EtKG1ehnbNqbmo55ZqS_LjOlu4SuYRQrGyWoxIMF9OSw4ORpVtgYlKoeJGD4thG7k=w120-h120-p-l90-rj", + width: 120, + height: 120, + ), + ], + subscriber_count: Some(713000), + ), + ArtistItem( + id: "UCOk0CLydqB-B0UH7UaZrVqw", + name: "Bacilos", + avatar: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/HtQH-8U0IvzGUjkEzOZjpLEBdqcEBaSRAmpneHhtXbiZHL1rJsoq8iJFwcCSMY7PlM-UuzVGDkoJn6k=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/HtQH-8U0IvzGUjkEzOZjpLEBdqcEBaSRAmpneHhtXbiZHL1rJsoq8iJFwcCSMY7PlM-UuzVGDkoJn6k=w120-h120-l90-rj", + width: 120, + height: 120, + ), + ], + subscriber_count: Some(339000), + ), + ArtistItem( + id: "UC-Unifbw_ADqgIeMq4AdvvA", + name: "Death Pop Radio", + avatar: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/P8DRNrrBP_x4GmPXXKJkWKroLuMCpGW4DJTgxFPYFI-MlLk3pI6xOYMpMnzyb49md-8VVn9L3RHNTfMq=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/P8DRNrrBP_x4GmPXXKJkWKroLuMCpGW4DJTgxFPYFI-MlLk3pI6xOYMpMnzyb49md-8VVn9L3RHNTfMq=w120-h120-l90-rj", + width: 120, + height: 120, + ), + ], + subscriber_count: Some(11), + ), + ], + playlists: [ + MusicPlaylistItem( + id: "RDCLAK5uy_l8kJfTElp2zFMop7IboOXetbbKU3a9VeQ", + name: "REST Turkish Rap", + thumbnail: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/xhb5UI1wFvzj6g6llLK2GBBxL1M_ozXRIMXDOIcMyeVY3yG58_qnqRbfbpqlI-C2wUaGU9_re5yC7Tzg=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/xhb5UI1wFvzj6g6llLK2GBBxL1M_ozXRIMXDOIcMyeVY3yG58_qnqRbfbpqlI-C2wUaGU9_re5yC7Tzg=w120-h120-l90-rj", + width: 120, + height: 120, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/xhb5UI1wFvzj6g6llLK2GBBxL1M_ozXRIMXDOIcMyeVY3yG58_qnqRbfbpqlI-C2wUaGU9_re5yC7Tzg=w226-h226-l90-rj", + width: 226, + height: 226, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/xhb5UI1wFvzj6g6llLK2GBBxL1M_ozXRIMXDOIcMyeVY3yG58_qnqRbfbpqlI-C2wUaGU9_re5yC7Tzg=w544-h544-l90-rj", + width: 544, + height: 544, + ), + ], + channel: None, + track_count: Some(50), + from_ytm: true, + ), + MusicPlaylistItem( + id: "RDCLAK5uy_kLB769E3eFSzgy4fbpu6-1YPLh90b0JAY", + name: "Pop Hotlist", + thumbnail: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/YlPXlLEWrIQjBJ37sKN96YLw8x5nDpPgqGWaUmOft0S0C0arw-MJr3cKvKzWGjLAtDxCTIA_Uobx9sA=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/YlPXlLEWrIQjBJ37sKN96YLw8x5nDpPgqGWaUmOft0S0C0arw-MJr3cKvKzWGjLAtDxCTIA_Uobx9sA=w120-h120-l90-rj", + width: 120, + height: 120, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/YlPXlLEWrIQjBJ37sKN96YLw8x5nDpPgqGWaUmOft0S0C0arw-MJr3cKvKzWGjLAtDxCTIA_Uobx9sA=w226-h226-l90-rj", + width: 226, + height: 226, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/YlPXlLEWrIQjBJ37sKN96YLw8x5nDpPgqGWaUmOft0S0C0arw-MJr3cKvKzWGjLAtDxCTIA_Uobx9sA=w544-h544-l90-rj", + width: 544, + height: 544, + ), + ], + channel: None, + track_count: Some(54), + from_ytm: true, + ), + MusicPlaylistItem( + id: "RDCLAK5uy_mCvOm3kQy1RTBwDOGYkNhtHwMO89ffquk", + name: "Crème French Pop", + thumbnail: [ + Thumbnail( + url: "https://lh3.googleusercontent.com/Tnkqaz7qIHSzvdyK2UqNQZCcV9fCKfc98a4FoN0iD1cPMn6j_8apdd0ukTdbe2Dlu11EnV1QuYRuGgE=w60-h60-l90-rj", + width: 60, + height: 60, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/Tnkqaz7qIHSzvdyK2UqNQZCcV9fCKfc98a4FoN0iD1cPMn6j_8apdd0ukTdbe2Dlu11EnV1QuYRuGgE=w120-h120-l90-rj", + width: 120, + height: 120, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/Tnkqaz7qIHSzvdyK2UqNQZCcV9fCKfc98a4FoN0iD1cPMn6j_8apdd0ukTdbe2Dlu11EnV1QuYRuGgE=w226-h226-l90-rj", + width: 226, + height: 226, + ), + Thumbnail( + url: "https://lh3.googleusercontent.com/Tnkqaz7qIHSzvdyK2UqNQZCcV9fCKfc98a4FoN0iD1cPMn6j_8apdd0ukTdbe2Dlu11EnV1QuYRuGgE=w544-h544-l90-rj", + width: 544, + height: 544, + ), + ], + channel: None, + track_count: Some(50), + from_ytm: true, + ), + MusicPlaylistItem( + id: "PL47aILYuQXEKiHdqMfNCHat1Gck3XQrrK", + name: "Today\'s Pop Hits Playlist 2022 ♫ Best Radio Hits 2022", + thumbnail: [ + Thumbnail( + url: "https://yt3.googleusercontent.com/l9yiCtp9NGGXn397Jybr_7_4I8TvjKpp9XG54Tv8ZfwkimDWvCfSJXNTf-x9XlgSzsOxdh0doJw=s192", + width: 192, + height: 192, + ), + Thumbnail( + url: "https://yt3.googleusercontent.com/l9yiCtp9NGGXn397Jybr_7_4I8TvjKpp9XG54Tv8ZfwkimDWvCfSJXNTf-x9XlgSzsOxdh0doJw=s576", + width: 576, + height: 576, + ), + Thumbnail( + url: "https://yt3.googleusercontent.com/l9yiCtp9NGGXn397Jybr_7_4I8TvjKpp9XG54Tv8ZfwkimDWvCfSJXNTf-x9XlgSzsOxdh0doJw=s1200", + width: 1200, + height: 1200, + ), + ], + channel: Some(ChannelId( + id: "UCEYgc2eKzQXQ9OGCuT4JVPQ", + name: "Redlist - International Playlists", + )), + track_count: Some(100), + from_ytm: false, + ), + MusicPlaylistItem( + id: "PL5ITQ2Yq_HLpidRR3wAio-YRBnG7-FeLd", + name: "Radio Swiss Pop", + thumbnail: [ + Thumbnail( + url: "https://i.ytimg.com/vi/MBH-QbN5BcQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nIIqml8U-wrYWs5ZG8jbBPxOahQA", + width: 400, + height: 225, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/MBH-QbN5BcQ/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3ksKy8FmdwpeWF52rPYk16zPYN4pg", + width: 800, + height: 450, + ), + Thumbnail( + url: "https://i.ytimg.com/vi/MBH-QbN5BcQ/hq720.jpg?sqp=-oaymwEXCNUGEOADIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lfMhiN7qWWYCkvyhloPNJsjK6p5g", + width: 853, + height: 480, + ), + ], + channel: Some(ChannelId( + id: "UCjD0UddJFWadpaTrBJPOVGw", + name: "Raphaël Weissreiner", + )), + track_count: Some(176), + from_ytm: false, + ), + MusicPlaylistItem( + id: "PLX6L4t7t6ZanfCJ1wBxRdGZ_mk9ygmKqo", + name: "Deutsch Pop Hits NEU 2022", + thumbnail: [ + Thumbnail( + url: "https://yt3.ggpht.com/AhXFgxhzyIQumeUtEasnjczPfMXZLWu5gBNlWW_z-Evb0sbcJLPHTMuKzy0cbsBHqDhDSNA7Lg=s192", + width: 192, + height: 192, + ), + Thumbnail( + url: "https://yt3.ggpht.com/AhXFgxhzyIQumeUtEasnjczPfMXZLWu5gBNlWW_z-Evb0sbcJLPHTMuKzy0cbsBHqDhDSNA7Lg=s576", + width: 576, + height: 576, + ), + Thumbnail( + url: "https://yt3.ggpht.com/AhXFgxhzyIQumeUtEasnjczPfMXZLWu5gBNlWW_z-Evb0sbcJLPHTMuKzy0cbsBHqDhDSNA7Lg=s1200", + width: 1200, + height: 1200, + ), + ], + channel: Some(ChannelId( + id: "UCesP91XKnuZVd6OJN06hokg", + name: "Startup Records", + )), + track_count: Some(171), + from_ytm: false, + ), + ], + corrected_query: None, + order: [ + Track, + Album, + Playlist, + Artist, + ], +) diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_typo.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_main_typo.snap similarity index 100% rename from src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_typo.snap rename to src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_main_typo.snap diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_suggestion_default.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_suggestion_default.snap new file mode 100644 index 0000000..45f3060 --- /dev/null +++ b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_suggestion_default.snap @@ -0,0 +1,13 @@ +--- +source: src/client/music_search.rs +expression: map_res.c +--- +[ + "taylor swift", + "tkkg", + "techno", + "t low", + "the weeknd", + "tiktok songs", + "toten hosen", +] diff --git a/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_suggestion_empty.snap b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_suggestion_empty.snap new file mode 100644 index 0000000..f2e8d09 --- /dev/null +++ b/src/client/snapshots/rustypipe__client__music_search__tests__map_music_search_suggestion_empty.snap @@ -0,0 +1,5 @@ +--- +source: src/client/music_search.rs +expression: map_res.c +--- +[] diff --git a/testfiles/music_search/default.json b/testfiles/music_search/main_default.json similarity index 100% rename from testfiles/music_search/default.json rename to testfiles/music_search/main_default.json diff --git a/testfiles/music_search/main_radio.json b/testfiles/music_search/main_radio.json new file mode 100644 index 0000000..c897d5a --- /dev/null +++ b/testfiles/music_search/main_radio.json @@ -0,0 +1,7983 @@ +{ + "responseContext": { + "visitorData": "CgtwX0MweWxQUlJNSSiumv-bBg%3D%3D", + "serviceTrackingParams": [ + { + "service": "CSI", + "params": [ + { + "key": "c", + "value": "WEB_REMIX" + }, + { + "key": "cver", + "value": "1.20221121.01.00" + }, + { + "key": "yt_li", + "value": "0" + }, + { + "key": "GetSearch_rid", + "value": "0x5f3b12c04d67d008" + } + ] + }, + { + "service": "GFEEDBACK", + "params": [ + { + "key": "logged_in", + "value": "0" + }, + { + "key": "e", + "value": "1714252,23804281,23826897,23882503,23918597,23934970,23946420,23966208,23983296,23998056,24001373,24002022,24002025,24004644,24007246,24034168,24036947,24077241,24080738,24120820,24135310,24140247,24161116,24162920,24164186,24169501,24181174,24186126,24187043,24187377,24191629,24197450,24199724,24200839,24209349,24211178,24217535,24219713,24224266,24228638,24241378,24248092,24255543,24255545,24262346,24262734,24263796,24267564,24268142,24279196,24283426,24283493,24287327,24288045,24290971,24292955,24293803,24299747,24390674,24391018,24391541,24399050,24401290,24401557,24402891,24403572,24406605,24407200,24407446,24407665,24409123,24409401,24410853,24412897,24413818,24414162,24415198,24415864,24415866,24416327,24416651,24417237,24420756,24421162,24590921,39322504,39322574" + } + ] + }, + { + "service": "ECATCHER", + "params": [ + { + "key": "client.version", + "value": "1.20000101" + }, + { + "key": "client.name", + "value": "WEB_REMIX" + }, + { + "key": "client.fexp", + "value": "24228638,23934970,24390674,24416327,24391018,39322574,24590921,24401290,24407446,39322504,24224266,24401557,24002022,24410853,24211178,24279196,24415864,24399050,24417237,24169501,24191629,24186126,24391541,24162920,24241378,24255545,24288045,23826897,24187377,24036947,24403572,24002025,24415866,24262346,24217535,23882503,24248092,24187043,24409401,24421162,24407200,1714252,24199724,24402891,24209349,24004644,24283493,24409123,24293803,23983296,24415198,23998056,24283426,24414162,24413818,23946420,24255543,24135310,24406605,23918597,24007246,24219713,24263796,24287327,24080738,24267564,24164186,24140247,24420756,24262734,24412897,24268142,24416651,24197450,24120820,24299747,23804281,24034168,24181174,24200839,23966208,24001373,24077241,24292955,24161116,24290971,24407665" + } + ] + } + ], + "maxAgeSeconds": 120 + }, + "contents": { + "tabbedSearchResultsRenderer": { + "tabs": [ + { + "tabRenderer": { + "title": "yt music", + "selected": true, + "content": { + "sectionListRenderer": { + "contents": [ + { + "itemSectionRenderer": { + "contents": [ + { + "messageRenderer": { + "trackingParams": "CI8CEJY7GAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "button": { + "buttonRenderer": { + "style": "STYLE_TEXT", + "isDisabled": false, + "text": { + "simpleText": "About these results" + }, + "icon": { + "iconType": "INFO_OUTLINE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CJACEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "urlEndpoint": { + "url": "https://www.youtube.com/howyoutubeworks/product-features/search/", + "target": "TARGET_NEW_WINDOW" + } + }, + "trackingParams": "CJACEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "iconPosition": "BUTTON_ICON_POSITION_TYPE_RIGHT_OF_TEXT" + } + }, + "style": { + "value": "RENDER_STYLE_PANEL" + } + } + } + ], + "trackingParams": "CI4CELsvGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "musicShelfRenderer": { + "title": { + "runs": [ + { + "text": "Top result" + } + ] + }, + "contents": [ + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CIUCEIVoGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://www.gstatic.com/youtube/media/ytm/images/pbg/query-mix-list@400.png?sqp=CKHur9UF-oaymwEGCMABEMAB&rs=ALLJMcK2aUUgkYsjUpwave-jKk1p-sax1g", + "width": 192, + "height": 192 + }, + { + "url": "https://www.gstatic.com/youtube/media/ytm/images/pbg/query-mix-list@400.png", + "width": 400, + "height": 400 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CI0CEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "trackingParams": "CIwCEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF" + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Pop radio" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Station" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CIYCEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "RDQM1xqCV6EdPUw", + "params": "wAEB8gECGAE%3D" + } + }, + "trackingParams": "CIYCEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CIsCEJvzBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLRDQM1xqCV6EdPUw", + "params": "wAEB" + } + }, + "trackingParams": "CIsCEJvzBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CIkCEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "RDQM1xqCV6EdPUw" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CIkCEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist will play next" + } + ] + }, + "trackingParams": "CIoCEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CIkCEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CIcCEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "RDQM1xqCV6EdPUw" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CIcCEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist added to queue" + } + ] + }, + "trackingParams": "CIgCEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CIcCEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "CIYCEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CIUCEIVoGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchEndpoint": { + "videoId": "H0LAiLmSOHs", + "playlistId": "RDQM1xqCV6EdPUw", + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "Gg9SRFFNMXhxQ1Y2RWRQVXc%3D" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + } + ], + "trackingParams": "CIQCEPleGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shelfDivider": { + "musicShelfDividerRenderer": { + "hidden": true + } + } + } + }, + { + "musicShelfRenderer": { + "title": { + "runs": [ + { + "text": "Songs" + } + ] + }, + "contents": [ + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CPQBEOFnGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/gwNUEmnlDQimTO_eMcH4Dv-74PK_mcc00xyIk-3tzbW98KkRoD5ZGMhJHBNkZV-ExnTWfa-_ruQbcuM=w60-h60-s-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/gwNUEmnlDQimTO_eMcH4Dv-74PK_mcc00xyIk-3tzbW98KkRoD5ZGMhJHBNkZV-ExnTWfa-_ruQbcuM=w120-h120-s-l90-rj", + "width": 120, + "height": 120 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CIMCEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CIICEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchEndpoint": { + "videoId": "ITdJEc_81h4", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + }, + "trackingParams": "CIICEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Pop (Radio Version) - *NSYNC" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Pop (Radio Version) - *NSYNC" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Pop (Radio Version)", + "navigationEndpoint": { + "clickTrackingParams": "CPQBEOFnGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjGaAQMQ9CQ=", + "watchEndpoint": { + "videoId": "ITdJEc_81h4", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + } + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Song" + }, + { + "text": " • " + }, + { + "text": "*NSYNC", + "navigationEndpoint": { + "clickTrackingParams": "CPQBEOFnGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCm-wsxhI_OOhg4O1TwDJ98A", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "Greatest Hits (Deluxe)", + "navigationEndpoint": { + "clickTrackingParams": "CPQBEOFnGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "MPREb_k2jVJAzQhba", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "2:56" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CIECEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYxmgEDEPQk", + "watchEndpoint": { + "videoId": "ITdJEc_81h4", + "playlistId": "RDAMVMITdJEc_81h4", + "params": "wAEB", + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GhFSREFNVk1JVGRKRWNfODFoNA%3D%3D" + } + }, + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + }, + "trackingParams": "CIECEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CP8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "ITdJEc_81h4" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CP8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song will play next" + } + ] + }, + "trackingParams": "CIACEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CP8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CP0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "ITdJEc_81h4" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CP0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song added to queue" + } + ] + }, + "trackingParams": "CP4BEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CP0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add to liked songs" + } + ] + }, + "defaultIcon": { + "iconType": "FAVORITE" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CPsBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Like this song" + } + ] + }, + "content": { + "runs": [ + { + "text": "Improve recommendations and save music after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CPwBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CPwBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove from liked songs" + } + ] + }, + "toggledIcon": { + "iconType": "UNFAVORITE" + }, + "trackingParams": "CPsBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CPkBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CPoBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CPoBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "trackingParams": "CPkBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Go to album" + } + ] + }, + "icon": { + "iconType": "ALBUM" + }, + "navigationEndpoint": { + "clickTrackingParams": "CPgBEI_7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "browseEndpoint": { + "browseId": "MPREb_k2jVJAzQhba", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + }, + "trackingParams": "CPgBEI_7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Go to artist" + } + ] + }, + "icon": { + "iconType": "ARTIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CPcBEJD7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "browseEndpoint": { + "browseId": "UCm-wsxhI_OOhg4O1TwDJ98A", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + }, + "trackingParams": "CPcBEJD7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CPYBEJH7BRgHIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "shareEntityEndpoint": { + "serializedShareEntity": "CgtJVGRKRWNfODFoNA%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CPYBEJH7BRgHIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "CPUBEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "playlistItemData": { + "videoId": "ITdJEc_81h4" + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "COQBEOFnGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/OD-BVa7OhsLAQ-bV01DBNiBdzVecGxQ_kBvO7bsVJa6HBg9bVWdF7Izkmgs0E86RLRbKjYxVZTc4__o=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/OD-BVa7OhsLAQ-bV01DBNiBdzVecGxQ_kBvO7bsVJa6HBg9bVWdF7Izkmgs0E86RLRbKjYxVZTc4__o=w120-h120-l90-rj", + "width": 120, + "height": 120 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CPMBEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CPIBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchEndpoint": { + "videoId": "VHLPvrlclmQ", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + }, + "trackingParams": "CPIBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Pop im Radio - Michy Reincke" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Pop im Radio - Michy Reincke" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Pop im Radio", + "navigationEndpoint": { + "clickTrackingParams": "COQBEOFnGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjGaAQMQ9CQ=", + "watchEndpoint": { + "videoId": "VHLPvrlclmQ", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + } + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Song" + }, + { + "text": " • " + }, + { + "text": "Michy Reincke", + "navigationEndpoint": { + "clickTrackingParams": "COQBEOFnGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCTMksUr7ijdCL7U5wqjKcdA", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "Das böse Glück (Bonus Edition)", + "navigationEndpoint": { + "clickTrackingParams": "COQBEOFnGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "MPREb_2AXSzG1uDh5", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "3:44" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CPEBEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYxmgEDEPQk", + "watchEndpoint": { + "videoId": "VHLPvrlclmQ", + "playlistId": "RDAMVMVHLPvrlclmQ", + "params": "wAEB", + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GhFSREFNVk1WSExQdnJsY2xtUQ%3D%3D" + } + }, + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + }, + "trackingParams": "CPEBEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CO8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "VHLPvrlclmQ" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CO8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song will play next" + } + ] + }, + "trackingParams": "CPABEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CO8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CO0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "VHLPvrlclmQ" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CO0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song added to queue" + } + ] + }, + "trackingParams": "CO4BEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CO0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add to liked songs" + } + ] + }, + "defaultIcon": { + "iconType": "FAVORITE" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "COsBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Like this song" + } + ] + }, + "content": { + "runs": [ + { + "text": "Improve recommendations and save music after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "COwBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "COwBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove from liked songs" + } + ] + }, + "toggledIcon": { + "iconType": "UNFAVORITE" + }, + "trackingParams": "COsBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "COkBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "COoBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "COoBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "trackingParams": "COkBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Go to album" + } + ] + }, + "icon": { + "iconType": "ALBUM" + }, + "navigationEndpoint": { + "clickTrackingParams": "COgBEI_7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "browseEndpoint": { + "browseId": "MPREb_2AXSzG1uDh5", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + }, + "trackingParams": "COgBEI_7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Go to artist" + } + ] + }, + "icon": { + "iconType": "ARTIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "COcBEJD7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "browseEndpoint": { + "browseId": "UCTMksUr7ijdCL7U5wqjKcdA", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + }, + "trackingParams": "COcBEJD7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "COYBEJH7BRgHIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "shareEntityEndpoint": { + "serializedShareEntity": "CgtWSExQdnJsY2xtUQ%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "COYBEJH7BRgHIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "COUBEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "playlistItemData": { + "videoId": "VHLPvrlclmQ" + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CNQBEOFnGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/Xdwe3OXj4qkOv5P_FCNWqSf3cx1VnAfAtB6dD8g1v04ReAcxHm6KAtA08CzPSnbKph-9DwrIMGcRtwFx=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/Xdwe3OXj4qkOv5P_FCNWqSf3cx1VnAfAtB6dD8g1v04ReAcxHm6KAtA08CzPSnbKph-9DwrIMGcRtwFx=w120-h120-l90-rj", + "width": 120, + "height": 120 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "COMBEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "COIBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchEndpoint": { + "videoId": "R9TPed_ohKM", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + }, + "trackingParams": "COIBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play POP! - NAYEON" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause POP! - NAYEON" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "POP!", + "navigationEndpoint": { + "clickTrackingParams": "CNQBEOFnGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjGaAQMQ9CQ=", + "watchEndpoint": { + "videoId": "R9TPed_ohKM", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + } + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Song" + }, + { + "text": " • " + }, + { + "text": "NAYEON", + "navigationEndpoint": { + "clickTrackingParams": "CNQBEOFnGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCBznuF9zIIbRS9Y1Yu4yOhg", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "IM NAYEON", + "navigationEndpoint": { + "clickTrackingParams": "CNQBEOFnGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "MPREb_pBK5MaK36C5", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "2:49" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "COEBEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYxmgEDEPQk", + "watchEndpoint": { + "videoId": "R9TPed_ohKM", + "playlistId": "RDAMVMR9TPed_ohKM", + "params": "wAEB", + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GhFSREFNVk1SOVRQZWRfb2hLTQ%3D%3D" + } + }, + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_ATV" + } + } + } + }, + "trackingParams": "COEBEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CN8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "R9TPed_ohKM" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CN8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song will play next" + } + ] + }, + "trackingParams": "COABEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CN8BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CN0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "R9TPed_ohKM" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CN0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song added to queue" + } + ] + }, + "trackingParams": "CN4BEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CN0BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add to liked songs" + } + ] + }, + "defaultIcon": { + "iconType": "FAVORITE" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CNsBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Like this song" + } + ] + }, + "content": { + "runs": [ + { + "text": "Improve recommendations and save music after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CNwBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CNwBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove from liked songs" + } + ] + }, + "toggledIcon": { + "iconType": "UNFAVORITE" + }, + "trackingParams": "CNsBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CNkBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CNoBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CNoBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "trackingParams": "CNkBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Go to album" + } + ] + }, + "icon": { + "iconType": "ALBUM" + }, + "navigationEndpoint": { + "clickTrackingParams": "CNgBEI_7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "browseEndpoint": { + "browseId": "MPREb_pBK5MaK36C5", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + }, + "trackingParams": "CNgBEI_7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Go to artist" + } + ] + }, + "icon": { + "iconType": "ARTIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CNcBEJD7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "browseEndpoint": { + "browseId": "UCBznuF9zIIbRS9Y1Yu4yOhg", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + }, + "trackingParams": "CNcBEJD7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CNYBEJH7BRgHIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "shareEntityEndpoint": { + "serializedShareEntity": "CgtSOVRQZWRfb2hLTQ%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CNYBEJH7BRgHIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "CNUBEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "playlistItemData": { + "videoId": "R9TPed_ohKM" + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + } + ], + "trackingParams": "CNMBEPleGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "bottomText": { + "runs": [ + { + "text": "Show all" + } + ] + }, + "bottomEndpoint": { + "clickTrackingParams": "CNMBEPleGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "searchEndpoint": { + "query": "pop radio", + "params": "EgWKAQIIAWoMEAMQBBAJEA4QChAF" + } + }, + "shelfDivider": { + "musicShelfDividerRenderer": { + "hidden": true + } + } + } + }, + { + "musicShelfRenderer": { + "title": { + "runs": [ + { + "text": "Videos" + } + ] + }, + "contents": [ + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CMUBENNoGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://i.ytimg.com/vi/Ej1nxBxFSKc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nyY9c1BovrvjSAa2rjVSmcTZZcNA", + "width": 400, + "height": 225 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CNIBEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CNEBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchEndpoint": { + "videoId": "Ej1nxBxFSKc", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + }, + "trackingParams": "CNEBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Non-Stop-Pop FM (Hosted by Cara Delevingne) [Grand Theft Auto V] | Pop, R&B, Dance-pop Music Mix - Listen To This" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Non-Stop-Pop FM (Hosted by Cara Delevingne) [Grand Theft Auto V] | Pop, R&B, Dance-pop Music Mix - Listen To This" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Non-Stop-Pop FM (Hosted by Cara Delevingne) [Grand Theft Auto V] | Pop, R&B, Dance-pop Music Mix", + "navigationEndpoint": { + "clickTrackingParams": "CMUBENNoGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjGaAQMQ9CQ=", + "watchEndpoint": { + "videoId": "Ej1nxBxFSKc", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + } + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Video" + }, + { + "text": " • " + }, + { + "text": "Listen To This", + "navigationEndpoint": { + "clickTrackingParams": "CMUBENNoGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UC6ZVjGqRf7elKAcYTXCaIsw", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_USER_CHANNEL" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "2.4M views" + }, + { + "text": " • " + }, + { + "text": "2:25:52" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CNABEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYxmgEDEPQk", + "watchEndpoint": { + "videoId": "Ej1nxBxFSKc", + "playlistId": "RDAMVMEj1nxBxFSKc", + "params": "wAEB", + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GhFSREFNVk1FajFueEJ4RlNLYw%3D%3D" + } + }, + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + }, + "trackingParams": "CNABEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CM4BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "Ej1nxBxFSKc" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CM4BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song will play next" + } + ] + }, + "trackingParams": "CM8BEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CM4BEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CMwBEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "Ej1nxBxFSKc" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CMwBEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song added to queue" + } + ] + }, + "trackingParams": "CM0BEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CMwBEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add to liked songs" + } + ] + }, + "defaultIcon": { + "iconType": "FAVORITE" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CMoBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Like this song" + } + ] + }, + "content": { + "runs": [ + { + "text": "Improve recommendations and save music after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CMsBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CMsBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove from liked songs" + } + ] + }, + "toggledIcon": { + "iconType": "UNFAVORITE" + }, + "trackingParams": "CMoBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CMgBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CMkBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CMkBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "trackingParams": "CMgBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CMcBEJH7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "shareEntityEndpoint": { + "serializedShareEntity": "CgtFajFueEJ4RlNLYw%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CMcBEJH7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "CMYBEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "playlistItemData": { + "videoId": "Ej1nxBxFSKc" + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CLcBENNoGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://i.ytimg.com/vi/26OrUhkRa3c/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mtPP2bCRAx6JAsJ3NGPbFrs06n6w", + "width": 400, + "height": 225 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CMQBEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CMMBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchEndpoint": { + "videoId": "26OrUhkRa3c", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + }, + "trackingParams": "CMMBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Top Hits 2020 Video Mix (CLEAN) | Hip Hop 2020 - (POP HITS 2020, TOP 40 HITS, BEST POP HITS,TOP 40) - Top Music" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Top Hits 2020 Video Mix (CLEAN) | Hip Hop 2020 - (POP HITS 2020, TOP 40 HITS, BEST POP HITS,TOP 40) - Top Music" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Top Hits 2020 Video Mix (CLEAN) | Hip Hop 2020 - (POP HITS 2020, TOP 40 HITS, BEST POP HITS,TOP 40)", + "navigationEndpoint": { + "clickTrackingParams": "CLcBENNoGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjGaAQMQ9CQ=", + "watchEndpoint": { + "videoId": "26OrUhkRa3c", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + } + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Video" + }, + { + "text": " • " + }, + { + "text": "Top Music", + "navigationEndpoint": { + "clickTrackingParams": "CLcBENNoGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCM7nREGFBumYELglbtUL8FA", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_USER_CHANNEL" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "2.1M views" + }, + { + "text": " • " + }, + { + "text": "2:46:52" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CMIBEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYxmgEDEPQk", + "watchEndpoint": { + "videoId": "26OrUhkRa3c", + "playlistId": "RDAMVM26OrUhkRa3c", + "params": "wAEB", + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GhFSREFNVk0yNk9yVWhrUmEzYw%3D%3D" + } + }, + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + }, + "trackingParams": "CMIBEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CMABEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "26OrUhkRa3c" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CMABEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song will play next" + } + ] + }, + "trackingParams": "CMEBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CMABEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CL4BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "26OrUhkRa3c" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CL4BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song added to queue" + } + ] + }, + "trackingParams": "CL8BEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CL4BEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add to liked songs" + } + ] + }, + "defaultIcon": { + "iconType": "FAVORITE" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CLwBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Like this song" + } + ] + }, + "content": { + "runs": [ + { + "text": "Improve recommendations and save music after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CL0BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CL0BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove from liked songs" + } + ] + }, + "toggledIcon": { + "iconType": "UNFAVORITE" + }, + "trackingParams": "CLwBEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CLoBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CLsBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CLsBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "trackingParams": "CLoBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CLkBEJH7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "shareEntityEndpoint": { + "serializedShareEntity": "CgsyNk9yVWhrUmEzYw%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CLkBEJH7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "CLgBEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "playlistItemData": { + "videoId": "26OrUhkRa3c" + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CKkBENNoGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://i.ytimg.com/vi/Idk-oFqn3kM/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3lm-ElqoCByIARJE5_7xs7jLv9AHA", + "width": 320, + "height": 180 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CLYBEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CLUBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchEndpoint": { + "videoId": "Idk-oFqn3kM", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + }, + "trackingParams": "CLUBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play THE BEST CHARTS POP HITS 2021 I THE BEST MUSIC RADIO CHARTS I - SCHLAGER AKTUELL" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause THE BEST CHARTS POP HITS 2021 I THE BEST MUSIC RADIO CHARTS I - SCHLAGER AKTUELL" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "THE BEST CHARTS POP HITS 2021 I THE BEST MUSIC RADIO CHARTS I", + "navigationEndpoint": { + "clickTrackingParams": "CKkBENNoGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjGaAQMQ9CQ=", + "watchEndpoint": { + "videoId": "Idk-oFqn3kM", + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + } + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Video" + }, + { + "text": " • " + }, + { + "text": "SCHLAGER AKTUELL", + "navigationEndpoint": { + "clickTrackingParams": "CKkBENNoGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCOVD3PtbJGiAcp-c6opijoQ", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_USER_CHANNEL" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "67K views" + }, + { + "text": " • " + }, + { + "text": "2:26:35" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CLQBEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYxmgEDEPQk", + "watchEndpoint": { + "videoId": "Idk-oFqn3kM", + "playlistId": "RDAMVMIdk-oFqn3kM", + "params": "wAEB", + "loggingContext": { + "vssLoggingContext": { + "serializedContextData": "GhFSREFNVk1JZGstb0ZxbjNrTQ%3D%3D" + } + }, + "watchEndpointMusicSupportedConfigs": { + "watchEndpointMusicConfig": { + "musicVideoType": "MUSIC_VIDEO_TYPE_UGC" + } + } + } + }, + "trackingParams": "CLQBEJvzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CLIBEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "Idk-oFqn3kM" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CLIBEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song will play next" + } + ] + }, + "trackingParams": "CLMBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CLIBEL7uBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CLABEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "videoId": "Idk-oFqn3kM" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CLABEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Song added to queue" + } + ] + }, + "trackingParams": "CLEBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CLABEPvvBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add to liked songs" + } + ] + }, + "defaultIcon": { + "iconType": "FAVORITE" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CK4BEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Like this song" + } + ] + }, + "content": { + "runs": [ + { + "text": "Improve recommendations and save music after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CK8BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CK8BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove from liked songs" + } + ] + }, + "toggledIcon": { + "iconType": "UNFAVORITE" + }, + "trackingParams": "CK4BEIyfBhgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CKwBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CK0BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CK0BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "trackingParams": "CKwBEMOUBhgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CKsBEJH7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "shareEntityEndpoint": { + "serializedShareEntity": "CgtJZGstb0ZxbjNrTQ%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CKsBEJH7BRgFIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "CKoBEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "playlistItemData": { + "videoId": "Idk-oFqn3kM" + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + } + ], + "trackingParams": "CKgBEPleGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "bottomText": { + "runs": [ + { + "text": "Show all" + } + ] + }, + "bottomEndpoint": { + "clickTrackingParams": "CKgBEPleGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "searchEndpoint": { + "query": "pop radio", + "params": "EgWKAQIQAWoMEAMQBBAJEA4QChAF" + } + }, + "shelfDivider": { + "musicShelfDividerRenderer": { + "hidden": true + } + } + } + }, + { + "musicShelfRenderer": { + "title": { + "runs": [ + { + "text": "Albums" + } + ] + }, + "contents": [ + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CJkBENRoGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/Lh8ESFXrI084BAHjCQTPTAwtMRxDiU3NqfCDNT0IHrG6s8eqPHzPbY5O5SumZaxwjq2g4EEtPIak47Sm=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/Lh8ESFXrI084BAHjCQTPTAwtMRxDiU3NqfCDNT0IHrG6s8eqPHzPbY5O5SumZaxwjq2g4EEtPIak47Sm=w120-h120-l90-rj", + "width": 120, + "height": 120 + }, + { + "url": "https://lh3.googleusercontent.com/Lh8ESFXrI084BAHjCQTPTAwtMRxDiU3NqfCDNT0IHrG6s8eqPHzPbY5O5SumZaxwjq2g4EEtPIak47Sm=w226-h226-l90-rj", + "width": 226, + "height": 226 + }, + { + "url": "https://lh3.googleusercontent.com/Lh8ESFXrI084BAHjCQTPTAwtMRxDiU3NqfCDNT0IHrG6s8eqPHzPbY5O5SumZaxwjq2g4EEtPIak47Sm=w544-h544-l90-rj", + "width": 544, + "height": 544 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CKcBEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CKYBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchPlaylistEndpoint": { + "playlistId": "OLAK5uy_nqt8fz6palYIpRXVfTACFlIbHGRKIyAgo" + } + }, + "trackingParams": "CKYBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Pop Radio" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Pop Radio" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Pop Radio" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Album" + }, + { + "text": " • " + }, + { + "text": "Various Artists" + }, + { + "text": " • " + }, + { + "text": "2016" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CKUBEJrzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "OLAK5uy_nqt8fz6palYIpRXVfTACFlIbHGRKIyAgo", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CKUBEJrzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CKQBEJvzBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLOLAK5uy_nqt8fz6palYIpRXVfTACFlIbHGRKIyAgo", + "params": "wAEB" + } + }, + "trackingParams": "CKQBEJvzBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CKIBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "OLAK5uy_nqt8fz6palYIpRXVfTACFlIbHGRKIyAgo" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CKIBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Album will play next" + } + ] + }, + "trackingParams": "CKMBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CKIBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CKABEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "OLAK5uy_nqt8fz6palYIpRXVfTACFlIbHGRKIyAgo" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CKABEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Album added to queue" + } + ] + }, + "trackingParams": "CKEBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CKABEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add album to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CJ4BEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CJ8BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CJ8BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove album from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CJ4BEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "OLAK5uy_nqt8fz6palYIpRXVfTACFlIbHGRKIyAgo" + } + } + }, + "trackingParams": "CJ4BEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CJwBEMOUBhgFIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CJ0BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CJ0BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "trackingParams": "CJwBEMOUBhgFIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CJsBEJH7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "shareEntityEndpoint": { + "serializedShareEntity": "EilPTEFLNXV5X25xdDhmejZwYWxZSXBSWFZmVEFDRmxJYkhHUktJeUFnbw%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CJsBEJH7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "CJoBEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CJkBENRoGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "MPREb_CYbQPbuAWrt", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CIoBENRoGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/f0kOUZ3WurOC8qwxQ0JHtWhrmOGzwANS0x23Yw7iK9OdIvct4kMjJwNHla99_AI96-JBHwcq4Afs6rI=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/f0kOUZ3WurOC8qwxQ0JHtWhrmOGzwANS0x23Yw7iK9OdIvct4kMjJwNHla99_AI96-JBHwcq4Afs6rI=w120-h120-l90-rj", + "width": 120, + "height": 120 + }, + { + "url": "https://lh3.googleusercontent.com/f0kOUZ3WurOC8qwxQ0JHtWhrmOGzwANS0x23Yw7iK9OdIvct4kMjJwNHla99_AI96-JBHwcq4Afs6rI=w226-h226-l90-rj", + "width": 226, + "height": 226 + }, + { + "url": "https://lh3.googleusercontent.com/f0kOUZ3WurOC8qwxQ0JHtWhrmOGzwANS0x23Yw7iK9OdIvct4kMjJwNHla99_AI96-JBHwcq4Afs6rI=w544-h544-l90-rj", + "width": 544, + "height": 544 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CJgBEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CJcBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchPlaylistEndpoint": { + "playlistId": "OLAK5uy_n9dIWqpmpLmQfZgSpiqIxWTSnaNwBzPM4" + } + }, + "trackingParams": "CJcBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Pop Radio" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Pop Radio" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Pop Radio" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Album" + }, + { + "text": " • " + }, + { + "text": "Various Artists" + }, + { + "text": " • " + }, + { + "text": "2022" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CJYBEJrzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "OLAK5uy_n9dIWqpmpLmQfZgSpiqIxWTSnaNwBzPM4", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CJYBEJrzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CJUBEJvzBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLOLAK5uy_n9dIWqpmpLmQfZgSpiqIxWTSnaNwBzPM4", + "params": "wAEB" + } + }, + "trackingParams": "CJUBEJvzBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CJMBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "OLAK5uy_n9dIWqpmpLmQfZgSpiqIxWTSnaNwBzPM4" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CJMBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Album will play next" + } + ] + }, + "trackingParams": "CJQBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CJMBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CJEBEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "OLAK5uy_n9dIWqpmpLmQfZgSpiqIxWTSnaNwBzPM4" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CJEBEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Album added to queue" + } + ] + }, + "trackingParams": "CJIBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CJEBEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add album to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CI8BEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CJABEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CJABEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove album from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CI8BEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "OLAK5uy_n9dIWqpmpLmQfZgSpiqIxWTSnaNwBzPM4" + } + } + }, + "trackingParams": "CI8BEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CI0BEMOUBhgFIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CI4BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CI4BEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "trackingParams": "CI0BEMOUBhgFIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CIwBEJH7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "shareEntityEndpoint": { + "serializedShareEntity": "EilPTEFLNXV5X245ZElXcXBtcExtUWZaZ1NwaXFJeFdUU25hTndCelBNNA%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CIwBEJH7BRgGIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + ], + "trackingParams": "CIsBEKc7IhMIs-blxM3H-wIVXUN6BR0WrgYx", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CIoBENRoGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "MPREb_Cmf1lWfv0dV", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CHoQ1GgYAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/AFWgHYm5Q7LdNo83TGXQWVApLntgB76Z8Vdf5wBMCxVhzwzcInS0uo2S9E_c6d9brP9MXjkAZW0X4EQ=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/AFWgHYm5Q7LdNo83TGXQWVApLntgB76Z8Vdf5wBMCxVhzwzcInS0uo2S9E_c6d9brP9MXjkAZW0X4EQ=w120-h120-l90-rj", + "width": 120, + "height": 120 + }, + { + "url": "https://lh3.googleusercontent.com/AFWgHYm5Q7LdNo83TGXQWVApLntgB76Z8Vdf5wBMCxVhzwzcInS0uo2S9E_c6d9brP9MXjkAZW0X4EQ=w226-h226-l90-rj", + "width": 226, + "height": 226 + }, + { + "url": "https://lh3.googleusercontent.com/AFWgHYm5Q7LdNo83TGXQWVApLntgB76Z8Vdf5wBMCxVhzwzcInS0uo2S9E_c6d9brP9MXjkAZW0X4EQ=w544-h544-l90-rj", + "width": 544, + "height": 544 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CIkBEIS_AiITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CIgBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "watchPlaylistEndpoint": { + "playlistId": "OLAK5uy_kAGWSrRmA76WH-Nca1kzbsyApIhJUqtjA" + } + }, + "trackingParams": "CIgBEMjeAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Pop Radio" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Pop Radio" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Pop Radio" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Album" + }, + { + "text": " • " + }, + { + "text": "Strange Radio", + "navigationEndpoint": { + "clickTrackingParams": "CHoQ1GgYAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "browseEndpoint": { + "browseId": "UCG7LUZBrK6GcfTwowTeTiOQ", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "2002" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CIcBEJrzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "OLAK5uy_kAGWSrRmA76WH-Nca1kzbsyApIhJUqtjA", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CIcBEJrzBRgAIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CIYBEJvzBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLOLAK5uy_kAGWSrRmA76WH-Nca1kzbsyApIhJUqtjA", + "params": "wAEB" + } + }, + "trackingParams": "CIYBEJvzBRgBIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CIQBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "OLAK5uy_kAGWSrRmA76WH-Nca1kzbsyApIhJUqtjA" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CIQBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Album will play next" + } + ] + }, + "trackingParams": "CIUBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CIQBEL7uBRgCIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CIIBEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "OLAK5uy_kAGWSrRmA76WH-Nca1kzbsyApIhJUqtjA" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CIIBEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Album added to queue" + } + ] + }, + "trackingParams": "CIMBEMrHAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==" + } + } + } + } + ] + } + }, + "trackingParams": "CIIBEPvvBRgDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add album to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CIABEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CIEBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CIEBEPBbIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove album from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CIABEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "OLAK5uy_kAGWSrRmA76WH-Nca1kzbsyApIhJUqtjA" + } + } + }, + "trackingParams": "CIABEIT_BRgEIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CH4Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CH8Q8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CH8Q8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "trackingParams": "CH4Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Go to artist" + } + ] + }, + "icon": { + "iconType": "ARTIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CH0QkPsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCG7LUZBrK6GcfTwowTeTiOQ", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + }, + "trackingParams": "CH0QkPsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CHwQkfsFGAciEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "EilPTEFLNXV5X2tBR1dTclJtQTc2V0gtTmNhMWt6YnN5QXBJaEpVcXRqQQ%3D%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CHwQkfsFGAciEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CHsQpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CHoQ1GgYAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "browseEndpoint": { + "browseId": "MPREb_Ic1ZUsaeuRv", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ALBUM" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + } + ], + "trackingParams": "CHkQ-V4YBCITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "bottomText": { + "runs": [ + { + "text": "Show all" + } + ] + }, + "bottomEndpoint": { + "clickTrackingParams": "CHkQ-V4YBCITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgWKAQIYAWoMEAMQBBAJEA4QChAF" + } + }, + "shelfDivider": { + "musicShelfDividerRenderer": { + "hidden": true + } + } + } + }, + { + "musicShelfRenderer": { + "title": { + "runs": [ + { + "text": "Featured playlists" + } + ] + }, + "contents": [ + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CGoQ1Z8HGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/xhb5UI1wFvzj6g6llLK2GBBxL1M_ozXRIMXDOIcMyeVY3yG58_qnqRbfbpqlI-C2wUaGU9_re5yC7Tzg=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/xhb5UI1wFvzj6g6llLK2GBBxL1M_ozXRIMXDOIcMyeVY3yG58_qnqRbfbpqlI-C2wUaGU9_re5yC7Tzg=w120-h120-l90-rj", + "width": 120, + "height": 120 + }, + { + "url": "https://lh3.googleusercontent.com/xhb5UI1wFvzj6g6llLK2GBBxL1M_ozXRIMXDOIcMyeVY3yG58_qnqRbfbpqlI-C2wUaGU9_re5yC7Tzg=w226-h226-l90-rj", + "width": 226, + "height": 226 + }, + { + "url": "https://lh3.googleusercontent.com/xhb5UI1wFvzj6g6llLK2GBBxL1M_ozXRIMXDOIcMyeVY3yG58_qnqRbfbpqlI-C2wUaGU9_re5yC7Tzg=w544-h544-l90-rj", + "width": 544, + "height": 544 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CHgQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CHcQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "RDCLAK5uy_l8kJfTElp2zFMop7IboOXetbbKU3a9VeQ", + "params": "wAEB" + } + }, + "trackingParams": "CHcQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play REST Turkish Rap" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause REST Turkish Rap" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "REST Turkish Rap" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Playlist" + }, + { + "text": " • " + }, + { + "text": "YouTube Music" + }, + { + "text": " • " + }, + { + "text": "50 songs" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CHYQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDCLAK5uy_l8kJfTElp2zFMop7IboOXetbbKU3a9VeQ", + "params": "wAEB8gECGAE%3D" + } + }, + "trackingParams": "CHYQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CHUQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLRDCLAK5uy_l8kJfTElp2zFMop7IboOXetbbKU3a9VeQ", + "params": "wAEB" + } + }, + "trackingParams": "CHUQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CHMQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "RDCLAK5uy_l8kJfTElp2zFMop7IboOXetbbKU3a9VeQ" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CHMQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist will play next" + } + ] + }, + "trackingParams": "CHQQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CHMQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CHEQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "RDCLAK5uy_l8kJfTElp2zFMop7IboOXetbbKU3a9VeQ" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CHEQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist added to queue" + } + ] + }, + "trackingParams": "CHIQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CHEQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add playlist to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CG8QhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CHAQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CHAQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove playlist from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CG8QhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "RDCLAK5uy_l8kJfTElp2zFMop7IboOXetbbKU3a9VeQ" + } + } + }, + "trackingParams": "CG8QhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CG0Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CG4Q8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CG4Q8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "trackingParams": "CG0Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CGwQkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "EitSRENMQUs1dXlfbDhrSmZURWxwMnpGTW9wN0lib09YZXRiYktVM2E5VmVR", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CGwQkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CGsQpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CGoQ1Z8HGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "VLRDCLAK5uy_l8kJfTElp2zFMop7IboOXetbbKU3a9VeQ", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_PLAYLIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CFsQ1Z8HGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/YlPXlLEWrIQjBJ37sKN96YLw8x5nDpPgqGWaUmOft0S0C0arw-MJr3cKvKzWGjLAtDxCTIA_Uobx9sA=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/YlPXlLEWrIQjBJ37sKN96YLw8x5nDpPgqGWaUmOft0S0C0arw-MJr3cKvKzWGjLAtDxCTIA_Uobx9sA=w120-h120-l90-rj", + "width": 120, + "height": 120 + }, + { + "url": "https://lh3.googleusercontent.com/YlPXlLEWrIQjBJ37sKN96YLw8x5nDpPgqGWaUmOft0S0C0arw-MJr3cKvKzWGjLAtDxCTIA_Uobx9sA=w226-h226-l90-rj", + "width": 226, + "height": 226 + }, + { + "url": "https://lh3.googleusercontent.com/YlPXlLEWrIQjBJ37sKN96YLw8x5nDpPgqGWaUmOft0S0C0arw-MJr3cKvKzWGjLAtDxCTIA_Uobx9sA=w544-h544-l90-rj", + "width": 544, + "height": 544 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CGkQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CGgQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "RDCLAK5uy_kLB769E3eFSzgy4fbpu6-1YPLh90b0JAY", + "params": "wAEB" + } + }, + "trackingParams": "CGgQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Pop Hotlist" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Pop Hotlist" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Pop Hotlist" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Playlist" + }, + { + "text": " • " + }, + { + "text": "YouTube Music" + }, + { + "text": " • " + }, + { + "text": "54 songs" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CGcQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDCLAK5uy_kLB769E3eFSzgy4fbpu6-1YPLh90b0JAY", + "params": "wAEB8gECGAE%3D" + } + }, + "trackingParams": "CGcQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CGYQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLRDCLAK5uy_kLB769E3eFSzgy4fbpu6-1YPLh90b0JAY", + "params": "wAEB" + } + }, + "trackingParams": "CGYQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CGQQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "RDCLAK5uy_kLB769E3eFSzgy4fbpu6-1YPLh90b0JAY" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CGQQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist will play next" + } + ] + }, + "trackingParams": "CGUQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CGQQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CGIQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "RDCLAK5uy_kLB769E3eFSzgy4fbpu6-1YPLh90b0JAY" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CGIQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist added to queue" + } + ] + }, + "trackingParams": "CGMQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CGIQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add playlist to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CGAQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CGEQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CGEQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove playlist from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CGAQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "RDCLAK5uy_kLB769E3eFSzgy4fbpu6-1YPLh90b0JAY" + } + } + }, + "trackingParams": "CGAQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CF4Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CF8Q8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CF8Q8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "trackingParams": "CF4Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CF0QkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "EitSRENMQUs1dXlfa0xCNzY5RTNlRlN6Z3k0ZmJwdTYtMVlQTGg5MGIwSkFZ", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CF0QkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CFwQpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CFsQ1Z8HGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "VLRDCLAK5uy_kLB769E3eFSzgy4fbpu6-1YPLh90b0JAY", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_PLAYLIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CEwQ1Z8HGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/Tnkqaz7qIHSzvdyK2UqNQZCcV9fCKfc98a4FoN0iD1cPMn6j_8apdd0ukTdbe2Dlu11EnV1QuYRuGgE=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/Tnkqaz7qIHSzvdyK2UqNQZCcV9fCKfc98a4FoN0iD1cPMn6j_8apdd0ukTdbe2Dlu11EnV1QuYRuGgE=w120-h120-l90-rj", + "width": 120, + "height": 120 + }, + { + "url": "https://lh3.googleusercontent.com/Tnkqaz7qIHSzvdyK2UqNQZCcV9fCKfc98a4FoN0iD1cPMn6j_8apdd0ukTdbe2Dlu11EnV1QuYRuGgE=w226-h226-l90-rj", + "width": 226, + "height": 226 + }, + { + "url": "https://lh3.googleusercontent.com/Tnkqaz7qIHSzvdyK2UqNQZCcV9fCKfc98a4FoN0iD1cPMn6j_8apdd0ukTdbe2Dlu11EnV1QuYRuGgE=w544-h544-l90-rj", + "width": 544, + "height": 544 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CFoQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CFkQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "RDCLAK5uy_mCvOm3kQy1RTBwDOGYkNhtHwMO89ffquk", + "params": "wAEB" + } + }, + "trackingParams": "CFkQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Crème French Pop" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Crème French Pop" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Crème French Pop" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Playlist" + }, + { + "text": " • " + }, + { + "text": "YouTube Music" + }, + { + "text": " • " + }, + { + "text": "50 songs" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CFgQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDCLAK5uy_mCvOm3kQy1RTBwDOGYkNhtHwMO89ffquk", + "params": "wAEB8gECGAE%3D" + } + }, + "trackingParams": "CFgQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CFcQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLRDCLAK5uy_mCvOm3kQy1RTBwDOGYkNhtHwMO89ffquk", + "params": "wAEB" + } + }, + "trackingParams": "CFcQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CFUQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "RDCLAK5uy_mCvOm3kQy1RTBwDOGYkNhtHwMO89ffquk" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CFUQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist will play next" + } + ] + }, + "trackingParams": "CFYQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CFUQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CFMQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "RDCLAK5uy_mCvOm3kQy1RTBwDOGYkNhtHwMO89ffquk" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CFMQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist added to queue" + } + ] + }, + "trackingParams": "CFQQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CFMQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add playlist to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CFEQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CFIQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CFIQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove playlist from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CFEQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "RDCLAK5uy_mCvOm3kQy1RTBwDOGYkNhtHwMO89ffquk" + } + } + }, + "trackingParams": "CFEQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CE8Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CFAQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CFAQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "trackingParams": "CE8Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CE4QkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "EitSRENMQUs1dXlfbUN2T20za1F5MVJUQndET0dZa05odEh3TU84OWZmcXVr", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CE4QkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CE0QpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CEwQ1Z8HGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "VLRDCLAK5uy_mCvOm3kQy1RTBwDOGYkNhtHwMO89ffquk", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_PLAYLIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + } + ], + "trackingParams": "CEsQ-V4YBSITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "bottomText": { + "runs": [ + { + "text": "Show all" + } + ] + }, + "bottomEndpoint": { + "clickTrackingParams": "CEsQ-V4YBSITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgeKAQQoADgBagwQAxAEEAkQDhAKEAU%3D" + } + }, + "shelfDivider": { + "musicShelfDividerRenderer": { + "hidden": true + } + } + } + }, + { + "musicShelfRenderer": { + "title": { + "runs": [ + { + "text": "Community playlists" + } + ] + }, + "contents": [ + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CDwQ1p8HGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://yt3.googleusercontent.com/l9yiCtp9NGGXn397Jybr_7_4I8TvjKpp9XG54Tv8ZfwkimDWvCfSJXNTf-x9XlgSzsOxdh0doJw=s192", + "width": 192, + "height": 192 + }, + { + "url": "https://yt3.googleusercontent.com/l9yiCtp9NGGXn397Jybr_7_4I8TvjKpp9XG54Tv8ZfwkimDWvCfSJXNTf-x9XlgSzsOxdh0doJw=s576", + "width": 576, + "height": 576 + }, + { + "url": "https://yt3.googleusercontent.com/l9yiCtp9NGGXn397Jybr_7_4I8TvjKpp9XG54Tv8ZfwkimDWvCfSJXNTf-x9XlgSzsOxdh0doJw=s1200", + "width": 1200, + "height": 1200 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CEoQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CEkQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "PL47aILYuQXEKiHdqMfNCHat1Gck3XQrrK", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CEkQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Today's Pop Hits Playlist 2022 ♫ Best Radio Hits 2022" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Today's Pop Hits Playlist 2022 ♫ Best Radio Hits 2022" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Today's Pop Hits Playlist 2022 ♫ Best Radio Hits 2022" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Playlist" + }, + { + "text": " • " + }, + { + "text": "Redlist - International Playlists", + "navigationEndpoint": { + "clickTrackingParams": "CDwQ1p8HGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCEYgc2eKzQXQ9OGCuT4JVPQ", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_USER_CHANNEL" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "100 songs" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CEgQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "PL47aILYuQXEKiHdqMfNCHat1Gck3XQrrK", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CEgQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CEcQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLPL47aILYuQXEKiHdqMfNCHat1Gck3XQrrK", + "params": "wAEB" + } + }, + "trackingParams": "CEcQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CEUQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "PL47aILYuQXEKiHdqMfNCHat1Gck3XQrrK" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CEUQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist will play next" + } + ] + }, + "trackingParams": "CEYQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CEUQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CEMQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "PL47aILYuQXEKiHdqMfNCHat1Gck3XQrrK" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CEMQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist added to queue" + } + ] + }, + "trackingParams": "CEQQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CEMQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add playlist to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CEEQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CEIQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CEIQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove playlist from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CEEQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "PL47aILYuQXEKiHdqMfNCHat1Gck3XQrrK" + } + } + }, + "trackingParams": "CEEQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CD8Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CEAQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CEAQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "trackingParams": "CD8Qw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CD4QkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "EiJQTDQ3YUlMWXVRWEVLaUhkcU1mTkNIYXQxR2NrM1hRcnJL", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CD4QkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CD0QpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CDwQ1p8HGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "VLPL47aILYuQXEKiHdqMfNCHat1Gck3XQrrK", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_PLAYLIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CC0Q1p8HGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://i.ytimg.com/vi/MBH-QbN5BcQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nIIqml8U-wrYWs5ZG8jbBPxOahQA", + "width": 400, + "height": 225 + }, + { + "url": "https://i.ytimg.com/vi/MBH-QbN5BcQ/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3ksKy8FmdwpeWF52rPYk16zPYN4pg", + "width": 800, + "height": 450 + }, + { + "url": "https://i.ytimg.com/vi/MBH-QbN5BcQ/hq720.jpg?sqp=-oaymwEXCNUGEOADIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lfMhiN7qWWYCkvyhloPNJsjK6p5g", + "width": 853, + "height": 480 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CDsQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CDoQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "PL5ITQ2Yq_HLpidRR3wAio-YRBnG7-FeLd", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CDoQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Radio Swiss Pop" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Radio Swiss Pop" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Radio Swiss Pop" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Playlist" + }, + { + "text": " • " + }, + { + "text": "Raphaël Weissreiner", + "navigationEndpoint": { + "clickTrackingParams": "CC0Q1p8HGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCjD0UddJFWadpaTrBJPOVGw", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_USER_CHANNEL" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "176 songs" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CDkQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "PL5ITQ2Yq_HLpidRR3wAio-YRBnG7-FeLd", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CDkQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CDgQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLPL5ITQ2Yq_HLpidRR3wAio-YRBnG7-FeLd", + "params": "wAEB" + } + }, + "trackingParams": "CDgQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CDYQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "PL5ITQ2Yq_HLpidRR3wAio-YRBnG7-FeLd" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CDYQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist will play next" + } + ] + }, + "trackingParams": "CDcQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CDYQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CDQQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "PL5ITQ2Yq_HLpidRR3wAio-YRBnG7-FeLd" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CDQQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist added to queue" + } + ] + }, + "trackingParams": "CDUQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CDQQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add playlist to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CDIQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CDMQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CDMQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove playlist from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CDIQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "PL5ITQ2Yq_HLpidRR3wAio-YRBnG7-FeLd" + } + } + }, + "trackingParams": "CDIQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CDAQw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CDEQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CDEQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "trackingParams": "CDAQw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CC8QkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "EiJQTDVJVFEyWXFfSExwaWRSUjN3QWlvLVlSQm5HNy1GZUxk", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CC8QkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CC4QpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CC0Q1p8HGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "VLPL5ITQ2Yq_HLpidRR3wAio-YRBnG7-FeLd", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_PLAYLIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CB4Q1p8HGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://yt3.ggpht.com/AhXFgxhzyIQumeUtEasnjczPfMXZLWu5gBNlWW_z-Evb0sbcJLPHTMuKzy0cbsBHqDhDSNA7Lg=s192", + "width": 192, + "height": 192 + }, + { + "url": "https://yt3.ggpht.com/AhXFgxhzyIQumeUtEasnjczPfMXZLWu5gBNlWW_z-Evb0sbcJLPHTMuKzy0cbsBHqDhDSNA7Lg=s576", + "width": 576, + "height": 576 + }, + { + "url": "https://yt3.ggpht.com/AhXFgxhzyIQumeUtEasnjczPfMXZLWu5gBNlWW_z-Evb0sbcJLPHTMuKzy0cbsBHqDhDSNA7Lg=s1200", + "width": 1200, + "height": 1200 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_UNSPECIFIED", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FIT", + "trackingParams": "CCwQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "overlay": { + "musicItemThumbnailOverlayRenderer": { + "background": { + "verticalGradient": { + "gradientLayerColors": [ + "3422552064", + "3422552064" + ] + } + }, + "content": { + "musicPlayButtonRenderer": { + "playNavigationEndpoint": { + "clickTrackingParams": "CCsQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "watchPlaylistEndpoint": { + "playlistId": "PLX6L4t7t6ZanfCJ1wBxRdGZ_mk9ygmKqo", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CCsQyN4CIhMIs-blxM3H-wIVXUN6BR0WrgYx", + "playIcon": { + "iconType": "PLAY_ARROW" + }, + "pauseIcon": { + "iconType": "PAUSE" + }, + "iconColor": 4294967295, + "backgroundColor": 0, + "activeBackgroundColor": 0, + "loadingIndicatorColor": 4294901760, + "playingIcon": { + "iconType": "VOLUME_UP" + }, + "iconLoadingColor": 0, + "activeScaleFactor": 1, + "buttonSize": "MUSIC_PLAY_BUTTON_SIZE_SMALL", + "rippleTarget": "MUSIC_PLAY_BUTTON_RIPPLE_TARGET_SELF", + "accessibilityPlayData": { + "accessibilityData": { + "label": "Play Deutsch Pop Hits NEU 2022" + } + }, + "accessibilityPauseData": { + "accessibilityData": { + "label": "Pause Deutsch Pop Hits NEU 2022" + } + } + } + }, + "contentPosition": "MUSIC_ITEM_THUMBNAIL_OVERLAY_CONTENT_POSITION_CENTERED", + "displayStyle": "MUSIC_ITEM_THUMBNAIL_OVERLAY_DISPLAY_STYLE_PERSISTENT" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Deutsch Pop Hits NEU 2022" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Playlist" + }, + { + "text": " • " + }, + { + "text": "Startup Records", + "navigationEndpoint": { + "clickTrackingParams": "CB4Q1p8HGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "UCesP91XKnuZVd6OJN06hokg", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_USER_CHANNEL" + } + } + } + } + }, + { + "text": " • " + }, + { + "text": "171 songs" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CCoQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "PLX6L4t7t6ZanfCJ1wBxRdGZ_mk9ygmKqo", + "params": "wAEB8gECKAE%3D" + } + }, + "trackingParams": "CCoQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CCkQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAMPLPLX6L4t7t6ZanfCJ1wBxRdGZ_mk9ygmKqo", + "params": "wAEB" + } + }, + "trackingParams": "CCkQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Play next" + } + ] + }, + "icon": { + "iconType": "QUEUE_PLAY_NEXT" + }, + "serviceEndpoint": { + "clickTrackingParams": "CCcQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "PLX6L4t7t6ZanfCJ1wBxRdGZ_mk9ygmKqo" + }, + "queueInsertPosition": "INSERT_AFTER_CURRENT_VIDEO", + "commands": [ + { + "clickTrackingParams": "CCcQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist will play next" + } + ] + }, + "trackingParams": "CCgQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CCcQvu4FGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuServiceItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to queue" + } + ] + }, + "icon": { + "iconType": "ADD_TO_REMOTE_QUEUE" + }, + "serviceEndpoint": { + "clickTrackingParams": "CCUQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "queueAddEndpoint": { + "queueTarget": { + "playlistId": "PLX6L4t7t6ZanfCJ1wBxRdGZ_mk9ygmKqo" + }, + "queueInsertPosition": "INSERT_AT_END", + "commands": [ + { + "clickTrackingParams": "CCUQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "addToToastAction": { + "item": { + "notificationTextRenderer": { + "successResponseText": { + "runs": [ + { + "text": "Playlist added to queue" + } + ] + }, + "trackingParams": "CCYQyscDIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + } + } + } + ] + } + }, + "trackingParams": "CCUQ--8FGAMiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "toggleMenuServiceItemRenderer": { + "defaultText": { + "runs": [ + { + "text": "Add playlist to library" + } + ] + }, + "defaultIcon": { + "iconType": "LIBRARY_ADD" + }, + "defaultServiceEndpoint": { + "clickTrackingParams": "CCMQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Add favorites to your library after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CCQQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CCQQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "toggledText": { + "runs": [ + { + "text": "Remove playlist from library" + } + ] + }, + "toggledIcon": { + "iconType": "LIBRARY_REMOVE" + }, + "toggledServiceEndpoint": { + "clickTrackingParams": "CCMQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "likeEndpoint": { + "status": "INDIFFERENT", + "target": { + "playlistId": "PLX6L4t7t6ZanfCJ1wBxRdGZ_mk9ygmKqo" + } + } + }, + "trackingParams": "CCMQhP8FGAQiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Add to playlist" + } + ] + }, + "icon": { + "iconType": "ADD_TO_PLAYLIST" + }, + "navigationEndpoint": { + "clickTrackingParams": "CCEQw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "modalEndpoint": { + "modal": { + "modalWithTitleAndButtonRenderer": { + "title": { + "runs": [ + { + "text": "Save this for later" + } + ] + }, + "content": { + "runs": [ + { + "text": "Make playlists and share them after signing in" + } + ] + }, + "button": { + "buttonRenderer": { + "style": "STYLE_BLUE_TEXT", + "isDisabled": false, + "text": { + "runs": [ + { + "text": "Sign in" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CCIQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "signInEndpoint": { + "hack": true + } + }, + "trackingParams": "CCIQ8FsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + } + } + } + }, + "trackingParams": "CCEQw5QGGAUiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CCAQkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "EiJQTFg2TDR0N3Q2WmFuZkNKMXdCeFJkR1pfbWs5eWdtS3Fv", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CCAQkfsFGAYiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CB8QpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CB4Q1p8HGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "browseEndpoint": { + "browseId": "VLPLX6L4t7t6ZanfCJ1wBxRdGZ_mk9ygmKqo", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_PLAYLIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + } + ], + "trackingParams": "CB0Q-V4YBiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "bottomText": { + "runs": [ + { + "text": "Show all" + } + ] + }, + "bottomEndpoint": { + "clickTrackingParams": "CB0Q-V4YBiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgeKAQQoAEABagwQAxAEEAkQDhAKEAU%3D" + } + }, + "shelfDivider": { + "musicShelfDividerRenderer": { + "hidden": true + } + } + } + }, + { + "musicShelfRenderer": { + "title": { + "runs": [ + { + "text": "Artists" + } + ] + }, + "contents": [ + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CBcQ1WgYACITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/sw3ilLK-equKu_EtKG1ehnbNqbmo55ZqS_LjOlu4SuYRQrGyWoxIMF9OSw4ORpVtgYlKoeJGD4thG7k=w60-h60-p-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/sw3ilLK-equKu_EtKG1ehnbNqbmo55ZqS_LjOlu4SuYRQrGyWoxIMF9OSw4ORpVtgYlKoeJGD4thG7k=w120-h120-p-l90-rj", + "width": 120, + "height": 120 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_CIRCLE", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FILL", + "trackingParams": "CBwQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Icona Pop" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Artist" + }, + { + "text": " • " + }, + { + "text": "713K subscribers" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CBsQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAOLLCgRtB5OS7W-iqRYOmsBQ", + "params": "wAEB8gECGAE%3D" + } + }, + "trackingParams": "CBsQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CBoQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDEMLLCgRtB5OS7W-iqRYOmsBQ", + "params": "wAEB" + } + }, + "trackingParams": "CBoQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CBkQkfsFGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "GhhVQ1NaSnJoWjJfSUxDcHlrM1ozQVpWVEE%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CBkQkfsFGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CBgQpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CBcQ1WgYACITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "browseEndpoint": { + "browseId": "UCSZJrhZ2_ILCpyk3Z3AZVTA", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CBEQ1WgYASITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/HtQH-8U0IvzGUjkEzOZjpLEBdqcEBaSRAmpneHhtXbiZHL1rJsoq8iJFwcCSMY7PlM-UuzVGDkoJn6k=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/HtQH-8U0IvzGUjkEzOZjpLEBdqcEBaSRAmpneHhtXbiZHL1rJsoq8iJFwcCSMY7PlM-UuzVGDkoJn6k=w120-h120-l90-rj", + "width": 120, + "height": 120 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_CIRCLE", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FILL", + "trackingParams": "CBYQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Bacilos" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Artist" + }, + { + "text": " • " + }, + { + "text": "339K subscribers" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CBUQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAOORh0I30Sbeb5bSmr-dkcgw", + "params": "wAEB8gECGAE%3D" + } + }, + "trackingParams": "CBUQmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CBQQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDEMORh0I30Sbeb5bSmr-dkcgw", + "params": "wAEB" + } + }, + "trackingParams": "CBQQm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CBMQkfsFGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "GhhVQ09rMENMeWRxQi1CMFVIN1VhWnJWcXc%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CBMQkfsFGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CBIQpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CBEQ1WgYASITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "browseEndpoint": { + "browseId": "UCOk0CLydqB-B0UH7UaZrVqw", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + }, + { + "musicResponsiveListItemRenderer": { + "trackingParams": "CAsQ1WgYAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "thumbnail": { + "musicThumbnailRenderer": { + "thumbnail": { + "thumbnails": [ + { + "url": "https://lh3.googleusercontent.com/P8DRNrrBP_x4GmPXXKJkWKroLuMCpGW4DJTgxFPYFI-MlLk3pI6xOYMpMnzyb49md-8VVn9L3RHNTfMq=w60-h60-l90-rj", + "width": 60, + "height": 60 + }, + { + "url": "https://lh3.googleusercontent.com/P8DRNrrBP_x4GmPXXKJkWKroLuMCpGW4DJTgxFPYFI-MlLk3pI6xOYMpMnzyb49md-8VVn9L3RHNTfMq=w120-h120-l90-rj", + "width": 120, + "height": 120 + } + ] + }, + "thumbnailCrop": "MUSIC_THUMBNAIL_CROP_CIRCLE", + "thumbnailScale": "MUSIC_THUMBNAIL_SCALE_ASPECT_FILL", + "trackingParams": "CBAQhL8CIhMIs-blxM3H-wIVXUN6BR0WrgYx" + } + }, + "flexColumns": [ + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Death Pop Radio" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + }, + { + "musicResponsiveListItemFlexColumnRenderer": { + "text": { + "runs": [ + { + "text": "Artist" + }, + { + "text": " • " + }, + { + "text": "11 subscribers" + } + ] + }, + "displayPriority": "MUSIC_RESPONSIVE_LIST_ITEM_COLUMN_DISPLAY_PRIORITY_HIGH" + } + } + ], + "menu": { + "menuRenderer": { + "items": [ + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Shuffle play" + } + ] + }, + "icon": { + "iconType": "MUSIC_SHUFFLE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CA8QmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDAOJnhX7k6SOsh0RUrvPKS4vw", + "params": "wAEB8gECGAE%3D" + } + }, + "trackingParams": "CA8QmvMFGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Start radio" + } + ] + }, + "icon": { + "iconType": "MIX" + }, + "navigationEndpoint": { + "clickTrackingParams": "CA4Qm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "watchPlaylistEndpoint": { + "playlistId": "RDEMJnhX7k6SOsh0RUrvPKS4vw", + "params": "wAEB" + } + }, + "trackingParams": "CA4Qm_MFGAEiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + }, + { + "menuNavigationItemRenderer": { + "text": { + "runs": [ + { + "text": "Share" + } + ] + }, + "icon": { + "iconType": "SHARE" + }, + "navigationEndpoint": { + "clickTrackingParams": "CA0QkfsFGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "shareEntityEndpoint": { + "serializedShareEntity": "GhhVQy1VbmlmYndfQURxZ0llTXE0QWR2dkE%3D", + "sharePanelType": "SHARE_PANEL_TYPE_UNIFIED_SHARE_PANEL" + } + }, + "trackingParams": "CA0QkfsFGAIiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ], + "trackingParams": "CAwQpzsiEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "accessibility": { + "accessibilityData": { + "label": "Action menu" + } + } + } + }, + "flexColumnDisplayStyle": "MUSIC_RESPONSIVE_LIST_ITEM_FLEX_COLUMN_DISPLAY_STYLE_TWO_LINE_STACK", + "navigationEndpoint": { + "clickTrackingParams": "CAsQ1WgYAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "browseEndpoint": { + "browseId": "UC-Unifbw_ADqgIeMq4AdvvA", + "browseEndpointContextSupportedConfigs": { + "browseEndpointContextMusicConfig": { + "pageType": "MUSIC_PAGE_TYPE_ARTIST" + } + } + } + }, + "itemHeight": "MUSIC_RESPONSIVE_LIST_ITEM_HEIGHT_TALL" + } + } + ], + "trackingParams": "CAoQ-V4YByITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "bottomText": { + "runs": [ + { + "text": "Show all" + } + ] + }, + "bottomEndpoint": { + "clickTrackingParams": "CAoQ-V4YByITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgWKAQIgAWoMEAMQBBAJEA4QChAF" + } + }, + "shelfDivider": { + "musicShelfDividerRenderer": { + "hidden": true + } + } + } + } + ], + "trackingParams": "CAIQui8iEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "header": { + "chipCloudRenderer": { + "chips": [ + { + "chipCloudChipRenderer": { + "style": { + "styleType": "STYLE_DEFAULT" + }, + "text": { + "runs": [ + { + "text": "Songs" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CAkQ_V0YACITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgWKAQIIAWoMEAMQBBAJEA4QChAF" + } + }, + "trackingParams": "CAkQ_V0YACITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "accessibilityData": { + "accessibilityData": { + "label": "Show song results" + } + }, + "isSelected": false, + "uniqueId": "Songs" + } + }, + { + "chipCloudChipRenderer": { + "style": { + "styleType": "STYLE_DEFAULT" + }, + "text": { + "runs": [ + { + "text": "Videos" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CAgQ_V0YASITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgWKAQIQAWoMEAMQBBAJEA4QChAF" + } + }, + "trackingParams": "CAgQ_V0YASITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "accessibilityData": { + "accessibilityData": { + "label": "Show video results" + } + }, + "isSelected": false, + "uniqueId": "Videos" + } + }, + { + "chipCloudChipRenderer": { + "style": { + "styleType": "STYLE_DEFAULT" + }, + "text": { + "runs": [ + { + "text": "Albums" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CAcQ_V0YAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgWKAQIYAWoMEAMQBBAJEA4QChAF" + } + }, + "trackingParams": "CAcQ_V0YAiITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "accessibilityData": { + "accessibilityData": { + "label": "Show album results" + } + }, + "isSelected": false, + "uniqueId": "Albums" + } + }, + { + "chipCloudChipRenderer": { + "style": { + "styleType": "STYLE_DEFAULT" + }, + "text": { + "runs": [ + { + "text": "Featured playlists" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CAYQ_V0YAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgeKAQQoADgBagwQAxAEEAkQDhAKEAU%3D" + } + }, + "trackingParams": "CAYQ_V0YAyITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "accessibilityData": { + "accessibilityData": { + "label": "Show featured playlist results" + } + }, + "isSelected": false, + "uniqueId": "Featured playlists" + } + }, + { + "chipCloudChipRenderer": { + "style": { + "styleType": "STYLE_DEFAULT" + }, + "text": { + "runs": [ + { + "text": "Community playlists" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CAUQ_V0YBCITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgeKAQQoAEABagwQAxAEEAkQDhAKEAU%3D" + } + }, + "trackingParams": "CAUQ_V0YBCITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "accessibilityData": { + "accessibilityData": { + "label": "Show community playlist results" + } + }, + "isSelected": false, + "uniqueId": "Community playlists" + } + }, + { + "chipCloudChipRenderer": { + "style": { + "styleType": "STYLE_DEFAULT" + }, + "text": { + "runs": [ + { + "text": "Artists" + } + ] + }, + "navigationEndpoint": { + "clickTrackingParams": "CAQQ_V0YBSITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "searchEndpoint": { + "query": "pop radio", + "params": "EgWKAQIgAWoMEAMQBBAJEA4QChAF" + } + }, + "trackingParams": "CAQQ_V0YBSITCLPm5cTNx_sCFV1DegUdFq4GMQ==", + "accessibilityData": { + "accessibilityData": { + "label": "Show artist results" + } + }, + "isSelected": false, + "uniqueId": "Artists" + } + } + ], + "collapsedRowCount": 1, + "trackingParams": "CAMQ_F0iEwiz5uXEzcf7AhVdQ3oFHRauBjE=", + "horizontalScrollable": true + } + } + } + }, + "tabIdentifier": "music_search_catalog", + "trackingParams": "CAEQ8JMBGAAiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" + } + } + ] + } + }, + "trackingParams": "CAAQvGkiEwiz5uXEzcf7AhVdQ3oFHRauBjE=" +} diff --git a/testfiles/music_search/typo.json b/testfiles/music_search/main_typo.json similarity index 100% rename from testfiles/music_search/typo.json rename to testfiles/music_search/main_typo.json diff --git a/testfiles/music_search/suggestion_default.json b/testfiles/music_search/suggestion_default.json new file mode 100644 index 0000000..8978552 --- /dev/null +++ b/testfiles/music_search/suggestion_default.json @@ -0,0 +1,242 @@ +{ + "contents": [ + { + "searchSuggestionsSectionRenderer": { + "contents": [ + { + "searchSuggestionRenderer": { + "icon": { + "iconType": "SEARCH" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAcQpWEYASITCKbj7Pb3yPsCFcfUEQgdRe0MBA==", + "searchEndpoint": { + "query": "taylor swift" + } + }, + "suggestion": { + "runs": [ + { + "bold": true, + "text": "t" + }, + { + "text": "aylor swift" + } + ] + }, + "trackingParams": "CAcQpWEYASITCKbj7Pb3yPsCFcfUEQgdRe0MBA==" + } + }, + { + "searchSuggestionRenderer": { + "icon": { + "iconType": "SEARCH" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAYQpWEYAiITCKbj7Pb3yPsCFcfUEQgdRe0MBA==", + "searchEndpoint": { + "query": "tkkg" + } + }, + "suggestion": { + "runs": [ + { + "bold": true, + "text": "t" + }, + { + "text": "kkg" + } + ] + }, + "trackingParams": "CAYQpWEYAiITCKbj7Pb3yPsCFcfUEQgdRe0MBA==" + } + }, + { + "searchSuggestionRenderer": { + "icon": { + "iconType": "SEARCH" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAUQpWEYAyITCKbj7Pb3yPsCFcfUEQgdRe0MBA==", + "searchEndpoint": { + "query": "techno" + } + }, + "suggestion": { + "runs": [ + { + "bold": true, + "text": "t" + }, + { + "text": "echno" + } + ] + }, + "trackingParams": "CAUQpWEYAyITCKbj7Pb3yPsCFcfUEQgdRe0MBA==" + } + }, + { + "searchSuggestionRenderer": { + "icon": { + "iconType": "SEARCH" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAQQpWEYBCITCKbj7Pb3yPsCFcfUEQgdRe0MBA==", + "searchEndpoint": { + "query": "t low" + } + }, + "suggestion": { + "runs": [ + { + "bold": true, + "text": "t" + }, + { + "text": " low" + } + ] + }, + "trackingParams": "CAQQpWEYBCITCKbj7Pb3yPsCFcfUEQgdRe0MBA==" + } + }, + { + "searchSuggestionRenderer": { + "icon": { + "iconType": "SEARCH" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAMQpWEYBSITCKbj7Pb3yPsCFcfUEQgdRe0MBA==", + "searchEndpoint": { + "query": "the weeknd" + } + }, + "suggestion": { + "runs": [ + { + "bold": true, + "text": "t" + }, + { + "text": "he weeknd" + } + ] + }, + "trackingParams": "CAMQpWEYBSITCKbj7Pb3yPsCFcfUEQgdRe0MBA==" + } + }, + { + "searchSuggestionRenderer": { + "icon": { + "iconType": "SEARCH" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAIQpWEYBiITCKbj7Pb3yPsCFcfUEQgdRe0MBA==", + "searchEndpoint": { + "query": "tiktok songs" + } + }, + "suggestion": { + "runs": [ + { + "bold": true, + "text": "t" + }, + { + "text": "iktok songs" + } + ] + }, + "trackingParams": "CAIQpWEYBiITCKbj7Pb3yPsCFcfUEQgdRe0MBA==" + } + }, + { + "searchSuggestionRenderer": { + "icon": { + "iconType": "SEARCH" + }, + "navigationEndpoint": { + "clickTrackingParams": "CAEQpWEYByITCKbj7Pb3yPsCFcfUEQgdRe0MBA==", + "searchEndpoint": { + "query": "toten hosen" + } + }, + "suggestion": { + "runs": [ + { + "bold": true, + "text": "t" + }, + { + "text": "oten hosen" + } + ] + }, + "trackingParams": "CAEQpWEYByITCKbj7Pb3yPsCFcfUEQgdRe0MBA==" + } + } + ] + } + } + ], + "responseContext": { + "serviceTrackingParams": [ + { + "params": [ + { + "key": "c", + "value": "WEB_REMIX" + }, + { + "key": "cver", + "value": "1.20221121.01.00" + }, + { + "key": "yt_li", + "value": "0" + }, + { + "key": "GetMusicSearchSuggestions_rid", + "value": "0xe343e5421f9bc4f5" + } + ], + "service": "CSI" + }, + { + "params": [ + { + "key": "logged_in", + "value": "0" + }, + { + "key": "e", + "value": "1714247,9407157,23804281,23882685,23885487,23918597,23934970,23946420,23966208,23983296,23998056,24001373,24002022,24002025,24004644,24007246,24034168,24036948,24077241,24080738,24108448,24120820,24135310,24140247,24161116,24162920,24164186,24169501,24181174,24187043,24187377,24191629,24197450,24199724,24200839,24211178,24217535,24219713,24237297,24241378,24255165,24255543,24255545,24257695,24262346,24263796,24265426,24267564,24268142,24271464,24279196,24282724,24287327,24287604,24288043,24288442,24290971,24292955,24293803,24296354,24298084,24299747,24299875,24390374,24390675,24391018,24391541,24391579,24392268,24392403,24392452,24398048,24401557,24402891,24405024,24406605,24407200,24407452,24407665,24410273,24410853,24412682,24412897,24413820,24414162,24414917,24415579,24415866,24416290,24419371,24420756,24421162,24421894,24422904,24424806,24590921,39322504,39322574" + } + ], + "service": "GFEEDBACK" + }, + { + "params": [ + { + "key": "client.version", + "value": "1.20000101" + }, + { + "key": "client.name", + "value": "WEB_REMIX" + }, + { + "key": "client.fexp", + "value": "24257695,24288043,24415579,23882685,24412682,39322574,24287604,24410273,23885487,24217535,24392452,1714247,9407157,24390675,24299747,24401557,39322504,24410853,24191629,24108448,24279196,24255545,24292955,24001373,24161116,24290971,24413820,23934970,24007246,24187377,23998056,24391018,24415866,24293803,24262346,24282724,24398048,24407452,24187043,24407200,24419371,24199724,24421162,24211178,24287327,24265426,24392268,24164186,24241378,24391541,24422904,24255165,24402891,24140247,24416290,23983296,24002025,24414917,24414162,24391579,24237297,24406605,24424806,24255543,24299875,24263796,24298084,24135310,24267564,24004644,24077241,24036948,24405024,24420756,24296354,24590921,24268142,23918597,24390374,24271464,23946420,24197450,24412897,24120820,24421894,23804281,24392403,24181174,24002022,24200839,24288442,24219713,23966208,24034168,24080738,24162920,24169501,24407665" + } + ], + "service": "ECATCHER" + } + ], + "visitorData": "CgtHV2dSNHFYMDhLSSjZ_4GcBg%3D%3D" + }, + "trackingParams": "CAAQi24iEwim4-z298j7AhXH1BEIHUXtDAQ=" +} diff --git a/testfiles/music_search/suggestion_empty.json b/testfiles/music_search/suggestion_empty.json new file mode 100644 index 0000000..1393b55 --- /dev/null +++ b/testfiles/music_search/suggestion_empty.json @@ -0,0 +1,59 @@ +{ + "responseContext": { + "serviceTrackingParams": [ + { + "params": [ + { + "key": "c", + "value": "WEB_REMIX" + }, + { + "key": "cver", + "value": "1.20221121.01.00" + }, + { + "key": "yt_li", + "value": "0" + }, + { + "key": "GetMusicSearchSuggestions_rid", + "value": "0x0a90fd4a664adea1" + } + ], + "service": "CSI" + }, + { + "params": [ + { + "key": "logged_in", + "value": "0" + }, + { + "key": "e", + "value": "1714245,23804281,23882685,23918597,23934970,23946420,23966208,23983296,23998056,24001373,24002022,24002025,24004644,24007246,24034168,24036948,24077241,24080738,24120819,24135310,24140247,24161116,24162920,24164186,24169501,24181174,24184893,24187043,24187377,24191629,24197450,24199724,24200839,24211178,24217535,24219713,24241378,24255163,24255543,24255545,24262346,24263796,24265426,24267564,24268142,24279196,24280999,24281671,24282722,24287327,24288043,24290971,24292955,24293803,24299747,24299875,24390374,24390675,24391018,24391539,24392399,24400178,24400185,24401291,24401557,24402891,24404641,24406605,24407200,24407665,24412154,24413415,24414074,24414162,24415866,24416291,24416439,24417792,24418790,24420756,24421162,24423785,24426598,24426910,24590921,24591020,39322504,39322574" + } + ], + "service": "GFEEDBACK" + }, + { + "params": [ + { + "key": "client.version", + "value": "1.20000101" + }, + { + "key": "client.name", + "value": "WEB_REMIX" + }, + { + "key": "client.fexp", + "value": "24292955,24413415,24077241,24001373,24263796,24267564,24161116,24290971,24412154,24191629,24420756,23882685,24299747,24288043,24591020,24184893,24414162,24255543,24406605,24200839,24287327,24280999,24407665,23946420,23804281,24390374,24140247,24414074,23966208,24080738,24418790,23983296,24219713,24164186,24187043,24400178,24400185,24404641,24426910,23998056,24391539,24007246,24401291,24293803,24135310,24255163,24268142,23918597,24187377,24004644,24390675,24255545,24036948,24423785,24392399,24417792,24299875,1714245,24217535,39322574,24281671,24002025,24426598,24199724,24401557,39322504,24421162,24120819,24211178,24265426,24402891,24391018,24181174,24002022,24416439,24407200,24034168,24415866,24282722,24241378,24162920,24416291,23934970,24169501,24590921,24279196,24262346,24197450" + } + ], + "service": "ECATCHER" + } + ], + "visitorData": "Cgtyb1QtdzRqZXZGayisj4KcBg%3D%3D" + }, + "trackingParams": "CAAQi24iEwi6jvCx_8j7AhWbyxEIHYe1Bno=" +} diff --git a/tests/youtube.rs b/tests/youtube.rs index ea980b3..e506001 100644 --- a/tests/youtube.rs +++ b/tests/youtube.rs @@ -1700,12 +1700,14 @@ async fn music_search_artists() { let rp = RustyPipe::builder().strict().build(); let res = rp.query().music_search_artists("namika").await.unwrap(); - let artist = res + let (i, artist) = res .items .items .iter() - .find(|a| a.id == "UCIh4j8fXWf2U0ro0qnGU8Mg") + .enumerate() + .find(|(_, a)| a.id == "UCIh4j8fXWf2U0ro0qnGU8Mg") .unwrap(); + assert!(i < 3); assert_eq!(artist.name, "Namika"); assert!(!artist.avatar.is_empty(), "got no avatar"); assert!( @@ -1741,9 +1743,15 @@ async fn music_search_playlists(#[case] with_community: bool) { }; assert_eq!(res.corrected_query, None); - let playlist = &res.items.items[0]; + let (i, playlist) = res + .items + .items + .iter() + .enumerate() + .find(|(_, p)| p.id == "RDCLAK5uy_kFQXdnqMaQCVx2wpUM4ZfbsGCDibZtkJk") + .unwrap(); - assert_eq!(playlist.id, "RDCLAK5uy_kFQXdnqMaQCVx2wpUM4ZfbsGCDibZtkJk"); + assert!(i < 3); assert_eq!(playlist.name, "Easy Pop"); assert!(!playlist.thumbnail.is_empty(), "got no thumbnail"); assert_gte(playlist.track_count.unwrap(), 80, "tracks"); @@ -1761,9 +1769,15 @@ async fn music_search_playlists_community() { .unwrap(); assert_eq!(res.corrected_query, None); - let playlist = &res.items.items[0]; + let (i, playlist) = res + .items + .items + .iter() + .enumerate() + .find(|(_, p)| p.id == "PLMC9KNkIncKtGvr2kFRuXBVmBev6cAJ2u") + .unwrap(); - assert_eq!(playlist.id, "PLMC9KNkIncKtGvr2kFRuXBVmBev6cAJ2u"); + assert!(i < 3); assert_eq!( playlist.name, "Best Pop Music Videos - Top Pop Hits Playlist" @@ -1784,6 +1798,29 @@ async fn music_search_genre_radio() { rp.query().music_search("pop radio").await.unwrap(); } +#[rstest] +#[case::default("ed sheer", Some("ed sheeran"))] +#[case::empty("reujbhevmfndxnjrze", None)] +#[tokio::test] +async fn music_search_suggestion(#[case] query: &str, #[case] expect: Option<&str>) { + let rp = RustyPipe::builder().strict().build(); + let suggestion = rp.query().music_search_suggestion(query).await.unwrap(); + + match expect { + Some(expect) => assert!( + suggestion.iter().any(|s| s == expect), + "suggestion: {:?}, expected: {}", + suggestion, + expect + ), + None => assert!( + suggestion.is_empty(), + "suggestion: {:?}, expected to be empty", + suggestion + ), + } +} + #[rstest] #[case::mv("mv", "ZeerrnuLi5E")] #[case::track("track", "7nigXQS1Xb0")]