Compare commits

..

No commits in common. "7ca17f725ac963761afe8eb9d2151b93ca50ec84" and "22deccb4081f86ac479c6824d7a2d4ccebc2dbb9" have entirely different histories.

10 changed files with 1894 additions and 3926 deletions

View file

@ -1,4 +1,4 @@
steps: pipeline:
test: test:
image: rust:latest image: rust:latest
environment: environment:

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -3,37 +3,37 @@ source: tests/youtube.rs
expression: album expression: album
--- ---
MusicAlbum( MusicAlbum(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
playlist_id: Some("OLAK5uy_mAg4o-PpgUtVY97PDxaY3DRTZt37WUDaQ"), playlist_id: Some("OLAK5uy_myZkBX2d2TzcrlQhIwLy3hCj2MkAMaPR4"),
name: "Demi", name: "Märchen enden gut",
cover: "[cover]", cover: "[cover]",
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
description: Some("Demi is the fourth studio album by American singer Demi Lovato. It was released on May 10, 2013, by Hollywood Records. Looking to transition from her self-described \"generic\" third album Unbroken, Lovato wanted her fourth album to \"have songs that excited her\". Demi is primarily a pop record with elements of synthpop, and bubblegum pop.\nDemi received generally favorable reviews from music critics, who complimented Lovato\'s vocal performance. The album debuted at number three on the US Billboard 200 with first-week sales of 110,000 copies. The album also reached the top five in Canada, Ireland, Italy, Mexico and Spain. It has since sold 490,000 digital copies in the US and been certified Gold by the RIAA.\nThe album\'s lead single, \"Heart Attack\" peaked at number ten on the Billboard Hot 100, marking Lovato\'s third US top-ten single, and has been certified double platinum by the RIAA. The second single \"Made in the USA\" peaked at number 80, while later singles \"Neon Lights\" and \"Really Don\'t Care\" both reached the top 40 peaking at 36 and 26, respectively, and both have been certified platinum by RIAA.\n\nFrom Wikipedia (https://en.wikipedia.org/wiki/Demi_(album)) under Creative Commons Attribution CC-BY-SA 3.0 (https://creativecommons.org/licenses/by-sa/3.0/legalcode)"), description: None,
album_type: Album, album_type: Album,
year: Some(2013), year: Some(2016),
by_va: false, by_va: false,
tracks: [ tracks: [
TrackItem( TrackItem(
id: "8DmPZaCLMcE", id: "g0iRiJ_ck48",
name: "Heart Attack", name: "Aulë und Yavanna",
duration: Some(211), duration: Some(217),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -41,20 +41,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "RRE0hz60t8I", id: "rREEBXp0y9s",
name: "Made In The USA", name: "Numenor",
duration: Some(197), duration: Some(225),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -62,20 +62,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "O38fBJpWqGM", id: "zvU5Y8Q19hU",
name: "Without The Love", name: "Das Mädchen und die Liebe (feat. Santiano)",
duration: Some(236), duration: Some(177),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -83,20 +83,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "BB1Q5XjCOho", id: "ARKLrzzTQA0",
name: "Neon Lights", name: "Niënna",
duration: Some(234), duration: Some(216),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -104,20 +104,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "0VOm-MoZ3Xg", id: "tstLgN8A_Ng",
name: "Two Pieces", name: "Der fahle Mond",
duration: Some(266), duration: Some(269),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -125,20 +125,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "vvm-XtXQ7wI", id: "k2DjgQOY3Ts",
name: "Nightingale", name: "Weise den Weg",
duration: Some(217), duration: Some(203),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -146,20 +146,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "CJYhllodSAc", id: "azHwhecxEsI",
name: "In Case", name: "Zeit der Sommernächte",
duration: Some(215), duration: Some(186),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -167,20 +167,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "tTmJoiCIebg", id: "_FcsdYIQ2co",
name: "Really Don\'t Care (feat. Cher Lloyd)", name: "Märchen enden gut",
duration: Some(202), duration: Some(227),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -188,20 +188,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "qmGtn0TQ8Fk", id: "27bOWEbshyE",
name: "Fire Starter", name: "Das Mädchen und der Tod",
duration: Some(205), duration: Some(208),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -209,20 +209,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "Bb_j4TTlEZA", id: "riD_3oZwt8w",
name: "Something That We\'re Not", name: "Wir sehn uns wieder",
duration: Some(198), duration: Some(212),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -230,20 +230,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "rVey1Qgn1vc", id: "8GNvjF3no9s",
name: "Never Been Hurt", name: "Tanz mit mir",
duration: Some(237), duration: Some(180),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -251,20 +251,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "mdXNWcYYZ10", id: "YHMFzf1uN2U",
name: "Shouldn\'t Come Back", name: "Nachtigall",
duration: Some(230), duration: Some(219),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -272,50 +272,155 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "yX40-XWjWe0", id: "jvV-z5F3oAo",
name: "Warrior", name: "Gayatri Mantra",
duration: Some(232), duration: Some(278),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "Demi", name: "Märchen enden gut",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
track_nr: Some(13), track_nr: Some(13),
by_va: false, by_va: false,
), ),
TrackItem(
id: "u8_9cxlrh8k",
name: "Sing mir deine Lieder",
duration: Some(205),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "Märchen enden gut",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(14),
by_va: false,
),
TrackItem(
id: "gSvKcvM1Wk0",
name: "Laurië lantar",
duration: Some(203),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "Märchen enden gut",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(15),
by_va: false,
),
TrackItem(
id: "wQHgKRJ0pDQ",
name: "Wächter vor dem Tor",
duration: Some(223),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "Märchen enden gut",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(16),
by_va: false,
),
TrackItem(
id: "Ckz5i6-hzf0",
name: "Stroh zu Gold",
duration: Some(178),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "Märchen enden gut",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(17),
by_va: false,
),
TrackItem(
id: "y5zuUgyFqrc",
name: "Sonnenwendnacht",
duration: Some(221),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "Märchen enden gut",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(18),
by_va: false,
),
], ],
variants: [ variants: [
AlbumItem( AlbumItem(
id: "MPREb_bURBKIaURqK", id: "MPREb_jk6Msw8izou",
name: "Demi (Deluxe)", name: "Märchen enden gut (Nyáre Ranta (Märchenedition))",
cover: [ cover: [
Thumbnail( Thumbnail(
url: "https://lh3.googleusercontent.com/p6Fy9_hfUY-Y6BXzdsIfOKpSZBhjGkDrpPcbA8DNrR1zvCFUL7p3cCeUywx8PxQ6FX7eb30MsWq3fpn2=w226-h226-l90-rj", url: "https://lh3.googleusercontent.com/BKgnW_-hapCHk599AtRfTYZGdXVIo0C4bJp1Bh7qUpGK7fNAXGW8Bhv2x-ukeFM8cuxKbGqqGaTo8fZASA=w226-h226-l90-rj",
width: 226, width: 226,
height: 226, height: 226,
), ),
Thumbnail( Thumbnail(
url: "https://lh3.googleusercontent.com/p6Fy9_hfUY-Y6BXzdsIfOKpSZBhjGkDrpPcbA8DNrR1zvCFUL7p3cCeUywx8PxQ6FX7eb30MsWq3fpn2=w544-h544-l90-rj", url: "https://lh3.googleusercontent.com/BKgnW_-hapCHk599AtRfTYZGdXVIo0C4bJp1Bh7qUpGK7fNAXGW8Bhv2x-ukeFM8cuxKbGqqGaTo8fZASA=w544-h544-l90-rj",
width: 544, width: 544,
height: 544, height: 544,
), ),
], ],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Demi Lovato", name: "Oonagh",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album_type: Album, album_type: Album,
year: None, year: None,
by_va: false, by_va: false,

View file

@ -3,36 +3,36 @@ source: tests/youtube.rs
expression: album expression: album
--- ---
MusicAlbum( MusicAlbum(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
playlist_id: Some("OLAK5uy_mAg4o-PpgUtVY97PDxaY3DRTZt37WUDaQ"), playlist_id: Some("OLAK5uy_myZkBX2d2TzcrlQhIwLy3hCj2MkAMaPR4"),
name: "[name]", name: "[name]",
cover: "[cover]", cover: "[cover]",
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
description: "[description]", description: "[description]",
album_type: Album, album_type: Album,
year: Some(2013), year: Some(2016),
by_va: false, by_va: false,
tracks: [ tracks: [
TrackItem( TrackItem(
id: "8DmPZaCLMcE", id: "g0iRiJ_ck48",
name: "[name]", name: "[name]",
duration: Some(211), duration: Some(217),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -41,19 +41,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "RRE0hz60t8I", id: "rREEBXp0y9s",
name: "[name]", name: "[name]",
duration: Some(197), duration: Some(225),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -62,19 +62,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "O38fBJpWqGM", id: "zvU5Y8Q19hU",
name: "[name]", name: "[name]",
duration: Some(236), duration: Some(177),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -83,19 +83,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "BB1Q5XjCOho", id: "ARKLrzzTQA0",
name: "[name]", name: "[name]",
duration: Some(234), duration: Some(216),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -104,19 +104,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "0VOm-MoZ3Xg", id: "tstLgN8A_Ng",
name: "[name]", name: "[name]",
duration: Some(266), duration: Some(269),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -125,19 +125,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "vvm-XtXQ7wI", id: "k2DjgQOY3Ts",
name: "[name]", name: "[name]",
duration: Some(217), duration: Some(203),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -146,19 +146,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "CJYhllodSAc", id: "azHwhecxEsI",
name: "[name]", name: "[name]",
duration: Some(215), duration: Some(186),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -167,19 +167,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "tTmJoiCIebg", id: "_FcsdYIQ2co",
name: "[name]", name: "[name]",
duration: Some(202), duration: Some(227),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -188,19 +188,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "qmGtn0TQ8Fk", id: "27bOWEbshyE",
name: "[name]", name: "[name]",
duration: Some(205), duration: Some(208),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -209,19 +209,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "Bb_j4TTlEZA", id: "riD_3oZwt8w",
name: "[name]", name: "[name]",
duration: Some(198), duration: Some(212),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -230,19 +230,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "rVey1Qgn1vc", id: "8GNvjF3no9s",
name: "[name]", name: "[name]",
duration: Some(237), duration: Some(180),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -251,19 +251,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "mdXNWcYYZ10", id: "YHMFzf1uN2U",
name: "[name]", name: "[name]",
duration: Some(230), duration: Some(219),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -272,19 +272,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "yX40-XWjWe0", id: "jvV-z5F3oAo",
name: "[name]", name: "[name]",
duration: Some(232), duration: Some(278),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_mXdQvyCqLnx", id: "MPREb_nlBWQROfvjo",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -292,30 +292,135 @@ MusicAlbum(
track_nr: Some(13), track_nr: Some(13),
by_va: false, by_va: false,
), ),
TrackItem(
id: "u8_9cxlrh8k",
name: "[name]",
duration: Some(205),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(14),
by_va: false,
),
TrackItem(
id: "gSvKcvM1Wk0",
name: "[name]",
duration: Some(203),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(15),
by_va: false,
),
TrackItem(
id: "wQHgKRJ0pDQ",
name: "[name]",
duration: Some(223),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(16),
by_va: false,
),
TrackItem(
id: "Ckz5i6-hzf0",
name: "[name]",
duration: Some(178),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(17),
by_va: false,
),
TrackItem(
id: "y5zuUgyFqrc",
name: "[name]",
duration: Some(221),
cover: [],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]",
),
],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(18),
by_va: false,
),
], ],
variants: [ variants: [
AlbumItem( AlbumItem(
id: "MPREb_bURBKIaURqK", id: "MPREb_jk6Msw8izou",
name: "Demi (Deluxe)", name: "Märchen enden gut (Nyáre Ranta (Märchenedition))",
cover: [ cover: [
Thumbnail( Thumbnail(
url: "https://lh3.googleusercontent.com/p6Fy9_hfUY-Y6BXzdsIfOKpSZBhjGkDrpPcbA8DNrR1zvCFUL7p3cCeUywx8PxQ6FX7eb30MsWq3fpn2=w226-h226-l90-rj", url: "https://lh3.googleusercontent.com/BKgnW_-hapCHk599AtRfTYZGdXVIo0C4bJp1Bh7qUpGK7fNAXGW8Bhv2x-ukeFM8cuxKbGqqGaTo8fZASA=w226-h226-l90-rj",
width: 226, width: 226,
height: 226, height: 226,
), ),
Thumbnail( Thumbnail(
url: "https://lh3.googleusercontent.com/p6Fy9_hfUY-Y6BXzdsIfOKpSZBhjGkDrpPcbA8DNrR1zvCFUL7p3cCeUywx8PxQ6FX7eb30MsWq3fpn2=w544-h544-l90-rj", url: "https://lh3.googleusercontent.com/BKgnW_-hapCHk599AtRfTYZGdXVIo0C4bJp1Bh7qUpGK7fNAXGW8Bhv2x-ukeFM8cuxKbGqqGaTo8fZASA=w544-h544-l90-rj",
width: 544, width: 544,
height: 544, height: 544,
), ),
], ],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"), artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
album_type: Album, album_type: Album,
year: None, year: None,
by_va: false, by_va: false,

View file

@ -3,37 +3,37 @@ source: tests/youtube.rs
expression: album expression: album
--- ---
MusicAlbum( MusicAlbum(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
playlist_id: Some("OLAK5uy_kdNoJ-uBZrMFvZCHQpkCwz9kmAELojcKs"), playlist_id: Some("OLAK5uy_kODvYZ5CEpYdtd4VPsmg0eRTlpazG0dvA"),
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
cover: "[cover]", cover: "[cover]",
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
description: None, description: None,
album_type: Show, album_type: Show,
year: Some(2015), year: Some(2022),
by_va: false, by_va: false,
tracks: [ tracks: [
TrackItem( TrackItem(
id: "ZIjGPc6vG0Y", id: "lSbKz5LWvKE",
name: "Kapitel 1 - Die Abenteuer des Odysseus. Hörspiel", name: "Achtung, Waldbrand - Teil 1",
duration: Some(123), duration: Some(229),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -41,20 +41,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "Wqrg6ceVgK8", id: "fdO6gu4qjRw",
name: "Kapitel 2 - Die Abenteuer des Odysseus. Hörspiel", name: "Achtung, Waldbrand - Teil 2",
duration: Some(122), duration: Some(235),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -62,20 +62,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "oWlZR0mU3fQ", id: "muCxstXirvY",
name: "Kapitel 3 - Die Abenteuer des Odysseus. Hörspiel", name: "Achtung, Waldbrand - Teil 3",
duration: Some(125), duration: Some(197),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -83,20 +83,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "pcdWTaNK_w4", id: "aG1N0vo__Ng",
name: "Kapitel 4 - Die Abenteuer des Odysseus. Hörspiel", name: "Eiszeit - Teil 1",
duration: Some(181), duration: Some(186),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -104,20 +104,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "hJhcL8A4AEI", id: "roHhLNYS9yo",
name: "Kapitel 5 - Die Abenteuer des Odysseus. Hörspiel", name: "Eiszeit - Teil 2",
duration: Some(123), duration: Some(188),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -125,20 +125,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "ROwmS2PzXiE", id: "nJ49NuLvcAw",
name: "Kapitel 6 - Die Abenteuer des Odysseus. Hörspiel", name: "Eiszeit - Teil 3",
duration: Some(123), duration: Some(205),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -146,20 +146,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "u5fduXogSKU", id: "Me119D570h0",
name: "Kapitel 7 - Die Abenteuer des Odysseus. Hörspiel", name: "Eiszeit - Teil 4",
duration: Some(143), duration: Some(219),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -167,20 +167,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "37aeBkbW5Y4", id: "YXnRLK-qKG8",
name: "Kapitel 8 - Die Abenteuer des Odysseus. Hörspiel", name: "Im Sinkloch - Teil 1",
duration: Some(128), duration: Some(240),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -188,20 +188,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "Hn2701yNst0", id: "A61wz1jz9X0",
name: "Kapitel 9 - Die Abenteuer des Odysseus. Hörspiel", name: "Im Sinkloch - Teil 2",
duration: Some(124), duration: Some(239),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -209,20 +209,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "dQiTv0BdwwA", id: "u_S08EJOTUg",
name: "Kapitel 10 - Die Abenteuer des Odysseus. Hörspiel", name: "Im Sinkloch - Teil 3",
duration: Some(123), duration: Some(197),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -230,20 +230,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "DXYXlAljscM", id: "0qwYJihV1EU",
name: "Kapitel 11 - Die Abenteuer des Odysseus. Hörspiel", name: "Vorsicht, heiß - Teil 1",
duration: Some(166), duration: Some(201),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -251,20 +251,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "mfbmff4MQ2M", id: "zjhoyTnEzuQ",
name: "Kapitel 12 - Die Abenteuer des Odysseus. Hörspiel", name: "Vorsicht, heiß - Teil 2",
duration: Some(148), duration: Some(187),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -272,20 +272,20 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "mHkR5PHlHpQ", id: "oDjDd0UBzAY",
name: "Kapitel 13 - Die Abenteuer des Odysseus. Hörspiel", name: "Vorsicht, heiß - Teil 3",
duration: Some(136), duration: Some(183),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -293,299 +293,26 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "VBnKIZ1b5Cg", id: "_3-WVmqgi-Q",
name: "Kapitel 14 - Die Abenteuer des Odysseus. Hörspiel", name: "Vorsicht, heiß - Teil 4",
duration: Some(149), duration: Some(193),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "Dimiter Inkiow", name: "Kingdom Force",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "Die Abenteuer des Odysseus. Hörspiel", name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
track_nr: Some(14), track_nr: Some(14),
by_va: false, by_va: false,
), ),
TrackItem(
id: "1iOIPRlLFgM",
name: "Kapitel 15 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(121),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(15),
by_va: false,
),
TrackItem(
id: "z1nDiIcnxoM",
name: "Kapitel 16 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(122),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(16),
by_va: false,
),
TrackItem(
id: "TNpe9wfbW9U",
name: "Kapitel 17 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(120),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(17),
by_va: false,
),
TrackItem(
id: "9FtXAfifarI",
name: "Kapitel 18 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(136),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(18),
by_va: false,
),
TrackItem(
id: "bRG8YR7ZBtI",
name: "Kapitel 19 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(155),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(19),
by_va: false,
),
TrackItem(
id: "wYV9GxkHdRE",
name: "Kapitel 20 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(209),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(20),
by_va: false,
),
TrackItem(
id: "wbrz2yUKiwo",
name: "Kapitel 21 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(148),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(21),
by_va: false,
),
TrackItem(
id: "_MUx8LqzuY8",
name: "Kapitel 22 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(123),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(22),
by_va: false,
),
TrackItem(
id: "s0xXo8ftgCA",
name: "Kapitel 23 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(134),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(23),
by_va: false,
),
TrackItem(
id: "6Q_etK9rgV8",
name: "Kapitel 24 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(203),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(24),
by_va: false,
),
TrackItem(
id: "4pwRZBhZH6Y",
name: "Kapitel 25 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(128),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(25),
by_va: false,
),
TrackItem(
id: "O75q5a1s02E",
name: "Kapitel 26 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(148),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(26),
by_va: false,
),
TrackItem(
id: "KSD9dI_ZgPQ",
name: "Kapitel 27 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(185),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Dimiter Inkiow",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "Die Abenteuer des Odysseus. Hörspiel",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(27),
by_va: false,
),
], ],
variants: [], variants: [],
) )

View file

@ -3,36 +3,36 @@ source: tests/youtube.rs
expression: album expression: album
--- ---
MusicAlbum( MusicAlbum(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
playlist_id: Some("OLAK5uy_kdNoJ-uBZrMFvZCHQpkCwz9kmAELojcKs"), playlist_id: Some("OLAK5uy_kODvYZ5CEpYdtd4VPsmg0eRTlpazG0dvA"),
name: "[name]", name: "[name]",
cover: "[cover]", cover: "[cover]",
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
description: "[description]", description: "[description]",
album_type: Show, album_type: Show,
year: Some(2015), year: Some(2022),
by_va: false, by_va: false,
tracks: [ tracks: [
TrackItem( TrackItem(
id: "ZIjGPc6vG0Y", id: "lSbKz5LWvKE",
name: "[name]", name: "[name]",
duration: Some(123), duration: Some(229),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -41,19 +41,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "Wqrg6ceVgK8", id: "fdO6gu4qjRw",
name: "[name]", name: "[name]",
duration: Some(122), duration: Some(235),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -62,19 +62,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "oWlZR0mU3fQ", id: "muCxstXirvY",
name: "[name]", name: "[name]",
duration: Some(125), duration: Some(197),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -83,19 +83,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "pcdWTaNK_w4", id: "aG1N0vo__Ng",
name: "[name]", name: "[name]",
duration: Some(181), duration: Some(186),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -104,19 +104,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "hJhcL8A4AEI", id: "roHhLNYS9yo",
name: "[name]", name: "[name]",
duration: Some(123), duration: Some(188),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -125,19 +125,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "ROwmS2PzXiE", id: "nJ49NuLvcAw",
name: "[name]", name: "[name]",
duration: Some(123), duration: Some(205),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -146,19 +146,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "u5fduXogSKU", id: "Me119D570h0",
name: "[name]", name: "[name]",
duration: Some(143), duration: Some(219),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -167,19 +167,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "37aeBkbW5Y4", id: "YXnRLK-qKG8",
name: "[name]", name: "[name]",
duration: Some(128), duration: Some(240),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -188,19 +188,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "Hn2701yNst0", id: "A61wz1jz9X0",
name: "[name]", name: "[name]",
duration: Some(124), duration: Some(239),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -209,19 +209,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "dQiTv0BdwwA", id: "u_S08EJOTUg",
name: "[name]", name: "[name]",
duration: Some(123), duration: Some(197),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -230,19 +230,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "DXYXlAljscM", id: "0qwYJihV1EU",
name: "[name]", name: "[name]",
duration: Some(166), duration: Some(201),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -251,19 +251,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "mfbmff4MQ2M", id: "zjhoyTnEzuQ",
name: "[name]", name: "[name]",
duration: Some(148), duration: Some(187),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -272,19 +272,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "mHkR5PHlHpQ", id: "oDjDd0UBzAY",
name: "[name]", name: "[name]",
duration: Some(136), duration: Some(183),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -293,19 +293,19 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "VBnKIZ1b5Cg", id: "_3-WVmqgi-Q",
name: "[name]", name: "[name]",
duration: Some(149), duration: Some(193),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"), artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM", id: "MPREb_cwzk8EUwypZ",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -313,279 +313,6 @@ MusicAlbum(
track_nr: Some(14), track_nr: Some(14),
by_va: false, by_va: false,
), ),
TrackItem(
id: "1iOIPRlLFgM",
name: "[name]",
duration: Some(121),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(15),
by_va: false,
),
TrackItem(
id: "z1nDiIcnxoM",
name: "[name]",
duration: Some(122),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(16),
by_va: false,
),
TrackItem(
id: "TNpe9wfbW9U",
name: "[name]",
duration: Some(120),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(17),
by_va: false,
),
TrackItem(
id: "9FtXAfifarI",
name: "[name]",
duration: Some(136),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(18),
by_va: false,
),
TrackItem(
id: "bRG8YR7ZBtI",
name: "[name]",
duration: Some(155),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(19),
by_va: false,
),
TrackItem(
id: "wYV9GxkHdRE",
name: "[name]",
duration: Some(209),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(20),
by_va: false,
),
TrackItem(
id: "wbrz2yUKiwo",
name: "[name]",
duration: Some(148),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(21),
by_va: false,
),
TrackItem(
id: "_MUx8LqzuY8",
name: "[name]",
duration: Some(123),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(22),
by_va: false,
),
TrackItem(
id: "s0xXo8ftgCA",
name: "[name]",
duration: Some(134),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(23),
by_va: false,
),
TrackItem(
id: "6Q_etK9rgV8",
name: "[name]",
duration: Some(203),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(24),
by_va: false,
),
TrackItem(
id: "4pwRZBhZH6Y",
name: "[name]",
duration: Some(128),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(25),
by_va: false,
),
TrackItem(
id: "O75q5a1s02E",
name: "[name]",
duration: Some(148),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(26),
by_va: false,
),
TrackItem(
id: "KSD9dI_ZgPQ",
name: "[name]",
duration: Some(185),
cover: [],
artists: [
ArtistId(
id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]",
),
],
artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId(
id: "MPREb_aDDw2kVEFtM",
name: "[name]",
)),
view_count: "[view_count]",
is_video: false,
track_nr: Some(27),
by_va: false,
),
], ],
variants: [], variants: [],
) )

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -300,6 +300,7 @@ fn get_player(
#[case::censored("6SJNVb0GnPI", UnavailabilityReason::Deleted)] #[case::censored("6SJNVb0GnPI", UnavailabilityReason::Deleted)]
// This video is geoblocked outside of Japan, so expect this test case to fail when using a Japanese IP address. // This video is geoblocked outside of Japan, so expect this test case to fail when using a Japanese IP address.
#[case::geoblock("sJL6WA-aGkQ", UnavailabilityReason::Geoblocked)] #[case::geoblock("sJL6WA-aGkQ", UnavailabilityReason::Geoblocked)]
#[case::drm("1bfOsni7EgI", UnavailabilityReason::Paid)]
#[case::private("s7_qI6_mIXc", UnavailabilityReason::Private)] #[case::private("s7_qI6_mIXc", UnavailabilityReason::Private)]
#[case::age_restricted("CUO8secmc0g", UnavailabilityReason::AgeRestricted)] #[case::age_restricted("CUO8secmc0g", UnavailabilityReason::AgeRestricted)]
#[case::premium_only("3LvozjEOUxU", UnavailabilityReason::Premium)] #[case::premium_only("3LvozjEOUxU", UnavailabilityReason::Premium)]
@ -315,24 +316,6 @@ fn get_player_error(#[case] id: &str, #[case] expect: UnavailabilityReason, rp:
} }
} }
#[rstest]
fn get_player_error_paid(rp: RustyPipe) {
let err = tokio_test::block_on(rp.query().player("N8ee9OLumrs")).unwrap_err();
match err {
// Sometimes YouTube shows an 'unplayable' error on paid videos
Error::Extraction(ExtractionError::Unavailable { reason, .. }) => {
assert!(
matches!(
reason,
UnavailabilityReason::Paid | UnavailabilityReason::Unplayable
),
"got {err}"
)
}
_ => panic!("got {err}"),
}
}
//#PLAYLIST //#PLAYLIST
#[rstest] #[rstest]
@ -1465,12 +1448,12 @@ fn music_playlist_not_found(rp: RustyPipe) {
} }
#[rstest] #[rstest]
#[case::one_artist("one_artist", "MPREb_mXdQvyCqLnx")] #[case::one_artist("one_artist", "MPREb_nlBWQROfvjo")]
#[case::various_artists("various_artists", "MPREb_8QkDeEIawvX")] #[case::various_artists("various_artists", "MPREb_8QkDeEIawvX")]
#[case::single("single", "MPREb_bHfHGoy7vuv")] #[case::single("single", "MPREb_bHfHGoy7vuv")]
#[case::ep("ep", "MPREb_u1I69lSAe5v")] #[case::ep("ep", "MPREb_u1I69lSAe5v")]
#[case::audiobook("audiobook", "MPREb_gaoNzsQHedo")] // #[case::audiobook("audiobook", "MPREb_gaoNzsQHedo")]
#[case::show("show", "MPREb_aDDw2kVEFtM")] #[case::show("show", "MPREb_cwzk8EUwypZ")]
#[case::unavailable("unavailable", "MPREb_AzuWg8qAVVl")] #[case::unavailable("unavailable", "MPREb_AzuWg8qAVVl")]
#[case::no_year("no_year", "MPREb_F3Af9UZZVxX")] #[case::no_year("no_year", "MPREb_F3Af9UZZVxX")]
#[case::version_no_artist("version_no_artist", "MPREb_h8ltx5oKvyY")] #[case::version_no_artist("version_no_artist", "MPREb_h8ltx5oKvyY")]
@ -1512,7 +1495,7 @@ fn music_album_not_found(rp: RustyPipe) {
} }
#[rstest] #[rstest]
#[case::basic_all("basic_all", "UCNezSmfQ8VIgvHUNj1Gzx6A", true, 15, 1)] #[case::basic_all("basic_all", "UC7cl4MmM6ZZ2TcFyMk_b4pg", true, 15, 2)]
// TODO: wait for A/B test 6 to stabilize // TODO: wait for A/B test 6 to stabilize
// #[case::basic("basic", "UC7cl4MmM6ZZ2TcFyMk_b4pg", false, 15, 2)] // #[case::basic("basic", "UC7cl4MmM6ZZ2TcFyMk_b4pg", false, 15, 2)]
#[case::no_more_albums("no_more_albums", "UCOR4_bSVIXPsGa4BbCSt60Q", true, 15, 0)] #[case::no_more_albums("no_more_albums", "UCOR4_bSVIXPsGa4BbCSt60Q", true, 15, 0)]
@ -1538,7 +1521,7 @@ fn music_artist(
assert!(artist.similar_artists.is_empty()); assert!(artist.similar_artists.is_empty());
assert!(artist.subscriber_count.is_none()); assert!(artist.subscriber_count.is_none());
} else { } else {
assert_gte(artist.subscriber_count.unwrap(), 10_000, "subscribers"); assert_gte(artist.subscriber_count.unwrap(), 30000, "subscribers");
} }
artist.tracks.iter().for_each(|t| { artist.tracks.iter().for_each(|t| {
@ -1905,12 +1888,12 @@ fn music_search_episode(rp: RustyPipe, #[case] videos: bool) {
false false
)] )]
#[case::album( #[case::album(
"demi", "märchen enden",
"Demi", "Märchen enden gut",
"MPREb_mXdQvyCqLnx", "MPREb_nlBWQROfvjo",
"Demi Lovato", "Oonagh",
"UCwem2sj-QUJCiWiPAo9JuAw", "UC_vmjW5e1xEHhYjY2a0kK1A",
2013, 2016,
AlbumType::Album, AlbumType::Album,
true true
)] )]