feat: add music artists
This commit is contained in:
parent
d3aacc77aa
commit
6f07095757
49 changed files with 139065 additions and 821 deletions
File diff suppressed because it is too large
Load diff
299
tests/snapshots/youtube__music_album_basic.snap
Normal file
299
tests/snapshots/youtube__music_album_basic.snap
Normal file
|
|
@ -0,0 +1,299 @@
|
|||
---
|
||||
source: tests/youtube.rs
|
||||
expression: artist
|
||||
---
|
||||
MusicArtist(
|
||||
id: "UC7cl4MmM6ZZ2TcFyMk_b4pg",
|
||||
name: "Unheilig",
|
||||
header_image: "[header_image]",
|
||||
description: "Unheilig was a German band that featured a variety of influences, including various pop and electronic styles as well as harder, nihilistic hard rock. The band was founded in 1999 and principally consisted of singer Bernd Heinrich \"Der Graf\" along with various musical partners. He was accompanied for live shows with musicians Christoph \"Licky\" Termühlen, Henning Verlage, and Martin \"Potti\" Potthoff. The group\'s debut, Phosphor, came out in 2000.\n\nFrom Wikipedia (https://en.wikipedia.org/wiki/Unheilig) under Creative Commons Attribution CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/legalcode)",
|
||||
wikipedia_url: Some("https://en.wikipedia.org/wiki/Unheilig"),
|
||||
subscriber_count: "[subscriber_count]",
|
||||
tracks: "[tracks]",
|
||||
albums: [
|
||||
AlbumItem(
|
||||
id: "MPREb_43NWLzXChnh",
|
||||
name: "Grosse Freiheit (Digital Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_585fV7eqUP8",
|
||||
name: "Gipfelstürmer",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_6PEkIQE7sWY",
|
||||
name: "An deiner Seite (Online Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Ep,
|
||||
year: Some(2008),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_88p7e6nBtgz",
|
||||
name: "Lichter der Stadt",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2012),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_Md2aZrjaqHX",
|
||||
name: "Stille Winternacht",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2021),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_OW1GOBZ64ap",
|
||||
name: "Hallo Leben",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2018),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_QyGCcLWExXj",
|
||||
name: "Als wär\'s das erste Mal (Exklusive Piano Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_R3p5kDRIGKL",
|
||||
name: "Astronaut",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2006),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_TiIBQqCFttT",
|
||||
name: "Von Mensch zu Mensch",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2016),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_U9HLD8nF7H5",
|
||||
name: "Der Himmel über mir",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2017),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_V0FEmw2pj2u",
|
||||
name: "Sonnentag",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2017),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_WYx2c0e95TA",
|
||||
name: "Spiegelbild",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2008),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_Yj49s4xy7fM",
|
||||
name: "Lichtermeer",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2021),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_f4MhYbccbPi",
|
||||
name: "Moderne Zeiten",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2006),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_kW2NAMSZElX",
|
||||
name: "Glück auf das Leben",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2015),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_n1H3JiFyGkv",
|
||||
name: "Mein Berg (EP)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Ep,
|
||||
year: Some(2015),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_pWpeXxATZYb",
|
||||
name: "Wir sind alle wie eins",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_rHhaDLqalbT",
|
||||
name: "Winter (EP)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Ep,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_saXgTKNPaSu",
|
||||
name: "Zeit zu gehen",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_wmSecJVDwPB",
|
||||
name: "Puppenspiel",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2008),
|
||||
by_va: false,
|
||||
),
|
||||
],
|
||||
playlists: "[playlists]",
|
||||
similar_artists: "[artists]",
|
||||
tracks_playlist_id: Some("OLAK5uy_n6aX-F_lCQxgyTIv4FJhp78bXV93b9NUM"),
|
||||
videos_playlist_id: Some("OLAK5uy_nrePwvOEzmO7SydszEFfCDu8gAJxKfFtw"),
|
||||
)
|
||||
621
tests/snapshots/youtube__music_album_basic_all.snap
Normal file
621
tests/snapshots/youtube__music_album_basic_all.snap
Normal file
|
|
@ -0,0 +1,621 @@
|
|||
---
|
||||
source: tests/youtube.rs
|
||||
expression: artist
|
||||
---
|
||||
MusicArtist(
|
||||
id: "UC7cl4MmM6ZZ2TcFyMk_b4pg",
|
||||
name: "Unheilig",
|
||||
header_image: "[header_image]",
|
||||
description: "Unheilig was a German band that featured a variety of influences, including various pop and electronic styles as well as harder, nihilistic hard rock. The band was founded in 1999 and principally consisted of singer Bernd Heinrich \"Der Graf\" along with various musical partners. He was accompanied for live shows with musicians Christoph \"Licky\" Termühlen, Henning Verlage, and Martin \"Potti\" Potthoff. The group\'s debut, Phosphor, came out in 2000.\n\nFrom Wikipedia (https://en.wikipedia.org/wiki/Unheilig) under Creative Commons Attribution CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/legalcode)",
|
||||
wikipedia_url: Some("https://en.wikipedia.org/wiki/Unheilig"),
|
||||
subscriber_count: "[subscriber_count]",
|
||||
tracks: "[tracks]",
|
||||
albums: [
|
||||
AlbumItem(
|
||||
id: "MPREb_43NWLzXChnh",
|
||||
name: "Grosse Freiheit (Digital Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_585fV7eqUP8",
|
||||
name: "Gipfelstürmer",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_6PEkIQE7sWY",
|
||||
name: "An deiner Seite (Online Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Ep,
|
||||
year: Some(2008),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_7nIPO6oeETY",
|
||||
name: "Lichter der Stadt - Live",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2012),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_88p7e6nBtgz",
|
||||
name: "Lichter der Stadt",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2012),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_8rukEzdytkN",
|
||||
name: "Gipfelstürmer (Live in Österreich)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2015),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_BJKvCuKo7nJ",
|
||||
name: "MTV Unplugged \"Unter Dampf – Ohne Strom\" (Deluxe Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2015),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_EAiIEvINDHB",
|
||||
name: "Stark",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2012),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_HrCgErOdgCv",
|
||||
name: "Freiheit",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2004),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_Md2aZrjaqHX",
|
||||
name: "Stille Winternacht",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2021),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_OW1GOBZ64ap",
|
||||
name: "Hallo Leben",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2018),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_Oq0WKqNwSVY",
|
||||
name: "Das 2. Gebot",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2003),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_QEClJsuO9xM",
|
||||
name: "So wie Du warst",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2012),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_QyGCcLWExXj",
|
||||
name: "Als wär\'s das erste Mal (Exklusive Piano Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_R3p5kDRIGKL",
|
||||
name: "Astronaut",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2006),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_T4fJMmrfxXk",
|
||||
name: "Phosphor",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2000),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_TiIBQqCFttT",
|
||||
name: "Von Mensch zu Mensch",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2016),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_U9HLD8nF7H5",
|
||||
name: "Der Himmel über mir",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2017),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_U9dMPQUeR9q",
|
||||
name: "Wie wir waren (feat. Andreas Bourani)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2012),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_V0FEmw2pj2u",
|
||||
name: "Sonnentag",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2017),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_WYx2c0e95TA",
|
||||
name: "Spiegelbild",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2008),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_Wc8Ehka0R0T",
|
||||
name: "Lichterland - Best Of (Deluxe)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2021),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_Yj49s4xy7fM",
|
||||
name: "Lichtermeer",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2021),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_baIxpKBcYbF",
|
||||
name: "Schutzengel",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Ep,
|
||||
year: Some(2003),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_eiYjUXT1Mn3",
|
||||
name: "Geboren um zu leben",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_f4MhYbccbPi",
|
||||
name: "Moderne Zeiten",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2006),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_gHlGAdNjEZI",
|
||||
name: "Für immer",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_kW2NAMSZElX",
|
||||
name: "Glück auf das Leben",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2015),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_m5U1xZasDSy",
|
||||
name: "Frohes Fest",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2002),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_n1H3JiFyGkv",
|
||||
name: "Mein Berg (EP)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Ep,
|
||||
year: Some(2015),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_ohcGTZrqKPZ",
|
||||
name: "Zelluloid",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2004),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_pWpeXxATZYb",
|
||||
name: "Wir sind alle wie eins",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_ptO8gh250LP",
|
||||
name: "Maschine",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Ep,
|
||||
year: Some(2003),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_qbJv3f0ijrk",
|
||||
name: "Alles hat seine Zeit (Best Of Unheilig 1999 - 2014)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2007),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_rHhaDLqalbT",
|
||||
name: "Winter (EP)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Ep,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_rdrfznTDhSX",
|
||||
name: "Lichter der Stadt",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2012),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_saXgTKNPaSu",
|
||||
name: "Zeit zu gehen",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_t6zStv8YrVG",
|
||||
name: "Unter deiner Flagge",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_vM0cMpn8pHh",
|
||||
name: "Puppenspiel Live - Vorhang auf!",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2008),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_wgm3k1qxpbF",
|
||||
name: "Grosse Freiheit Live",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_wmSecJVDwPB",
|
||||
name: "Puppenspiel",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2008),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_xCehp2mGhCk",
|
||||
name: "Winter",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2010),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_y5fUQ2toJwT",
|
||||
name: "Best Of Vol. 2 - Rares Gold (Deluxe Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC7cl4MmM6ZZ2TcFyMk_b4pg"),
|
||||
name: "Unheilig",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2017),
|
||||
by_va: false,
|
||||
),
|
||||
],
|
||||
playlists: "[playlists]",
|
||||
similar_artists: "[artists]",
|
||||
tracks_playlist_id: Some("OLAK5uy_n6aX-F_lCQxgyTIv4FJhp78bXV93b9NUM"),
|
||||
videos_playlist_id: Some("OLAK5uy_nrePwvOEzmO7SydszEFfCDu8gAJxKfFtw"),
|
||||
)
|
||||
|
|
@ -20,7 +20,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "aGd3VKSOTxY",
|
||||
title: "Ich wache auf",
|
||||
duration: 221,
|
||||
duration: Some(221),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -39,7 +39,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "lhPOMUjV4rE",
|
||||
title: "Waldbrand",
|
||||
duration: 208,
|
||||
duration: Some(208),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -58,7 +58,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "Bu26uFtpt58",
|
||||
title: "Verlernt",
|
||||
duration: 223,
|
||||
duration: Some(223),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -77,7 +77,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "RgwNqqiVqdY",
|
||||
title: "In Farbe",
|
||||
duration: 221,
|
||||
duration: Some(221),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -96,7 +96,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "2TuOh30XbCI",
|
||||
title: "Stadt im Hinterland",
|
||||
duration: 197,
|
||||
duration: Some(197),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
|
|||
18
tests/snapshots/youtube__music_album_no_artist.snap
Normal file
18
tests/snapshots/youtube__music_album_no_artist.snap
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
source: tests/youtube.rs
|
||||
expression: artist
|
||||
---
|
||||
MusicArtist(
|
||||
id: "UCh8gHdtzO2tXd593_bjErWg",
|
||||
name: "Doobydobap",
|
||||
header_image: "[header_image]",
|
||||
description: "",
|
||||
wikipedia_url: None,
|
||||
subscriber_count: "[subscriber_count]",
|
||||
tracks: "[tracks]",
|
||||
albums: [],
|
||||
playlists: "[playlists]",
|
||||
similar_artists: "[artists]",
|
||||
tracks_playlist_id: None,
|
||||
videos_playlist_id: None,
|
||||
)
|
||||
229
tests/snapshots/youtube__music_album_no_more_albums.snap
Normal file
229
tests/snapshots/youtube__music_album_no_more_albums.snap
Normal file
|
|
@ -0,0 +1,229 @@
|
|||
---
|
||||
source: tests/youtube.rs
|
||||
expression: artist
|
||||
---
|
||||
MusicArtist(
|
||||
id: "UC_vmjW5e1xEHhYjY2a0kK1A",
|
||||
name: "Oonagh",
|
||||
header_image: "[header_image]",
|
||||
description: "Senta-Sofia Delliponti is a German singer, songwriter and actress. Since January 2014, she used the stage name Oonagh, until she changed it to Senta in 2022. Her signature musical style is inspired by the mystical lore of J. R. R. Tolkien\'s universe and by ethnic sounds throughout the world.\n\nFrom Wikipedia (https://en.wikipedia.org/wiki/Oonagh_(singer)) under Creative Commons Attribution CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/legalcode)",
|
||||
wikipedia_url: Some("https://en.wikipedia.org/wiki/Oonagh_"),
|
||||
subscriber_count: "[subscriber_count]",
|
||||
tracks: "[tracks]",
|
||||
albums: [
|
||||
AlbumItem(
|
||||
id: "MPREb_2vYEpZteTjN",
|
||||
name: "Willst du noch träumen (feat. Elbkinder (Rolf Zuckowski))",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2016),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_76jQdnW2e6m",
|
||||
name: "Gäa (Akustik Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_8weOuwHWdSU",
|
||||
name: "Oonagh",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_Gnj2M6UQmfX",
|
||||
name: "Ich sehe was, was Du nicht siehst (Online Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2007),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_GyH43gCvdM5",
|
||||
name: "Best Of",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2020),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_S6P0cjIdHIF",
|
||||
name: "Zauberwald",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2017),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_WAzaITm6K4l",
|
||||
name: "Zeit der Sommernächte (Single Mix)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2017),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_WfEYxWGLcMx",
|
||||
name: "Du bist genug (Single Mix)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2020),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_eNje8weTxgK",
|
||||
name: "Aulë und Yavanna (Jungle-Mix)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2016),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_imDwIcPAjFy",
|
||||
name: "Aeria (Sartoranta - Fan Edition)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2015),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_jovYz4SubiU",
|
||||
name: "Eine neue Zeit",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2019),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_kWjFiCq7EdM",
|
||||
name: "Scheissegal (Digital Version)",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2006),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_nlBWQROfvjo",
|
||||
name: "Märchen enden gut",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Album,
|
||||
year: Some(2016),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_oWACs9fccqd",
|
||||
name: "Kuliko Jana - Eine neue Zeit",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2019),
|
||||
by_va: false,
|
||||
),
|
||||
AlbumItem(
|
||||
id: "MPREb_vuyS6nIsNeg",
|
||||
name: "Gäa",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
|
||||
name: "Oonagh",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2014),
|
||||
by_va: false,
|
||||
),
|
||||
],
|
||||
playlists: "[playlists]",
|
||||
similar_artists: "[artists]",
|
||||
tracks_playlist_id: Some("OLAK5uy_m6843aeUO05cz_t1seql2dQ9eUgwyuOXI"),
|
||||
videos_playlist_id: None,
|
||||
)
|
||||
|
|
@ -20,7 +20,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "g0iRiJ_ck48",
|
||||
title: "Aulë und Yavanna",
|
||||
duration: 216,
|
||||
duration: Some(216),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -39,7 +39,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "rREEBXp0y9s",
|
||||
title: "Numenor",
|
||||
duration: 224,
|
||||
duration: Some(224),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -58,7 +58,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "zvU5Y8Q19hU",
|
||||
title: "Das Mädchen und die Liebe (feat. Santiano)",
|
||||
duration: 176,
|
||||
duration: Some(176),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -77,7 +77,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "ARKLrzzTQA0",
|
||||
title: "Niënna",
|
||||
duration: 215,
|
||||
duration: Some(215),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -96,7 +96,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "tstLgN8A_Ng",
|
||||
title: "Der fahle Mond",
|
||||
duration: 268,
|
||||
duration: Some(268),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -115,7 +115,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "k2DjgQOY3Ts",
|
||||
title: "Weise den Weg",
|
||||
duration: 202,
|
||||
duration: Some(202),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -134,7 +134,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "azHwhecxEsI",
|
||||
title: "Zeit der Sommernächte",
|
||||
duration: 185,
|
||||
duration: Some(185),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -153,7 +153,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "_FcsdYIQ2co",
|
||||
title: "Märchen enden gut",
|
||||
duration: 226,
|
||||
duration: Some(226),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -172,7 +172,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "27bOWEbshyE",
|
||||
title: "Das Mädchen und der Tod",
|
||||
duration: 207,
|
||||
duration: Some(207),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -191,7 +191,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "riD_3oZwt8w",
|
||||
title: "Wir sehn uns wieder",
|
||||
duration: 211,
|
||||
duration: Some(211),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -210,7 +210,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "8GNvjF3no9s",
|
||||
title: "Tanz mit mir",
|
||||
duration: 179,
|
||||
duration: Some(179),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -229,7 +229,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "YHMFzf1uN2U",
|
||||
title: "Nachtigall",
|
||||
duration: 218,
|
||||
duration: Some(218),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -248,7 +248,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "jvV-z5F3oAo",
|
||||
title: "Gayatri Mantra",
|
||||
duration: 277,
|
||||
duration: Some(277),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -267,7 +267,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "u8_9cxlrh8k",
|
||||
title: "Sing mir deine Lieder",
|
||||
duration: 204,
|
||||
duration: Some(204),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -286,7 +286,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "gSvKcvM1Wk0",
|
||||
title: "Laurië lantar",
|
||||
duration: 202,
|
||||
duration: Some(202),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -305,7 +305,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "wQHgKRJ0pDQ",
|
||||
title: "Wächter vor dem Tor",
|
||||
duration: 222,
|
||||
duration: Some(222),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -324,7 +324,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "Ckz5i6-hzf0",
|
||||
title: "Stroh zu Gold",
|
||||
duration: 177,
|
||||
duration: Some(177),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -343,7 +343,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "y5zuUgyFqrc",
|
||||
title: "Sonnenwendnacht",
|
||||
duration: 220,
|
||||
duration: Some(220),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
|
|||
33
tests/snapshots/youtube__music_album_only_singles.snap
Normal file
33
tests/snapshots/youtube__music_album_only_singles.snap
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
source: tests/youtube.rs
|
||||
expression: artist
|
||||
---
|
||||
MusicArtist(
|
||||
id: "UCfwCE5VhPMGxNPFxtVv7lRw",
|
||||
name: "Sulli",
|
||||
header_image: "[header_image]",
|
||||
description: "Choi Jin-ri, better known by her stage name Sulli, was a South Korean actress and singer. She first made her debut as a child actress, appearing as a supporting cast member on the SBS historical drama Ballad of Seodong. Following this, she earned a number of guest roles, appearing in the television series Love Needs a Miracle and Drama City, and the film Vacation. She then subsequently appeared in the independent films Punch Lady and BA:BO, the former being her first time cast in a substantial dramatic role.\nAfter signing a record deal with SM Entertainment, Sulli rose to prominence as a member of the girl group f(x) formed in 2009. The group achieved both critical and commercial success, with four Korean number-one singles and international recognition after becoming the first K-pop act to perform at SXSW. Concurrently with her music career, Sulli returned to acting by starring in the SBS romantic comedy series, To the Beautiful You, a Korean adaptation of the shōjo manga Hana-Kimi where her performance was positively received and earned her two SBS Drama Awards and a nomination at the 49th Paeksang Arts Awards.\n\nFrom Wikipedia (https://en.wikipedia.org/wiki/Sulli) under Creative Commons Attribution CC-BY-SA 3.0 (http://creativecommons.org/licenses/by-sa/3.0/legalcode)",
|
||||
wikipedia_url: Some("https://en.wikipedia.org/wiki/Sulli"),
|
||||
subscriber_count: "[subscriber_count]",
|
||||
tracks: "[tracks]",
|
||||
albums: [
|
||||
AlbumItem(
|
||||
id: "MPREb_vq8dZfFBEdx",
|
||||
name: "고블린 Goblin",
|
||||
cover: "[cover]",
|
||||
artists: [
|
||||
ArtistId(
|
||||
id: Some("UCfwCE5VhPMGxNPFxtVv7lRw"),
|
||||
name: "Sulli",
|
||||
),
|
||||
],
|
||||
album_type: Single,
|
||||
year: Some(2019),
|
||||
by_va: false,
|
||||
),
|
||||
],
|
||||
playlists: "[playlists]",
|
||||
similar_artists: "[artists]",
|
||||
tracks_playlist_id: None,
|
||||
videos_playlist_id: Some("OLAK5uy_lmH3iVq6lqjsnLkBWzpvRTh0DidLzbU-I"),
|
||||
)
|
||||
|
|
@ -20,7 +20,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "lSbKz5LWvKE",
|
||||
title: "Achtung, Waldbrand - Teil 1",
|
||||
duration: 229,
|
||||
duration: Some(229),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -39,7 +39,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "fdO6gu4qjRw",
|
||||
title: "Achtung, Waldbrand - Teil 2",
|
||||
duration: 235,
|
||||
duration: Some(235),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -58,7 +58,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "muCxstXirvY",
|
||||
title: "Achtung, Waldbrand - Teil 3",
|
||||
duration: 197,
|
||||
duration: Some(197),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -77,7 +77,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "aG1N0vo__Ng",
|
||||
title: "Eiszeit - Teil 1",
|
||||
duration: 186,
|
||||
duration: Some(186),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -96,7 +96,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "roHhLNYS9yo",
|
||||
title: "Eiszeit - Teil 2",
|
||||
duration: 188,
|
||||
duration: Some(188),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -115,7 +115,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "nJ49NuLvcAw",
|
||||
title: "Eiszeit - Teil 3",
|
||||
duration: 205,
|
||||
duration: Some(205),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -134,7 +134,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "Me119D570h0",
|
||||
title: "Eiszeit - Teil 4",
|
||||
duration: 219,
|
||||
duration: Some(219),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -153,7 +153,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "YXnRLK-qKG8",
|
||||
title: "Im Sinkloch - Teil 1",
|
||||
duration: 240,
|
||||
duration: Some(240),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -172,7 +172,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "A61wz1jz9X0",
|
||||
title: "Im Sinkloch - Teil 2",
|
||||
duration: 239,
|
||||
duration: Some(239),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -191,7 +191,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "u_S08EJOTUg",
|
||||
title: "Im Sinkloch - Teil 3",
|
||||
duration: 197,
|
||||
duration: Some(197),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -210,7 +210,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "0qwYJihV1EU",
|
||||
title: "Vorsicht, heiß - Teil 1",
|
||||
duration: 201,
|
||||
duration: Some(201),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -229,7 +229,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "zjhoyTnEzuQ",
|
||||
title: "Vorsicht, heiß - Teil 2",
|
||||
duration: 187,
|
||||
duration: Some(187),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -248,7 +248,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "oDjDd0UBzAY",
|
||||
title: "Vorsicht, heiß - Teil 3",
|
||||
duration: 183,
|
||||
duration: Some(183),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -267,7 +267,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "_3-WVmqgi-Q",
|
||||
title: "Vorsicht, heiß - Teil 4",
|
||||
duration: 193,
|
||||
duration: Some(193),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "XX0epju-YvY",
|
||||
title: "Der Himmel reißt auf",
|
||||
duration: 183,
|
||||
duration: Some(183),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "8IqLxg0GqXc",
|
||||
title: "Waka Boom (My Way) (feat. Lee Young Ji)",
|
||||
duration: 274,
|
||||
duration: Some(274),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -34,7 +34,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "9WYpLYAEub0",
|
||||
title: "AURA",
|
||||
duration: 216,
|
||||
duration: Some(216),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -53,7 +53,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "R48tE237bW4",
|
||||
title: "THE GIRLS (Can’t turn me down)",
|
||||
duration: 239,
|
||||
duration: Some(239),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -72,7 +72,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "-UzsoR6z-vg",
|
||||
title: "Red Sun!",
|
||||
duration: 254,
|
||||
duration: Some(254),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -91,7 +91,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "kbNVyn8Ex28",
|
||||
title: "POSE",
|
||||
duration: 187,
|
||||
duration: Some(187),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
@ -110,7 +110,7 @@ MusicAlbum(
|
|||
TrackItem(
|
||||
id: "NJrQZUzWP5Y",
|
||||
title: "Whistle",
|
||||
duration: 224,
|
||||
duration: Some(224),
|
||||
cover: [],
|
||||
artists: [
|
||||
ArtistId(
|
||||
|
|
|
|||
|
|
@ -1353,6 +1353,84 @@ async fn music_album_not_found() {
|
|||
);
|
||||
}
|
||||
|
||||
#[rstest]
|
||||
#[case::basic_all("basic_all", "UC7cl4MmM6ZZ2TcFyMk_b4pg", true, 15, 2)]
|
||||
#[case::basic("basic", "UC7cl4MmM6ZZ2TcFyMk_b4pg", false, 15, 2)]
|
||||
#[case::no_more_albums("no_more_albums", "UC_vmjW5e1xEHhYjY2a0kK1A", true, 12, 0)]
|
||||
#[case::only_singles("only_singles", "UCfwCE5VhPMGxNPFxtVv7lRw", false, 13, 0)]
|
||||
#[case::no_artist("no_artist", "UCh8gHdtzO2tXd593_bjErWg", false, 0, 2)]
|
||||
#[tokio::test]
|
||||
async fn music_artist(
|
||||
#[case] name: &str,
|
||||
#[case] id: &str,
|
||||
#[case] all_albums: bool,
|
||||
#[case] min_tracks: usize,
|
||||
#[case] min_playlists: usize,
|
||||
) {
|
||||
let rp = RustyPipe::builder().strict().build();
|
||||
let mut artist = rp.query().music_artist(id, all_albums).await.unwrap();
|
||||
|
||||
assert_gte(artist.tracks.len(), min_tracks, "tracks");
|
||||
assert_gte(artist.playlists.len(), min_playlists, "playlists");
|
||||
|
||||
if name == "no_artist" {
|
||||
assert!(artist.similar_artists.is_empty());
|
||||
assert!(artist.subscriber_count.is_none());
|
||||
} else {
|
||||
assert_gte(artist.subscriber_count.unwrap(), 30000, "subscribers");
|
||||
}
|
||||
|
||||
// Check images
|
||||
assert!(!artist.header_image.is_empty(), "got no header image");
|
||||
artist
|
||||
.tracks
|
||||
.iter()
|
||||
.for_each(|t| assert!(!t.cover.is_empty()));
|
||||
artist
|
||||
.albums
|
||||
.iter()
|
||||
.for_each(|t| assert!(!t.cover.is_empty()));
|
||||
artist
|
||||
.playlists
|
||||
.iter()
|
||||
.for_each(|t| assert!(!t.thumbnail.is_empty()));
|
||||
artist
|
||||
.similar_artists
|
||||
.iter()
|
||||
.for_each(|t| assert!(!t.avatar.is_empty()));
|
||||
|
||||
// Sort albums to ensure consistent order
|
||||
artist.albums.sort_by_key(|a| a.id.to_owned());
|
||||
|
||||
insta::assert_ron_snapshot!(format!("music_album_{}", name), artist, {
|
||||
".header_image" => "[header_image]",
|
||||
".subscriber_count" => "[subscriber_count]",
|
||||
".albums[].cover" => "[cover]",
|
||||
".tracks" => "[tracks]",
|
||||
".playlists" => "[playlists]",
|
||||
".similar_artists" => "[artists]",
|
||||
});
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn music_artist_not_found() {
|
||||
let rp = RustyPipe::builder().strict().build();
|
||||
let err = rp
|
||||
.query()
|
||||
.music_artist("UC7cl4MmM6ZZ2TcFyMk_b4pq", false)
|
||||
.await
|
||||
.unwrap_err();
|
||||
|
||||
assert!(
|
||||
matches!(
|
||||
err,
|
||||
Error::Extraction(ExtractionError::ContentUnavailable(_))
|
||||
),
|
||||
"got: {}",
|
||||
err
|
||||
);
|
||||
}
|
||||
|
||||
#[rstest]
|
||||
#[case::default(false)]
|
||||
#[case::typo(true)]
|
||||
|
|
@ -1384,7 +1462,7 @@ async fn music_search(#[case] typo: bool) {
|
|||
dbg!(&track);
|
||||
assert_eq!(track.id, "ZeerrnuLi5E");
|
||||
assert_eq!(track.title, "Black Mamba");
|
||||
assert_eq!(track.duration, 230);
|
||||
assert_eq!(track.duration.unwrap(), 230);
|
||||
assert!(!track.cover.is_empty(), "got no cover");
|
||||
|
||||
assert_eq!(track.artists.len(), 1);
|
||||
|
|
@ -1428,12 +1506,12 @@ async fn music_search_tracks(#[case] videos: bool) {
|
|||
|
||||
if videos {
|
||||
assert_eq!(track.id, "ZeerrnuLi5E");
|
||||
assert_eq!(track.duration, 230);
|
||||
assert_eq!(track.duration.unwrap(), 230);
|
||||
assert_eq!(track.album, None);
|
||||
assert_gte(track.view_count.unwrap(), 230_000_000, "views");
|
||||
} else {
|
||||
assert_eq!(track.id, "BL-aIpCLWnU");
|
||||
assert_eq!(track.duration, 175);
|
||||
assert_eq!(track.duration.unwrap(), 175);
|
||||
|
||||
let album = track.album.as_ref().unwrap();
|
||||
assert_eq!(album.id, "MPREb_OpHWHwyNOuY");
|
||||
|
|
|
|||
Reference in a new issue