Compare commits

..

2 commits

Author SHA1 Message Date
7ca17f725a
fix: failing YTM tests by changing objects
Some checks failed
ci/woodpecker/manual/woodpecker Pipeline failed
2023-11-23 03:08:13 +01:00
0a02e946b3
chore: update woodpecker pipeline schema 2023-11-23 02:11:44 +01:00
10 changed files with 3938 additions and 1906 deletions

View file

@ -1,4 +1,4 @@
pipeline: steps:
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_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
playlist_id: Some("OLAK5uy_myZkBX2d2TzcrlQhIwLy3hCj2MkAMaPR4"), playlist_id: Some("OLAK5uy_mAg4o-PpgUtVY97PDxaY3DRTZt37WUDaQ"),
name: "Märchen enden gut", name: "Demi",
cover: "[cover]", cover: "[cover]",
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
description: None, 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)"),
album_type: Album, album_type: Album,
year: Some(2016), year: Some(2013),
by_va: false, by_va: false,
tracks: [ tracks: [
TrackItem( TrackItem(
id: "g0iRiJ_ck48", id: "8DmPZaCLMcE",
name: "Aulë und Yavanna", name: "Heart Attack",
duration: Some(217), duration: Some(211),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "rREEBXp0y9s", id: "RRE0hz60t8I",
name: "Numenor", name: "Made In The USA",
duration: Some(225), duration: Some(197),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "zvU5Y8Q19hU", id: "O38fBJpWqGM",
name: "Das Mädchen und die Liebe (feat. Santiano)", name: "Without The Love",
duration: Some(177), duration: Some(236),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "ARKLrzzTQA0", id: "BB1Q5XjCOho",
name: "Niënna", name: "Neon Lights",
duration: Some(216), duration: Some(234),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "tstLgN8A_Ng", id: "0VOm-MoZ3Xg",
name: "Der fahle Mond", name: "Two Pieces",
duration: Some(269), duration: Some(266),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "k2DjgQOY3Ts", id: "vvm-XtXQ7wI",
name: "Weise den Weg", name: "Nightingale",
duration: Some(203), duration: Some(217),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "azHwhecxEsI", id: "CJYhllodSAc",
name: "Zeit der Sommernächte", name: "In Case",
duration: Some(186), duration: Some(215),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "_FcsdYIQ2co", id: "tTmJoiCIebg",
name: "Märchen enden gut", name: "Really Don\'t Care (feat. Cher Lloyd)",
duration: Some(227), duration: Some(202),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "27bOWEbshyE", id: "qmGtn0TQ8Fk",
name: "Das Mädchen und der Tod", name: "Fire Starter",
duration: Some(208), duration: Some(205),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "riD_3oZwt8w", id: "Bb_j4TTlEZA",
name: "Wir sehn uns wieder", name: "Something That We\'re Not",
duration: Some(212), duration: Some(198),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "8GNvjF3no9s", id: "rVey1Qgn1vc",
name: "Tanz mit mir", name: "Never Been Hurt",
duration: Some(180), duration: Some(237),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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: "YHMFzf1uN2U", id: "mdXNWcYYZ10",
name: "Nachtigall", name: "Shouldn\'t Come Back",
duration: Some(219), duration: Some(230),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -272,155 +272,50 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "jvV-z5F3oAo", id: "yX40-XWjWe0",
name: "Gayatri Mantra", name: "Warrior",
duration: Some(278), duration: Some(232),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "Märchen enden gut", name: "Demi",
)), )),
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_jk6Msw8izou", id: "MPREb_bURBKIaURqK",
name: "Märchen enden gut (Nyáre Ranta (Märchenedition))", name: "Demi (Deluxe)",
cover: [ cover: [
Thumbnail( Thumbnail(
url: "https://lh3.googleusercontent.com/BKgnW_-hapCHk599AtRfTYZGdXVIo0C4bJp1Bh7qUpGK7fNAXGW8Bhv2x-ukeFM8cuxKbGqqGaTo8fZASA=w226-h226-l90-rj", url: "https://lh3.googleusercontent.com/p6Fy9_hfUY-Y6BXzdsIfOKpSZBhjGkDrpPcbA8DNrR1zvCFUL7p3cCeUywx8PxQ6FX7eb30MsWq3fpn2=w226-h226-l90-rj",
width: 226, width: 226,
height: 226, height: 226,
), ),
Thumbnail( Thumbnail(
url: "https://lh3.googleusercontent.com/BKgnW_-hapCHk599AtRfTYZGdXVIo0C4bJp1Bh7qUpGK7fNAXGW8Bhv2x-ukeFM8cuxKbGqqGaTo8fZASA=w544-h544-l90-rj", url: "https://lh3.googleusercontent.com/p6Fy9_hfUY-Y6BXzdsIfOKpSZBhjGkDrpPcbA8DNrR1zvCFUL7p3cCeUywx8PxQ6FX7eb30MsWq3fpn2=w544-h544-l90-rj",
width: 544, width: 544,
height: 544, height: 544,
), ),
], ],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "Oonagh", name: "Demi Lovato",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
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_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
playlist_id: Some("OLAK5uy_myZkBX2d2TzcrlQhIwLy3hCj2MkAMaPR4"), playlist_id: Some("OLAK5uy_mAg4o-PpgUtVY97PDxaY3DRTZt37WUDaQ"),
name: "[name]", name: "[name]",
cover: "[cover]", cover: "[cover]",
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
description: "[description]", description: "[description]",
album_type: Album, album_type: Album,
year: Some(2016), year: Some(2013),
by_va: false, by_va: false,
tracks: [ tracks: [
TrackItem( TrackItem(
id: "g0iRiJ_ck48", id: "8DmPZaCLMcE",
name: "[name]", name: "[name]",
duration: Some(217), duration: Some(211),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "rREEBXp0y9s", id: "RRE0hz60t8I",
name: "[name]", name: "[name]",
duration: Some(225), duration: Some(197),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "zvU5Y8Q19hU", id: "O38fBJpWqGM",
name: "[name]", name: "[name]",
duration: Some(177), duration: Some(236),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "ARKLrzzTQA0", id: "BB1Q5XjCOho",
name: "[name]", name: "[name]",
duration: Some(216), duration: Some(234),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "tstLgN8A_Ng", id: "0VOm-MoZ3Xg",
name: "[name]", name: "[name]",
duration: Some(269), duration: Some(266),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "k2DjgQOY3Ts", id: "vvm-XtXQ7wI",
name: "[name]", name: "[name]",
duration: Some(203), duration: Some(217),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "azHwhecxEsI", id: "CJYhllodSAc",
name: "[name]", name: "[name]",
duration: Some(186), duration: Some(215),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "_FcsdYIQ2co", id: "tTmJoiCIebg",
name: "[name]", name: "[name]",
duration: Some(227), duration: Some(202),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "27bOWEbshyE", id: "qmGtn0TQ8Fk",
name: "[name]", name: "[name]",
duration: Some(208), duration: Some(205),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "riD_3oZwt8w", id: "Bb_j4TTlEZA",
name: "[name]", name: "[name]",
duration: Some(212), duration: Some(198),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "8GNvjF3no9s", id: "rVey1Qgn1vc",
name: "[name]", name: "[name]",
duration: Some(180), duration: Some(237),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "YHMFzf1uN2U", id: "mdXNWcYYZ10",
name: "[name]", name: "[name]",
duration: Some(219), duration: Some(230),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
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: "jvV-z5F3oAo", id: "yX40-XWjWe0",
name: "[name]", name: "[name]",
duration: Some(278), duration: Some(232),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_nlBWQROfvjo", id: "MPREb_mXdQvyCqLnx",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -292,135 +292,30 @@ 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_jk6Msw8izou", id: "MPREb_bURBKIaURqK",
name: "Märchen enden gut (Nyáre Ranta (Märchenedition))", name: "Demi (Deluxe)",
cover: [ cover: [
Thumbnail( Thumbnail(
url: "https://lh3.googleusercontent.com/BKgnW_-hapCHk599AtRfTYZGdXVIo0C4bJp1Bh7qUpGK7fNAXGW8Bhv2x-ukeFM8cuxKbGqqGaTo8fZASA=w226-h226-l90-rj", url: "https://lh3.googleusercontent.com/p6Fy9_hfUY-Y6BXzdsIfOKpSZBhjGkDrpPcbA8DNrR1zvCFUL7p3cCeUywx8PxQ6FX7eb30MsWq3fpn2=w226-h226-l90-rj",
width: 226, width: 226,
height: 226, height: 226,
), ),
Thumbnail( Thumbnail(
url: "https://lh3.googleusercontent.com/BKgnW_-hapCHk599AtRfTYZGdXVIo0C4bJp1Bh7qUpGK7fNAXGW8Bhv2x-ukeFM8cuxKbGqqGaTo8fZASA=w544-h544-l90-rj", url: "https://lh3.googleusercontent.com/p6Fy9_hfUY-Y6BXzdsIfOKpSZBhjGkDrpPcbA8DNrR1zvCFUL7p3cCeUywx8PxQ6FX7eb30MsWq3fpn2=w544-h544-l90-rj",
width: 544, width: 544,
height: 544, height: 544,
), ),
], ],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"), artist_id: Some("UCwem2sj-QUJCiWiPAo9JuAw"),
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_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
playlist_id: Some("OLAK5uy_kODvYZ5CEpYdtd4VPsmg0eRTlpazG0dvA"), playlist_id: Some("OLAK5uy_kdNoJ-uBZrMFvZCHQpkCwz9kmAELojcKs"),
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
cover: "[cover]", cover: "[cover]",
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
description: None, description: None,
album_type: Show, album_type: Show,
year: Some(2022), year: Some(2015),
by_va: false, by_va: false,
tracks: [ tracks: [
TrackItem( TrackItem(
id: "lSbKz5LWvKE", id: "ZIjGPc6vG0Y",
name: "Achtung, Waldbrand - Teil 1", name: "Kapitel 1 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(229), duration: Some(123),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "fdO6gu4qjRw", id: "Wqrg6ceVgK8",
name: "Achtung, Waldbrand - Teil 2", name: "Kapitel 2 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(235), duration: Some(122),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "muCxstXirvY", id: "oWlZR0mU3fQ",
name: "Achtung, Waldbrand - Teil 3", name: "Kapitel 3 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(197), duration: Some(125),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "aG1N0vo__Ng", id: "pcdWTaNK_w4",
name: "Eiszeit - Teil 1", name: "Kapitel 4 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(186), duration: Some(181),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "roHhLNYS9yo", id: "hJhcL8A4AEI",
name: "Eiszeit - Teil 2", name: "Kapitel 5 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(188), duration: Some(123),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "nJ49NuLvcAw", id: "ROwmS2PzXiE",
name: "Eiszeit - Teil 3", name: "Kapitel 6 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(205), duration: Some(123),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "Me119D570h0", id: "u5fduXogSKU",
name: "Eiszeit - Teil 4", name: "Kapitel 7 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(219), duration: Some(143),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "YXnRLK-qKG8", id: "37aeBkbW5Y4",
name: "Im Sinkloch - Teil 1", name: "Kapitel 8 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(240), duration: Some(128),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "A61wz1jz9X0", id: "Hn2701yNst0",
name: "Im Sinkloch - Teil 2", name: "Kapitel 9 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(239), duration: Some(124),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "u_S08EJOTUg", id: "dQiTv0BdwwA",
name: "Im Sinkloch - Teil 3", name: "Kapitel 10 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(197), duration: Some(123),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "0qwYJihV1EU", id: "DXYXlAljscM",
name: "Vorsicht, heiß - Teil 1", name: "Kapitel 11 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(201), duration: Some(166),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "zjhoyTnEzuQ", id: "mfbmff4MQ2M",
name: "Vorsicht, heiß - Teil 2", name: "Kapitel 12 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(187), duration: Some(148),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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: "oDjDd0UBzAY", id: "mHkR5PHlHpQ",
name: "Vorsicht, heiß - Teil 3", name: "Kapitel 13 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(183), duration: Some(136),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
is_video: false, is_video: false,
@ -293,26 +293,299 @@ MusicAlbum(
by_va: false, by_va: false,
), ),
TrackItem( TrackItem(
id: "_3-WVmqgi-Q", id: "VBnKIZ1b5Cg",
name: "Vorsicht, heiß - Teil 4", name: "Kapitel 14 - Die Abenteuer des Odysseus. Hörspiel",
duration: Some(193), duration: Some(149),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "Kingdom Force", name: "Dimiter Inkiow",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "Folge 2: Eiszeit (Das Original-Hörspiel zur TV-Serie)", name: "Die Abenteuer des Odysseus. Hörspiel",
)), )),
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_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
playlist_id: Some("OLAK5uy_kODvYZ5CEpYdtd4VPsmg0eRTlpazG0dvA"), playlist_id: Some("OLAK5uy_kdNoJ-uBZrMFvZCHQpkCwz9kmAELojcKs"),
name: "[name]", name: "[name]",
cover: "[cover]", cover: "[cover]",
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
description: "[description]", description: "[description]",
album_type: Show, album_type: Show,
year: Some(2022), year: Some(2015),
by_va: false, by_va: false,
tracks: [ tracks: [
TrackItem( TrackItem(
id: "lSbKz5LWvKE", id: "ZIjGPc6vG0Y",
name: "[name]", name: "[name]",
duration: Some(229), duration: Some(123),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "fdO6gu4qjRw", id: "Wqrg6ceVgK8",
name: "[name]", name: "[name]",
duration: Some(235), duration: Some(122),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "muCxstXirvY", id: "oWlZR0mU3fQ",
name: "[name]", name: "[name]",
duration: Some(197), duration: Some(125),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "aG1N0vo__Ng", id: "pcdWTaNK_w4",
name: "[name]", name: "[name]",
duration: Some(186), duration: Some(181),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "roHhLNYS9yo", id: "hJhcL8A4AEI",
name: "[name]", name: "[name]",
duration: Some(188), duration: Some(123),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "nJ49NuLvcAw", id: "ROwmS2PzXiE",
name: "[name]", name: "[name]",
duration: Some(205), duration: Some(123),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "Me119D570h0", id: "u5fduXogSKU",
name: "[name]", name: "[name]",
duration: Some(219), duration: Some(143),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "YXnRLK-qKG8", id: "37aeBkbW5Y4",
name: "[name]", name: "[name]",
duration: Some(240), duration: Some(128),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "A61wz1jz9X0", id: "Hn2701yNst0",
name: "[name]", name: "[name]",
duration: Some(239), duration: Some(124),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "u_S08EJOTUg", id: "dQiTv0BdwwA",
name: "[name]", name: "[name]",
duration: Some(197), duration: Some(123),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "0qwYJihV1EU", id: "DXYXlAljscM",
name: "[name]", name: "[name]",
duration: Some(201), duration: Some(166),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "zjhoyTnEzuQ", id: "mfbmff4MQ2M",
name: "[name]", name: "[name]",
duration: Some(187), duration: Some(148),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "oDjDd0UBzAY", id: "mHkR5PHlHpQ",
name: "[name]", name: "[name]",
duration: Some(183), duration: Some(136),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
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: "_3-WVmqgi-Q", id: "VBnKIZ1b5Cg",
name: "[name]", name: "[name]",
duration: Some(193), duration: Some(149),
cover: [], cover: [],
artists: [ artists: [
ArtistId( ArtistId(
id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
name: "[name]", name: "[name]",
), ),
], ],
artist_id: Some("UCNoyEM0e2A7WlsBmP2w3avg"), artist_id: Some("UCAotr_lJ3JJ79DPRlA7k47w"),
album: Some(AlbumId( album: Some(AlbumId(
id: "MPREb_cwzk8EUwypZ", id: "MPREb_aDDw2kVEFtM",
name: "[name]", name: "[name]",
)), )),
view_count: "[view_count]", view_count: "[view_count]",
@ -313,6 +313,279 @@ 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,7 +300,6 @@ 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)]
@ -316,6 +315,24 @@ 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]
@ -1448,12 +1465,12 @@ fn music_playlist_not_found(rp: RustyPipe) {
} }
#[rstest] #[rstest]
#[case::one_artist("one_artist", "MPREb_nlBWQROfvjo")] #[case::one_artist("one_artist", "MPREb_mXdQvyCqLnx")]
#[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_cwzk8EUwypZ")] #[case::show("show", "MPREb_aDDw2kVEFtM")]
#[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")]
@ -1495,7 +1512,7 @@ fn music_album_not_found(rp: RustyPipe) {
} }
#[rstest] #[rstest]
#[case::basic_all("basic_all", "UC7cl4MmM6ZZ2TcFyMk_b4pg", true, 15, 2)] #[case::basic_all("basic_all", "UCNezSmfQ8VIgvHUNj1Gzx6A", true, 15, 1)]
// 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)]
@ -1521,7 +1538,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(), 30000, "subscribers"); assert_gte(artist.subscriber_count.unwrap(), 10_000, "subscribers");
} }
artist.tracks.iter().for_each(|t| { artist.tracks.iter().for_each(|t| {
@ -1888,12 +1905,12 @@ fn music_search_episode(rp: RustyPipe, #[case] videos: bool) {
false false
)] )]
#[case::album( #[case::album(
"märchen enden", "demi",
"Märchen enden gut", "Demi",
"MPREb_nlBWQROfvjo", "MPREb_mXdQvyCqLnx",
"Oonagh", "Demi Lovato",
"UC_vmjW5e1xEHhYjY2a0kK1A", "UCwem2sj-QUJCiWiPAo9JuAw",
2016, 2013,
AlbumType::Album, AlbumType::Album,
true true
)] )]