Compare commits

...

2 commits

7 changed files with 11313 additions and 460 deletions

View file

@ -44,6 +44,7 @@ pub async fn download_testfiles(project_root: &Path) {
music_search_albums(&testfiles).await;
music_search_artists(&testfiles).await;
music_search_playlists(&testfiles).await;
music_search_cont(&testfiles).await;
}
const CLIENT_TYPES: [ClientType; 5] = [
@ -598,3 +599,22 @@ async fn music_search_playlists(testfiles: &Path) {
.unwrap();
}
}
async fn music_search_cont(testfiles: &Path) {
let mut json_path = testfiles.to_path_buf();
json_path.push("music_search");
json_path.push("tracks_cont.json");
if json_path.exists() {
return;
}
let rp = RustyPipe::new();
let res = rp
.query()
.music_search_tracks("black mamba", false)
.await
.unwrap();
let rp = rp_testfile(&json_path);
res.items.next(&rp.query()).await.unwrap().unwrap();
}

View file

@ -332,6 +332,7 @@ mod tests {
#[rstest]
#[case("playlist_tracks", "music_playlist/playlist_cont")]
#[case("search_tracks", "music_search/tracks_cont")]
fn map_continuation_tracks(#[case] name: &str, #[case] path: &str) {
let filename = format!("testfiles/{}.json", path);
let json_path = Path::new(&filename);

View file

@ -0,0 +1,629 @@
---
source: src/client/pagination.rs
expression: paginator
---
Paginator(
count: None,
items: [
TrackItem(
id: "rNsISA-kWzM",
title: "Black Mamba Dub",
duration: 248,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/zRVppSgdih64UOcY_0-sZacnxhMkII4v4OotgFbV1SVbLT3qk4NmfQRXwhxszMJKTmb3uo8MzOwkyQ=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/zRVppSgdih64UOcY_0-sZacnxhMkII4v4OotgFbV1SVbLT3qk4NmfQRXwhxszMJKTmb3uo8MzOwkyQ=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCxoJ3pl32f39kmTvIR_NWOg",
name: "Akae Beka",
),
],
artists_txt: Some("Akae Beka"),
album: Some(AlbumId(
id: "MPREb_iuN0lQwEmRp",
name: "Kings Dub",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "vMZqNPZADFw",
title: "Black Mamba (feat. Ermal Meta)",
duration: 287,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/POoljmkFZgedlsgFfdn4B1kcZZ7P9Kx1xszHV9wT082T7GYX4c0lRrYaalrXIkT-ZeTeB5esqrftpzQ0GQ=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/POoljmkFZgedlsgFfdn4B1kcZZ7P9Kx1xszHV9wT082T7GYX4c0lRrYaalrXIkT-ZeTeB5esqrftpzQ0GQ=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCz7CQ4Mn9VChcO5-8j0SZpQ",
name: "Stylophonic",
),
],
artists_txt: Some("Stylophonic"),
album: Some(AlbumId(
id: "MPREb_HOsmtxbCHyg",
name: "Boom!",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "C8B-nBnB7Bk",
title: "Black Mamba",
duration: 177,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/2cJawayDujRRcl8OKABi82_aa4sH6EGLAqxlx976Syzh86c9inNlY2xch5s4GWEo5iSXVq8VdS_59l8=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/2cJawayDujRRcl8OKABi82_aa4sH6EGLAqxlx976Syzh86c9inNlY2xch5s4GWEo5iSXVq8VdS_59l8=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCAlOD5s3Ro27M61-2Z_UB7w",
name: "Tee See Connection",
),
],
artists_txt: Some("Tee See Connection"),
album: Some(AlbumId(
id: "MPREb_yrsxU7t0h6l",
name: "Black Mamba",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "29MOu6Y781I",
title: "Rip Black Mamba",
duration: 122,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/4XunKmdccrggx1GrQiX5T5OrPQpSLuzacDQjvFHUYQasIDClF-TtQdSCYXYDQ8gGy7CYn2J9aJC5P4c=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/4XunKmdccrggx1GrQiX5T5OrPQpSLuzacDQjvFHUYQasIDClF-TtQdSCYXYDQ8gGy7CYn2J9aJC5P4c=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCJv4icVpfpTaKZcB_Bytxyw",
name: "Bravoo Hunnidz",
),
],
artists_txt: Some("Bravoo Hunnidz"),
album: Some(AlbumId(
id: "MPREb_7Bg4fukodPY",
name: "Ballin\' Like I\'m Kobe",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "AdvPpJVvyEg",
title: "Black Mamba",
duration: 126,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Ue_Q3bgiMyvB_Rk8g0nCyTJHebz_A7f6twQkaRLX-iaHug2j5MmIwS9iHHW94S5x7gOwymGNngIDOXE=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/Ue_Q3bgiMyvB_Rk8g0nCyTJHebz_A7f6twQkaRLX-iaHug2j5MmIwS9iHHW94S5x7gOwymGNngIDOXE=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UC7RJTtpE3qwbw6-Idq9PTIg",
name: "Shockwave-Sound",
),
],
artists_txt: Some("Shockwave-Sound"),
album: Some(AlbumId(
id: "MPREb_Kg4Ff883GH0",
name: "Out on the Road",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "kv3Z269PQvE",
title: "Black Mamba",
duration: 178,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/PXz8D3pENlYjM-uBxgaMrWZtydsXzV7jGznVo1g9qf11fDckcTonR4NgMv0fwxjesqCvgq-uRSV3gfQTyA=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/PXz8D3pENlYjM-uBxgaMrWZtydsXzV7jGznVo1g9qf11fDckcTonR4NgMv0fwxjesqCvgq-uRSV3gfQTyA=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCh4Y9bvt_6vDq1gQhhT8AdA",
name: "Solo Da Honcho",
),
],
artists_txt: Some("Solo Da Honcho"),
album: Some(AlbumId(
id: "MPREb_fmNpLFKg4BY",
name: "Black Mamba",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "y74ZqAkFkK4",
title: "Born To Fight",
duration: 278,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/g0iyEdaYwlSjWkL516U_yDhCNh0ybcMIIcxBLtzRU32z8-K6-lY4n7dLy4QLWjDVeG28_uPaMRLRipzz=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/g0iyEdaYwlSjWkL516U_yDhCNh0ybcMIIcxBLtzRU32z8-K6-lY4n7dLy4QLWjDVeG28_uPaMRLRipzz=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCRpi1gBlax4sK3dNNxIxxFg",
name: "Black Mamba Official",
),
],
artists_txt: Some("Black Mamba Official"),
album: Some(AlbumId(
id: "MPREb_zMwHYnQRmuP",
name: "Born To Fight",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "ZVnqAUnj-1Y",
title: "Black Mamba",
duration: 188,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/WOkfIAGaz2Q_RhoMqgLQPS8zfrnT85NEpwgbvyc04DCS9fEw8y03FqAA4iUEABq0Adcey0w4erkX67vJoA=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/WOkfIAGaz2Q_RhoMqgLQPS8zfrnT85NEpwgbvyc04DCS9fEw8y03FqAA4iUEABq0Adcey0w4erkX67vJoA=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [],
artists_txt: Some("Dollah"),
album: Some(AlbumId(
id: "MPREb_5mxIz2hChjd",
name: "Black Mamba",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "REmUidcJt5I",
title: "Savage",
duration: 239,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/WVm938cCHuYeJyYRz0a8NHrvTXnEM6_aPiZOyv8ZzPVWt-wFqM1Fnkko68jgNPhhwI5ub_8z8n1OyhA=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/WVm938cCHuYeJyYRz0a8NHrvTXnEM6_aPiZOyv8ZzPVWt-wFqM1Fnkko68jgNPhhwI5ub_8z8n1OyhA=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCEdZAdnnKqbaHOlv8nM6OtA",
name: "aespa",
),
],
artists_txt: Some("aespa"),
album: Some(AlbumId(
id: "MPREb_ThKZWN8DQwp",
name: "Savage - The 1st Mini Album",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "63sEilefjtQ",
title: "Black Mamba",
duration: 233,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Smo8SmweSdDGfGCWbyo_WY08R72MwqkEx6eq9aUTc2TulaGJs7uh9nDoqcPjV5BRkBFtrCRAm8CryjMImA=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/Smo8SmweSdDGfGCWbyo_WY08R72MwqkEx6eq9aUTc2TulaGJs7uh9nDoqcPjV5BRkBFtrCRAm8CryjMImA=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCQSz-Rhz_ew4hUprXww4PAA",
name: "Crystal Ignite",
),
],
artists_txt: Some("Crystal Ignite"),
album: Some(AlbumId(
id: "MPREb_E29fqYqQp2V",
name: "Black Mamba",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "_LGy1K5vmq8",
title: "Black Mamba",
duration: 284,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/9Djd9it37TlN57UrU90PfDOYETwyEuxewPaW9ZcRJICkYS5FAwYjsC8ZN50KVT6DTTRm14fD3JIuzifL=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/9Djd9it37TlN57UrU90PfDOYETwyEuxewPaW9ZcRJICkYS5FAwYjsC8ZN50KVT6DTTRm14fD3JIuzifL=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [],
artists_txt: Some("Izhha, yasom, Samu, Ritmo, and Dcibel"),
album: Some(AlbumId(
id: "MPREb_PokIWXXD0EX",
name: "Black Mamba",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "Ak98OIfed8o",
title: "Black Mamba",
duration: 346,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/of6AjBFZiDdRIOzHk8hJI_6rexaVeBX2Weli37gkTwo7GD0nQynE9I8FQMwwyqPkyXBP9rfzP4CAtAFk=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/of6AjBFZiDdRIOzHk8hJI_6rexaVeBX2Weli37gkTwo7GD0nQynE9I8FQMwwyqPkyXBP9rfzP4CAtAFk=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCuDH6EntL5Qx9YrQCZSFiPg",
name: "Jeroenski",
),
],
artists_txt: Some("Jeroenski"),
album: Some(AlbumId(
id: "MPREb_NjnY9xgK1OH",
name: "Urban Vibes (The Underground Sound of House Music, Vol. 9)",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "_aSqdZKxcuU",
title: "Soul Surrender",
duration: 273,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/POgJYf88Xb_XJz2JKhJLRgni4a4P_NOEEZ8Yy_EX4LwoWeadBuNg2shcLiS6ruxehoRerVqjbrRWPc1t=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/POgJYf88Xb_XJz2JKhJLRgni4a4P_NOEEZ8Yy_EX4LwoWeadBuNg2shcLiS6ruxehoRerVqjbrRWPc1t=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCRpi1gBlax4sK3dNNxIxxFg",
name: "Black Mamba Official",
),
],
artists_txt: Some("Black Mamba Official"),
album: Some(AlbumId(
id: "MPREb_TyaTgucQuuW",
name: "Soul Surrender",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "6Lb4bmEEfnY",
title: "Black Mamba Boy",
duration: 312,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/8pJynr17yAyhW8QL20jk_XdhBBokDmt6-HtrTo2IGiwe6nOsalsd64vNtXYM_vl8-iMxyqULJ3psnf_2Yg=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/8pJynr17yAyhW8QL20jk_XdhBBokDmt6-HtrTo2IGiwe6nOsalsd64vNtXYM_vl8-iMxyqULJ3psnf_2Yg=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCdkNrc_l73BHYKRhDqxBo9w",
name: "Black Mamba Man",
),
],
artists_txt: Some("Black Mamba Man"),
album: Some(AlbumId(
id: "MPREb_VDjWCOUvD7s",
name: "Anti Venom",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "4lrp5FWFIak",
title: "Black Mamba",
duration: 558,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/lPZMkkaPYEXPHmUgwebckyBi1M6EtIxyxhfsSTvEcqj0J5QSCy4MWICmznUSo5ym7nh6ZbSLAFjruoJ_=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/lPZMkkaPYEXPHmUgwebckyBi1M6EtIxyxhfsSTvEcqj0J5QSCy4MWICmznUSo5ym7nh6ZbSLAFjruoJ_=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCiS97__D2VSNbDMfajnkTkw",
name: "Liapin",
),
],
artists_txt: Some("Liapin"),
album: Some(AlbumId(
id: "MPREb_TQJZCrJZ9cZ",
name: "Basila",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "Kk8vT1o_gYE",
title: "Black Mamba",
duration: 324,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/tJDelxhiUsBVlb2jbqR-cBqnPpsFUaNCIvJ-kUET3kNPhbGXkRDMBpNtQ9fkqrwhewyhHwd5SvQnNbA=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/tJDelxhiUsBVlb2jbqR-cBqnPpsFUaNCIvJ-kUET3kNPhbGXkRDMBpNtQ9fkqrwhewyhHwd5SvQnNbA=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UC3z_UqNGLnKLHfBDONx82zQ",
name: "Romane, Stochelo Rosenberg",
),
ChannelId(
id: "UCPrlkPZfsIoN6QG-jDRYQkQ",
name: "Romane",
),
ChannelId(
id: "UCmsTxLepDwdzr07-ALKUEHw",
name: "Stochelo Rosenberg",
),
],
artists_txt: Some("Romane, Stochelo Rosenberg, Romane & Stochelo Rosenberg"),
album: Some(AlbumId(
id: "MPREb_RFMbAhqPjqV",
name: "Double jeu (Intégrale Romane, vol. 9)",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "FbUrY0GdO88",
title: "Black Mamba Blues",
duration: 186,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/F4XKnhpSiMqFwf-wXEV7w7HAT8B6u7KVKzuauyJGyntuwBArQ8nw6_4WLL7csBtJcvh4skHWI_168EXsJA=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/F4XKnhpSiMqFwf-wXEV7w7HAT8B6u7KVKzuauyJGyntuwBArQ8nw6_4WLL7csBtJcvh4skHWI_168EXsJA=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UC2wd_7GTMGiQjIb6wCwnLhQ",
name: "Hangmen",
),
],
artists_txt: Some("Hangmen"),
album: Some(AlbumId(
id: "MPREb_fEAazqatkfR",
name: "Singapore Slingers",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "OFesVwAdT80",
title: "Black Mamba",
duration: 149,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/WSxW9Z7k4cPpouB30qD1hvYITQA-e5J_dB7m0SuxEbIAUlYAGtKDc_uiDOHYHBLx4bPwbqKCjtO3-dtfdQ=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/WSxW9Z7k4cPpouB30qD1hvYITQA-e5J_dB7m0SuxEbIAUlYAGtKDc_uiDOHYHBLx4bPwbqKCjtO3-dtfdQ=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCXQvoNpH-EDGUnCe2ABldDg",
name: "Two Tone Club",
),
],
artists_txt: Some("Two Tone Club"),
album: Some(AlbumId(
id: "MPREb_ksEm4DleWYg",
name: "Don\'t Look Back",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "lNeJjPPKE1g",
title: "Black Mamba",
duration: 212,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/_F5_qGGtZ8jYva_vvaOTwvrw7Elig9Y119SFqUbyf45ioDo3aAkfmaVNb0czjGDzU_MUDjnXQmnwXa4=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/_F5_qGGtZ8jYva_vvaOTwvrw7Elig9Y119SFqUbyf45ioDo3aAkfmaVNb0czjGDzU_MUDjnXQmnwXa4=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UCPjjr_AvPvEhZ5nnzEACI4w",
name: "Adrian Raso",
),
],
artists_txt: Some("Adrian Raso"),
album: Some(AlbumId(
id: "MPREb_Ws191BQ8IqM",
name: "Black Mamba",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "SW_woyyA1Bg",
title: "Black Mamba Style",
duration: 202,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/o5Tdv51nXvS40_b1mz_YnpB9bQRSyzRzrahjwN9quAJrjiN3MWDRo5tqIVzH-dnJIwyZYKdeRa2rUDg=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/o5Tdv51nXvS40_b1mz_YnpB9bQRSyzRzrahjwN9quAJrjiN3MWDRo5tqIVzH-dnJIwyZYKdeRa2rUDg=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ChannelId(
id: "UC_GZYnrfgYfORwOb2MsuyIg",
name: "Tunde",
),
],
artists_txt: Some("Tunde"),
album: Some(AlbumId(
id: "MPREb_5VuPA4DLi53",
name: "Black Mamba Style",
)),
view_count: None,
is_video: false,
track_nr: None,
),
],
ctoken: Some("EqQDEgtibGFjayBtYW1iYRqUA0VnV0tBUUlJQVVnb2Fnd1FBeEFFRUFrUURoQUtFQVdDQVF0eVRuTkpVMEV0YTFkNlRZSUJDM1pOV25GT1VGcEJSRVozZ2dFTFF6aENMVzVDYmtJM1FtdUNBUXN5T1UxUGRUWlpOemd4U1lJQkMwRmtkbEJ3U2xaMmVVVm5nZ0VMYTNZeldqSTJPVkJSZGtXQ0FRdDVOelJhY1VGclJtdExOSUlCQzFwV2JuRkJWVzVxTFRGWmdnRUxVa1Z0Vldsa1kwcDBOVW1DQVFzMk0zTkZhV3hsWm1wMFVZSUJDMTlNUjNreFN6VjJiWEU0Z2dFTFFXczVPRTlKWm1Wa09HLUNBUXRmWVZOeFpGcExlR04xVllJQkN6Wk1ZalJpYlVWRlptNVpnZ0VMTkd4eWNEVkdWMFpKWVd1Q0FRdExhemgyVkRGdlgyZFpSWUlCQzBaaVZYSlpNRWRrVHpnNGdnRUxUMFpsYzFaM1FXUlVPRENDQVF0c1RtVkthbEJRUzBVeFo0SUJDMU5YWDNkdmVYbEJNVUpuGPHq0C4%3D"),
endpoint: music_browse,
)

View file

@ -0,0 +1,114 @@
---
source: src/serializer/text.rs
expression: res
---
SAttributed {
ln: TextComponents(
[
Text {
text: "🎧Listen and download aespa's debut single \"Black Mamba\": ",
},
Web {
text: "https://smarturl.it/aespa_BlackMamba",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbm1qRVVfQUlObURLcnFFQXBTUkJSOEpqWGIzUXxBQ3Jtc0tsNUJIYm5xdERxZk9rZEw3YlJzV0ZIYTNaSjU2a21PaFhNUmxzdjI5VE1VRWUyczZwYmtmQXh3QXV0eXlkMDgxRUJoNVMzRFZ6RlZ6MGdXeXdWQXFTTGY2ZHhFcUFqdExRQ21PYzNfWmlBaHhqYXVUdw&q=https%3A%2F%2Fsmarturl.it%2Faespa_BlackMamba&v=ZeerrnuLi5E",
},
Text {
text: "\n🐍The Debut Stage ",
},
Video {
text: "aespa 에스파 'Black ...",
video_id: "Ky5RT5oGg0w",
start_time: 0,
},
Text {
text: "\n\n🎟\u{fe0f} aespa Showcase SYNK in LA! Tickets now on sale: ",
},
Web {
text: "https://www.ticketmaster.com/event/0A...",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbU1ObGNaRDZaRmo1X1ZjejBoeTRnWkxuVUJxZ3xBQ3Jtc0ttWk1BVVhaRXRfN1VYWXBqMHdaYURTRFJNcUZJVlY3a21wRHE2ZGZaclE3WUM5bEZWbmFfT0sxWTZHOVotWVh6U3YtVk94SlA5NkRFTnBPcHVCWDJhMGJRQlI3ZHN0MnJleHp0c2lEVWNxeW1jSDZuVQ&q=https%3A%2F%2Fwww.ticketmaster.com%2Fevent%2F0A005CCD9E871F6E&v=ZeerrnuLi5E",
},
Text {
text: "\n\nSubscribe to aespa Official YouTube Channel!\n",
},
Web {
text: "https://www.youtube.com/aespa?sub_con...",
url: "https://www.youtube.com/aespa?sub_confirmation=1",
},
Text {
text: "\n\naespa official\n",
},
Web {
text: "aespa",
url: "https://www.youtube.com/c/aespa",
},
Text {
text: "\n",
},
Web {
text: "https://www.instagram.com/aespa_official",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbE9FVEtZZkVLUExjdFBnZjZnZ19KNWRYOVZUd3xBQ3Jtc0tsbHpCa1hLTVJ6MEllczlzUEpoVi1IQ2F5NG1jMnlOT3p3bnlFeE80ZzlsaG5CUXlFQnFGTkMtN19DcVYzQkw3bVlVVmNwQlpYQWZnNGNsME45WE1WQ21sR3V1Z3k5RG9DUDE0VTZQTm53Mk9vTWhiOA&q=https%3A%2F%2Fwww.instagram.com%2Faespa_official&v=ZeerrnuLi5E",
},
Text {
text: "\n",
},
Web {
text: "https://www.tiktok.com/@aespa_official",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVdlSGk3eDd5U0dUVG16VFJCQnhKVFBEUUxMQXxBQ3Jtc0tuX3ZJbENNY1ZSN0FFemdxTFdlcTVvc3AwZE05NEFvRW5nOHpZWDUtZG9ORHBnT1JGc2UySDh3WWl3MU53VjFvbHRSdjdxMUlGM2Z6SmdaLTVaWWxhamJEems0Uld3MGlTT0Z0bkh5Y0hpcnY1aXptSQ&q=https%3A%2F%2Fwww.tiktok.com%2F%40aespa_official&v=ZeerrnuLi5E",
},
Text {
text: "\n",
},
Web {
text: "https://twitter.com/aespa_Official",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3lNcG1lMHkwSzNLQVBrUXFNTXl0N1hNa04wUXxBQ3Jtc0tubm1sQkdaVjNYR04xOHpJV3NxZVBpb3I5V1FVOHVFNC1uWE5vb211ZmZKYzhTZXZfbjlkY09fanBRdHpjUkdRVGJJYS0xZ3NBNkVZQVhWSS0xVDYwRlRzQ0J3ODQxNDE0ODAxd1Q0cG5icVlNWndscw&q=https%3A%2F%2Ftwitter.com%2Faespa_Official&v=ZeerrnuLi5E",
},
Text {
text: "\n",
},
Web {
text: "https://www.facebook.com/aespa.official",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjdBNG5yVEFwU0JMNGZaLUpQZ1ZoeGgwT0xOZ3xBQ3Jtc0tuRFdFNlJNV29PMThRNWo5MHZrREZ1ZU5oZlkxVmE4ZlU5STFCZW1mUFVSdXJ3VUQxUnNVVkUzLWJQMS1uRzVjdkRCV2ZxSWJ6cFNxRVVzejY0SDltZFZPc2xwS3ZPZGIxcFZ6cndIVkMtUjVtZ054cw&q=https%3A%2F%2Fwww.facebook.com%2Faespa.official&v=ZeerrnuLi5E",
},
Text {
text: "\n",
},
Web {
text: "https://weibo.com/aespa",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEtGMHB6eXBESW92aEVLc1FybkRwQU95eTh6UXxBQ3Jtc0tuWXc5d2JsTHFYcHExdy1FTDFyUV9wdU1DSmxELUxGSGlPMzhBdFVkblRSZkNLQzRaMEJGUGhYLWp4RU40YUVwV3N3ZUpRTVVKVDRiY19zeE5RUkt2dW5aUVcxcHBRQldCOTE3YktXSXZlSFJhRWRjdw&q=https%3A%2F%2Fweibo.com%2Faespa&v=ZeerrnuLi5E",
},
Text {
text: "\n\n",
},
Text {
text: "#aespa",
},
Text {
text: " ",
},
Text {
text: "#æspa",
},
Text {
text: " ",
},
Text {
text: "#BlackMamba",
},
Text {
text: " ",
},
Text {
text: "#블랙맘바",
},
Text {
text: " ",
},
Text {
text: "#에스파",
},
Text {
text: "\naespa 에스파 'Black Mamba' MV ℗ SM Entertainment",
},
],
),
}

View file

@ -446,6 +446,8 @@ impl<'de> DeserializeAs<'de, String> for AccessibilityText {
#[cfg(test)]
mod tests {
use std::{fs::File, io::BufReader, path::Path};
use super::*;
use rstest::rstest;
@ -758,466 +760,11 @@ mod tests {
#[test]
fn t_attributed_description() {
let test_json = r#"{
"ln": {
"content": "🎧Listen and download aespa's debut single \"Black Mamba\": https://smarturl.it/aespa_BlackMamba\n🐍The Debut Stage     aespa 에스파 'Black ...  \n\n🎟️ aespa Showcase SYNK in LA! Tickets now on sale: https://www.ticketmaster.com/event/0A...\n\nSubscribe to aespa Official YouTube Channel!\nhttps://www.youtube.com/aespa?sub_con...\n\naespa official\n   / aespa  \nhttps://www.instagram.com/aespa_official\nhttps://www.tiktok.com/@aespa_official\nhttps://twitter.com/aespa_Official\nhttps://www.facebook.com/aespa.official\nhttps://weibo.com/aespa\n\n#aespa #æspa #BlackMamba #블랙맘바 #에스파\naespa 에스파 'Black Mamba' MV ℗ SM Entertainment",
"commandRuns": [
{
"startIndex": 58,
"length": 36,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbm1qRVVfQUlObURLcnFFQXBTUkJSOEpqWGIzUXxBQ3Jtc0tsNUJIYm5xdERxZk9rZEw3YlJzV0ZIYTNaSjU2a21PaFhNUmxzdjI5VE1VRWUyczZwYmtmQXh3QXV0eXlkMDgxRUJoNVMzRFZ6RlZ6MGdXeXdWQXFTTGY2ZHhFcUFqdExRQ21PYzNfWmlBaHhqYXVUdw&q=https%3A%2F%2Fsmarturl.it%2Faespa_BlackMamba&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbm1qRVVfQUlObURLcnFFQXBTUkJSOEpqWGIzUXxBQ3Jtc0tsNUJIYm5xdERxZk9rZEw3YlJzV0ZIYTNaSjU2a21PaFhNUmxzdjI5VE1VRWUyczZwYmtmQXh3QXV0eXlkMDgxRUJoNVMzRFZ6RlZ6MGdXeXdWQXFTTGY2ZHhFcUFqdExRQ21PYzNfWmlBaHhqYXVUdw&q=https%3A%2F%2Fsmarturl.it%2Faespa_BlackMamba&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 113,
"length": 27,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/watch?v=Ky5RT5oGg0w&t=0s",
"webPageType": "WEB_PAGE_TYPE_WATCH",
"rootVe": 3832
}
},
"watchEndpoint": {
"videoId": "Ky5RT5oGg0w",
"startTimeSeconds": 0,
"watchEndpointSupportedOnesieConfig": {
"html5PlaybackOnesieConfig": {
"commonConfig": {
"url": "https://rr5---sn-h0jeener.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=2b2e514f9a06834c&ip=2003%3Ade%3Aaf30%3A200%3Ad8ce%3A4044%3A2ba2%3A3881&initcwndbps=1556250&mt=1663992556&oweuc="
}
}
}
}
}
}
},
{
"startIndex": 194,
"length": 40,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbU1ObGNaRDZaRmo1X1ZjejBoeTRnWkxuVUJxZ3xBQ3Jtc0ttWk1BVVhaRXRfN1VYWXBqMHdaYURTRFJNcUZJVlY3a21wRHE2ZGZaclE3WUM5bEZWbmFfT0sxWTZHOVotWVh6U3YtVk94SlA5NkRFTnBPcHVCWDJhMGJRQlI3ZHN0MnJleHp0c2lEVWNxeW1jSDZuVQ&q=https%3A%2F%2Fwww.ticketmaster.com%2Fevent%2F0A005CCD9E871F6E&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbU1ObGNaRDZaRmo1X1ZjejBoeTRnWkxuVUJxZ3xBQ3Jtc0ttWk1BVVhaRXRfN1VYWXBqMHdaYURTRFJNcUZJVlY3a21wRHE2ZGZaclE3WUM5bEZWbmFfT0sxWTZHOVotWVh6U3YtVk94SlA5NkRFTnBPcHVCWDJhMGJRQlI3ZHN0MnJleHp0c2lEVWNxeW1jSDZuVQ&q=https%3A%2F%2Fwww.ticketmaster.com%2Fevent%2F0A005CCD9E871F6E&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 281,
"length": 40,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/aespa?sub_confirmation=1",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/aespa?sub_confirmation=1",
"nofollow": true
}
}
}
},
{
"startIndex": 338,
"length": 12,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/c/aespa",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/c/aespa",
"nofollow": true
}
}
}
},
{
"startIndex": 351,
"length": 40,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbE9FVEtZZkVLUExjdFBnZjZnZ19KNWRYOVZUd3xBQ3Jtc0tsbHpCa1hLTVJ6MEllczlzUEpoVi1IQ2F5NG1jMnlOT3p3bnlFeE80ZzlsaG5CUXlFQnFGTkMtN19DcVYzQkw3bVlVVmNwQlpYQWZnNGNsME45WE1WQ21sR3V1Z3k5RG9DUDE0VTZQTm53Mk9vTWhiOA&q=https%3A%2F%2Fwww.instagram.com%2Faespa_official&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbE9FVEtZZkVLUExjdFBnZjZnZ19KNWRYOVZUd3xBQ3Jtc0tsbHpCa1hLTVJ6MEllczlzUEpoVi1IQ2F5NG1jMnlOT3p3bnlFeE80ZzlsaG5CUXlFQnFGTkMtN19DcVYzQkw3bVlVVmNwQlpYQWZnNGNsME45WE1WQ21sR3V1Z3k5RG9DUDE0VTZQTm53Mk9vTWhiOA&q=https%3A%2F%2Fwww.instagram.com%2Faespa_official&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 392,
"length": 38,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVdlSGk3eDd5U0dUVG16VFJCQnhKVFBEUUxMQXxBQ3Jtc0tuX3ZJbENNY1ZSN0FFemdxTFdlcTVvc3AwZE05NEFvRW5nOHpZWDUtZG9ORHBnT1JGc2UySDh3WWl3MU53VjFvbHRSdjdxMUlGM2Z6SmdaLTVaWWxhamJEems0Uld3MGlTT0Z0bkh5Y0hpcnY1aXptSQ&q=https%3A%2F%2Fwww.tiktok.com%2F%40aespa_official&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVdlSGk3eDd5U0dUVG16VFJCQnhKVFBEUUxMQXxBQ3Jtc0tuX3ZJbENNY1ZSN0FFemdxTFdlcTVvc3AwZE05NEFvRW5nOHpZWDUtZG9ORHBnT1JGc2UySDh3WWl3MU53VjFvbHRSdjdxMUlGM2Z6SmdaLTVaWWxhamJEems0Uld3MGlTT0Z0bkh5Y0hpcnY1aXptSQ&q=https%3A%2F%2Fwww.tiktok.com%2F%40aespa_official&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 431,
"length": 34,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3lNcG1lMHkwSzNLQVBrUXFNTXl0N1hNa04wUXxBQ3Jtc0tubm1sQkdaVjNYR04xOHpJV3NxZVBpb3I5V1FVOHVFNC1uWE5vb211ZmZKYzhTZXZfbjlkY09fanBRdHpjUkdRVGJJYS0xZ3NBNkVZQVhWSS0xVDYwRlRzQ0J3ODQxNDE0ODAxd1Q0cG5icVlNWndscw&q=https%3A%2F%2Ftwitter.com%2Faespa_Official&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3lNcG1lMHkwSzNLQVBrUXFNTXl0N1hNa04wUXxBQ3Jtc0tubm1sQkdaVjNYR04xOHpJV3NxZVBpb3I5V1FVOHVFNC1uWE5vb211ZmZKYzhTZXZfbjlkY09fanBRdHpjUkdRVGJJYS0xZ3NBNkVZQVhWSS0xVDYwRlRzQ0J3ODQxNDE0ODAxd1Q0cG5icVlNWndscw&q=https%3A%2F%2Ftwitter.com%2Faespa_Official&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 466,
"length": 39,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjdBNG5yVEFwU0JMNGZaLUpQZ1ZoeGgwT0xOZ3xBQ3Jtc0tuRFdFNlJNV29PMThRNWo5MHZrREZ1ZU5oZlkxVmE4ZlU5STFCZW1mUFVSdXJ3VUQxUnNVVkUzLWJQMS1uRzVjdkRCV2ZxSWJ6cFNxRVVzejY0SDltZFZPc2xwS3ZPZGIxcFZ6cndIVkMtUjVtZ054cw&q=https%3A%2F%2Fwww.facebook.com%2Faespa.official&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjdBNG5yVEFwU0JMNGZaLUpQZ1ZoeGgwT0xOZ3xBQ3Jtc0tuRFdFNlJNV29PMThRNWo5MHZrREZ1ZU5oZlkxVmE4ZlU5STFCZW1mUFVSdXJ3VUQxUnNVVkUzLWJQMS1uRzVjdkRCV2ZxSWJ6cFNxRVVzejY0SDltZFZPc2xwS3ZPZGIxcFZ6cndIVkMtUjVtZ054cw&q=https%3A%2F%2Fwww.facebook.com%2Faespa.official&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 506,
"length": 23,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEtGMHB6eXBESW92aEVLc1FybkRwQU95eTh6UXxBQ3Jtc0tuWXc5d2JsTHFYcHExdy1FTDFyUV9wdU1DSmxELUxGSGlPMzhBdFVkblRSZkNLQzRaMEJGUGhYLWp4RU40YUVwV3N3ZUpRTVVKVDRiY19zeE5RUkt2dW5aUVcxcHBRQldCOTE3YktXSXZlSFJhRWRjdw&q=https%3A%2F%2Fweibo.com%2Faespa&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEtGMHB6eXBESW92aEVLc1FybkRwQU95eTh6UXxBQ3Jtc0tuWXc5d2JsTHFYcHExdy1FTDFyUV9wdU1DSmxELUxGSGlPMzhBdFVkblRSZkNLQzRaMEJGUGhYLWp4RU40YUVwV3N3ZUpRTVVKVDRiY19zeE5RUkt2dW5aUVcxcHBRQldCOTE3YktXSXZlSFJhRWRjdw&q=https%3A%2F%2Fweibo.com%2Faespa&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 531,
"length": 6,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CKIBENzXBBgKIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/aespa",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gUHCgVhZXNwYQ%3D%3D"
}
}
},
"loggingDirectives": {
"trackingParams": "CKIBENzXBBgKIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
},
{
"startIndex": 538,
"length": 5,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CKEBENzXBBgLIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/%C3%A6spa",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gUHCgXDpnNwYQ%3D%3D"
}
}
},
"loggingDirectives": {
"trackingParams": "CKEBENzXBBgLIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
},
{
"startIndex": 544,
"length": 11,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CKABENzXBBgMIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/blackmamba",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gUMCgpibGFja21hbWJh"
}
}
},
"loggingDirectives": {
"trackingParams": "CKABENzXBBgMIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
},
{
"startIndex": 556,
"length": 5,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ8BENzXBBgNIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/%EB%B8%94%EB%9E%99%EB%A7%98%EB%B0%94",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gUOCgzruJTrnpnrp5jrsJQ%3D"
}
}
},
"loggingDirectives": {
"trackingParams": "CJ8BENzXBBgNIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
},
{
"startIndex": 562,
"length": 4,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ4BENzXBBgOIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/%EC%97%90%EC%8A%A4%ED%8C%8C",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gULCgnsl5DsiqTtjIw%3D"
}
}
},
"loggingDirectives": {
"trackingParams": "CJ4BENzXBBgOIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
}
]
}
}"#;
let res = serde_json::from_str::<SAttributed>(test_json).unwrap();
insta::assert_debug_snapshot!(res, @r###"
SAttributed {
ln: TextComponents(
[
Text {
text: "🎧Listen and download aespa's debut single \"Black Mamba\": ",
},
Web {
text: "https://smarturl.it/aespa_BlackMamba",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbm1qRVVfQUlObURLcnFFQXBTUkJSOEpqWGIzUXxBQ3Jtc0tsNUJIYm5xdERxZk9rZEw3YlJzV0ZIYTNaSjU2a21PaFhNUmxzdjI5VE1VRWUyczZwYmtmQXh3QXV0eXlkMDgxRUJoNVMzRFZ6RlZ6MGdXeXdWQXFTTGY2ZHhFcUFqdExRQ21PYzNfWmlBaHhqYXVUdw&q=https%3A%2F%2Fsmarturl.it%2Faespa_BlackMamba&v=ZeerrnuLi5E",
},
Text {
text: "\n🐍The Debut Stage ",
},
Video {
text: "aespa 에스파 'Black ...",
video_id: "Ky5RT5oGg0w",
start_time: 0,
},
Text {
text: "\n\n🎟\u{fe0f} aespa Showcase SYNK in LA! Tickets now on sale: ",
},
Web {
text: "https://www.ticketmaster.com/event/0A...",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbU1ObGNaRDZaRmo1X1ZjejBoeTRnWkxuVUJxZ3xBQ3Jtc0ttWk1BVVhaRXRfN1VYWXBqMHdaYURTRFJNcUZJVlY3a21wRHE2ZGZaclE3WUM5bEZWbmFfT0sxWTZHOVotWVh6U3YtVk94SlA5NkRFTnBPcHVCWDJhMGJRQlI3ZHN0MnJleHp0c2lEVWNxeW1jSDZuVQ&q=https%3A%2F%2Fwww.ticketmaster.com%2Fevent%2F0A005CCD9E871F6E&v=ZeerrnuLi5E",
},
Text {
text: "\n\nSubscribe to aespa Official YouTube Channel!\n",
},
Web {
text: "https://www.youtube.com/aespa?sub_con...",
url: "https://www.youtube.com/aespa?sub_confirmation=1",
},
Text {
text: "\n\naespa official\n",
},
Web {
text: "aespa",
url: "https://www.youtube.com/c/aespa",
},
Text {
text: "\n",
},
Web {
text: "https://www.instagram.com/aespa_official",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbE9FVEtZZkVLUExjdFBnZjZnZ19KNWRYOVZUd3xBQ3Jtc0tsbHpCa1hLTVJ6MEllczlzUEpoVi1IQ2F5NG1jMnlOT3p3bnlFeE80ZzlsaG5CUXlFQnFGTkMtN19DcVYzQkw3bVlVVmNwQlpYQWZnNGNsME45WE1WQ21sR3V1Z3k5RG9DUDE0VTZQTm53Mk9vTWhiOA&q=https%3A%2F%2Fwww.instagram.com%2Faespa_official&v=ZeerrnuLi5E",
},
Text {
text: "\n",
},
Web {
text: "https://www.tiktok.com/@aespa_official",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVdlSGk3eDd5U0dUVG16VFJCQnhKVFBEUUxMQXxBQ3Jtc0tuX3ZJbENNY1ZSN0FFemdxTFdlcTVvc3AwZE05NEFvRW5nOHpZWDUtZG9ORHBnT1JGc2UySDh3WWl3MU53VjFvbHRSdjdxMUlGM2Z6SmdaLTVaWWxhamJEems0Uld3MGlTT0Z0bkh5Y0hpcnY1aXptSQ&q=https%3A%2F%2Fwww.tiktok.com%2F%40aespa_official&v=ZeerrnuLi5E",
},
Text {
text: "\n",
},
Web {
text: "https://twitter.com/aespa_Official",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3lNcG1lMHkwSzNLQVBrUXFNTXl0N1hNa04wUXxBQ3Jtc0tubm1sQkdaVjNYR04xOHpJV3NxZVBpb3I5V1FVOHVFNC1uWE5vb211ZmZKYzhTZXZfbjlkY09fanBRdHpjUkdRVGJJYS0xZ3NBNkVZQVhWSS0xVDYwRlRzQ0J3ODQxNDE0ODAxd1Q0cG5icVlNWndscw&q=https%3A%2F%2Ftwitter.com%2Faespa_Official&v=ZeerrnuLi5E",
},
Text {
text: "\n",
},
Web {
text: "https://www.facebook.com/aespa.official",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjdBNG5yVEFwU0JMNGZaLUpQZ1ZoeGgwT0xOZ3xBQ3Jtc0tuRFdFNlJNV29PMThRNWo5MHZrREZ1ZU5oZlkxVmE4ZlU5STFCZW1mUFVSdXJ3VUQxUnNVVkUzLWJQMS1uRzVjdkRCV2ZxSWJ6cFNxRVVzejY0SDltZFZPc2xwS3ZPZGIxcFZ6cndIVkMtUjVtZ054cw&q=https%3A%2F%2Fwww.facebook.com%2Faespa.official&v=ZeerrnuLi5E",
},
Text {
text: "\n",
},
Web {
text: "https://weibo.com/aespa",
url: "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEtGMHB6eXBESW92aEVLc1FybkRwQU95eTh6UXxBQ3Jtc0tuWXc5d2JsTHFYcHExdy1FTDFyUV9wdU1DSmxELUxGSGlPMzhBdFVkblRSZkNLQzRaMEJGUGhYLWp4RU40YUVwV3N3ZUpRTVVKVDRiY19zeE5RUkt2dW5aUVcxcHBRQldCOTE3YktXSXZlSFJhRWRjdw&q=https%3A%2F%2Fweibo.com%2Faespa&v=ZeerrnuLi5E",
},
Text {
text: "\n\n",
},
Text {
text: "#aespa",
},
Text {
text: " ",
},
Text {
text: "#æspa",
},
Text {
text: " ",
},
Text {
text: "#BlackMamba",
},
Text {
text: " ",
},
Text {
text: "#블랙맘바",
},
Text {
text: " ",
},
Text {
text: "#에스파",
},
Text {
text: "\naespa 에스파 'Black Mamba' MV ℗ SM Entertainment",
},
],
),
}
"###);
let filename = format!("testfiles/text/attributed_description.json");
let json_path = Path::new(&filename);
let json_file = File::open(json_path).unwrap();
let res: SAttributed = serde_json::from_reader(BufReader::new(json_file)).unwrap();
insta::assert_debug_snapshot!(res);
}
#[test]

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,346 @@
{
"ln": {
"content": "🎧Listen and download aespa's debut single \"Black Mamba\": https://smarturl.it/aespa_BlackMamba\n🐍The Debut Stage     aespa 에스파 'Black ...  \n\n🎟 aespa Showcase SYNK in LA! Tickets now on sale: https://www.ticketmaster.com/event/0A...\n\nSubscribe to aespa Official YouTube Channel!\nhttps://www.youtube.com/aespa?sub_con...\n\naespa official\n   / aespa  \nhttps://www.instagram.com/aespa_official\nhttps://www.tiktok.com/@aespa_official\nhttps://twitter.com/aespa_Official\nhttps://www.facebook.com/aespa.official\nhttps://weibo.com/aespa\n\n#aespa #æspa #BlackMamba #블랙맘바 #에스파\naespa 에스파 'Black Mamba' MV ℗ SM Entertainment",
"commandRuns": [
{
"startIndex": 58,
"length": 36,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbm1qRVVfQUlObURLcnFFQXBTUkJSOEpqWGIzUXxBQ3Jtc0tsNUJIYm5xdERxZk9rZEw3YlJzV0ZIYTNaSjU2a21PaFhNUmxzdjI5VE1VRWUyczZwYmtmQXh3QXV0eXlkMDgxRUJoNVMzRFZ6RlZ6MGdXeXdWQXFTTGY2ZHhFcUFqdExRQ21PYzNfWmlBaHhqYXVUdw&q=https%3A%2F%2Fsmarturl.it%2Faespa_BlackMamba&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbm1qRVVfQUlObURLcnFFQXBTUkJSOEpqWGIzUXxBQ3Jtc0tsNUJIYm5xdERxZk9rZEw3YlJzV0ZIYTNaSjU2a21PaFhNUmxzdjI5VE1VRWUyczZwYmtmQXh3QXV0eXlkMDgxRUJoNVMzRFZ6RlZ6MGdXeXdWQXFTTGY2ZHhFcUFqdExRQ21PYzNfWmlBaHhqYXVUdw&q=https%3A%2F%2Fsmarturl.it%2Faespa_BlackMamba&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 113,
"length": 27,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/watch?v=Ky5RT5oGg0w&t=0s",
"webPageType": "WEB_PAGE_TYPE_WATCH",
"rootVe": 3832
}
},
"watchEndpoint": {
"videoId": "Ky5RT5oGg0w",
"startTimeSeconds": 0,
"watchEndpointSupportedOnesieConfig": {
"html5PlaybackOnesieConfig": {
"commonConfig": {
"url": "https://rr5---sn-h0jeener.googlevideo.com/initplayback?source=youtube&orc=1&oeis=1&c=WEB&oad=3200&ovd=3200&oaad=11000&oavd=11000&ocs=700&oewis=1&oputc=1&ofpcc=1&msp=1&odeak=1&odepv=1&osfc=1&id=2b2e514f9a06834c&ip=2003%3Ade%3Aaf30%3A200%3Ad8ce%3A4044%3A2ba2%3A3881&initcwndbps=1556250&mt=1663992556&oweuc="
}
}
}
}
}
}
},
{
"startIndex": 194,
"length": 40,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbU1ObGNaRDZaRmo1X1ZjejBoeTRnWkxuVUJxZ3xBQ3Jtc0ttWk1BVVhaRXRfN1VYWXBqMHdaYURTRFJNcUZJVlY3a21wRHE2ZGZaclE3WUM5bEZWbmFfT0sxWTZHOVotWVh6U3YtVk94SlA5NkRFTnBPcHVCWDJhMGJRQlI3ZHN0MnJleHp0c2lEVWNxeW1jSDZuVQ&q=https%3A%2F%2Fwww.ticketmaster.com%2Fevent%2F0A005CCD9E871F6E&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbU1ObGNaRDZaRmo1X1ZjejBoeTRnWkxuVUJxZ3xBQ3Jtc0ttWk1BVVhaRXRfN1VYWXBqMHdaYURTRFJNcUZJVlY3a21wRHE2ZGZaclE3WUM5bEZWbmFfT0sxWTZHOVotWVh6U3YtVk94SlA5NkRFTnBPcHVCWDJhMGJRQlI3ZHN0MnJleHp0c2lEVWNxeW1jSDZuVQ&q=https%3A%2F%2Fwww.ticketmaster.com%2Fevent%2F0A005CCD9E871F6E&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 281,
"length": 40,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/aespa?sub_confirmation=1",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/aespa?sub_confirmation=1",
"nofollow": true
}
}
}
},
{
"startIndex": 338,
"length": 12,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/c/aespa",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/c/aespa",
"nofollow": true
}
}
}
},
{
"startIndex": 351,
"length": 40,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbE9FVEtZZkVLUExjdFBnZjZnZ19KNWRYOVZUd3xBQ3Jtc0tsbHpCa1hLTVJ6MEllczlzUEpoVi1IQ2F5NG1jMnlOT3p3bnlFeE80ZzlsaG5CUXlFQnFGTkMtN19DcVYzQkw3bVlVVmNwQlpYQWZnNGNsME45WE1WQ21sR3V1Z3k5RG9DUDE0VTZQTm53Mk9vTWhiOA&q=https%3A%2F%2Fwww.instagram.com%2Faespa_official&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbE9FVEtZZkVLUExjdFBnZjZnZ19KNWRYOVZUd3xBQ3Jtc0tsbHpCa1hLTVJ6MEllczlzUEpoVi1IQ2F5NG1jMnlOT3p3bnlFeE80ZzlsaG5CUXlFQnFGTkMtN19DcVYzQkw3bVlVVmNwQlpYQWZnNGNsME45WE1WQ21sR3V1Z3k5RG9DUDE0VTZQTm53Mk9vTWhiOA&q=https%3A%2F%2Fwww.instagram.com%2Faespa_official&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 392,
"length": 38,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVdlSGk3eDd5U0dUVG16VFJCQnhKVFBEUUxMQXxBQ3Jtc0tuX3ZJbENNY1ZSN0FFemdxTFdlcTVvc3AwZE05NEFvRW5nOHpZWDUtZG9ORHBnT1JGc2UySDh3WWl3MU53VjFvbHRSdjdxMUlGM2Z6SmdaLTVaWWxhamJEems0Uld3MGlTT0Z0bkh5Y0hpcnY1aXptSQ&q=https%3A%2F%2Fwww.tiktok.com%2F%40aespa_official&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbVdlSGk3eDd5U0dUVG16VFJCQnhKVFBEUUxMQXxBQ3Jtc0tuX3ZJbENNY1ZSN0FFemdxTFdlcTVvc3AwZE05NEFvRW5nOHpZWDUtZG9ORHBnT1JGc2UySDh3WWl3MU53VjFvbHRSdjdxMUlGM2Z6SmdaLTVaWWxhamJEems0Uld3MGlTT0Z0bkh5Y0hpcnY1aXptSQ&q=https%3A%2F%2Fwww.tiktok.com%2F%40aespa_official&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 431,
"length": 34,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3lNcG1lMHkwSzNLQVBrUXFNTXl0N1hNa04wUXxBQ3Jtc0tubm1sQkdaVjNYR04xOHpJV3NxZVBpb3I5V1FVOHVFNC1uWE5vb211ZmZKYzhTZXZfbjlkY09fanBRdHpjUkdRVGJJYS0xZ3NBNkVZQVhWSS0xVDYwRlRzQ0J3ODQxNDE0ODAxd1Q0cG5icVlNWndscw&q=https%3A%2F%2Ftwitter.com%2Faespa_Official&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqa3lNcG1lMHkwSzNLQVBrUXFNTXl0N1hNa04wUXxBQ3Jtc0tubm1sQkdaVjNYR04xOHpJV3NxZVBpb3I5V1FVOHVFNC1uWE5vb211ZmZKYzhTZXZfbjlkY09fanBRdHpjUkdRVGJJYS0xZ3NBNkVZQVhWSS0xVDYwRlRzQ0J3ODQxNDE0ODAxd1Q0cG5icVlNWndscw&q=https%3A%2F%2Ftwitter.com%2Faespa_Official&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 466,
"length": 39,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjdBNG5yVEFwU0JMNGZaLUpQZ1ZoeGgwT0xOZ3xBQ3Jtc0tuRFdFNlJNV29PMThRNWo5MHZrREZ1ZU5oZlkxVmE4ZlU5STFCZW1mUFVSdXJ3VUQxUnNVVkUzLWJQMS1uRzVjdkRCV2ZxSWJ6cFNxRVVzejY0SDltZFZPc2xwS3ZPZGIxcFZ6cndIVkMtUjVtZ054cw&q=https%3A%2F%2Fwww.facebook.com%2Faespa.official&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbjdBNG5yVEFwU0JMNGZaLUpQZ1ZoeGgwT0xOZ3xBQ3Jtc0tuRFdFNlJNV29PMThRNWo5MHZrREZ1ZU5oZlkxVmE4ZlU5STFCZW1mUFVSdXJ3VUQxUnNVVkUzLWJQMS1uRzVjdkRCV2ZxSWJ6cFNxRVVzejY0SDltZFZPc2xwS3ZPZGIxcFZ6cndIVkMtUjVtZ054cw&q=https%3A%2F%2Fwww.facebook.com%2Faespa.official&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 506,
"length": 23,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ0BEM2rARgBIhMIzvHr0sis-gIV0kZ6BR0GNA_4SJGXrtzn9erzZQ==",
"commandMetadata": {
"webCommandMetadata": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEtGMHB6eXBESW92aEVLc1FybkRwQU95eTh6UXxBQ3Jtc0tuWXc5d2JsTHFYcHExdy1FTDFyUV9wdU1DSmxELUxGSGlPMzhBdFVkblRSZkNLQzRaMEJGUGhYLWp4RU40YUVwV3N3ZUpRTVVKVDRiY19zeE5RUkt2dW5aUVcxcHBRQldCOTE3YktXSXZlSFJhRWRjdw&q=https%3A%2F%2Fweibo.com%2Faespa&v=ZeerrnuLi5E",
"webPageType": "WEB_PAGE_TYPE_UNKNOWN",
"rootVe": 83769
}
},
"urlEndpoint": {
"url": "https://www.youtube.com/redirect?event=video_description&redir_token=QUFFLUhqbEtGMHB6eXBESW92aEVLc1FybkRwQU95eTh6UXxBQ3Jtc0tuWXc5d2JsTHFYcHExdy1FTDFyUV9wdU1DSmxELUxGSGlPMzhBdFVkblRSZkNLQzRaMEJGUGhYLWp4RU40YUVwV3N3ZUpRTVVKVDRiY19zeE5RUkt2dW5aUVcxcHBRQldCOTE3YktXSXZlSFJhRWRjdw&q=https%3A%2F%2Fweibo.com%2Faespa&v=ZeerrnuLi5E",
"target": "TARGET_NEW_WINDOW",
"nofollow": true
}
}
}
},
{
"startIndex": 531,
"length": 6,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CKIBENzXBBgKIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/aespa",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gUHCgVhZXNwYQ%3D%3D"
}
}
},
"loggingDirectives": {
"trackingParams": "CKIBENzXBBgKIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
},
{
"startIndex": 538,
"length": 5,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CKEBENzXBBgLIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/%C3%A6spa",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gUHCgXDpnNwYQ%3D%3D"
}
}
},
"loggingDirectives": {
"trackingParams": "CKEBENzXBBgLIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
},
{
"startIndex": 544,
"length": 11,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CKABENzXBBgMIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/blackmamba",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gUMCgpibGFja21hbWJh"
}
}
},
"loggingDirectives": {
"trackingParams": "CKABENzXBBgMIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
},
{
"startIndex": 556,
"length": 5,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ8BENzXBBgNIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/%EB%B8%94%EB%9E%99%EB%A7%98%EB%B0%94",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gUOCgzruJTrnpnrp5jrsJQ%3D"
}
}
},
"loggingDirectives": {
"trackingParams": "CJ8BENzXBBgNIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
},
{
"startIndex": 562,
"length": 4,
"onTap": {
"innertubeCommand": {
"clickTrackingParams": "CJ4BENzXBBgOIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"commandMetadata": {
"webCommandMetadata": {
"url": "/hashtag/%EC%97%90%EC%8A%A4%ED%8C%8C",
"webPageType": "WEB_PAGE_TYPE_BROWSE",
"rootVe": 6827,
"apiUrl": "/youtubei/v1/browse"
}
},
"browseEndpoint": {
"browseId": "FEhashtag",
"params": "6gULCgnsl5DsiqTtjIw%3D"
}
}
},
"loggingDirectives": {
"trackingParams": "CJ4BENzXBBgOIhMIzvHr0sis-gIV0kZ6BR0GNA_4",
"enableDisplayloggerExperiment": true
}
}
]
}
}