feat: add music artists

This commit is contained in:
ThetaDev 2022-11-06 18:30:06 +01:00
parent d3aacc77aa
commit 6f07095757
49 changed files with 139065 additions and 821 deletions

View file

@ -21,7 +21,7 @@ inspired by [NewPipe](https://github.com/TeamNewPipe/NewPipeExtractor).
- [X] **Playlist**
- [X] **Album**
- [ ] **Artist**
- [X] **Artist**
- [X] **Search**
- [ ] **Search suggestions**
- [ ] **Moods**

View file

@ -1,6 +1,8 @@
use std::{
fs::File,
ops::Sub,
path::{Path, PathBuf},
sync::Mutex,
};
use rustypipe::{
@ -45,6 +47,7 @@ pub async fn download_testfiles(project_root: &Path) {
music_search_artists(&testfiles).await;
music_search_playlists(&testfiles).await;
music_search_cont(&testfiles).await;
music_artist(&testfiles).await;
}
const CLIENT_TYPES: [ClientType; 5] = [
@ -58,28 +61,54 @@ const CLIENT_TYPES: [ClientType; 5] = [
/// Store pretty-printed response json
pub struct TestFileReporter {
path: PathBuf,
count: Mutex<u8>,
}
impl TestFileReporter {
pub fn new<P: AsRef<Path>>(path: P) -> Self {
Self {
path: path.as_ref().to_path_buf(),
count: Mutex::new(0),
}
}
}
impl Reporter for TestFileReporter {
fn report(&self, report: &Report) {
if report.level != rustypipe::report::Level::DBG {
println!("Error: {}", report.error.as_deref().unwrap_or_default());
return;
}
let mut root = self.path.clone();
root.set_file_name("");
std::fs::create_dir_all(root).unwrap();
let count = {
let mut cl = self.count.lock().unwrap();
*cl += 1;
cl.sub(1)
};
let path = if count == 0 {
self.path.clone()
} else {
let mut p = self.path.clone();
p.set_file_name(format!(
"{}_{}.{}",
p.file_stem().unwrap_or_default().to_string_lossy(),
count,
p.extension().unwrap_or_default().to_string_lossy()
));
p
};
let data =
serde_json::from_str::<serde_json::Value>(&report.http_request.resp_body).unwrap();
let file = File::create(&self.path).unwrap();
let file = File::create(&path).unwrap();
serde_json::to_writer_pretty(file, &data).unwrap();
println!("Downloaded {}", self.path.display());
println!("Downloaded {}", path.display());
}
}
@ -618,3 +647,23 @@ async fn music_search_cont(testfiles: &Path) {
let rp = rp_testfile(&json_path);
res.items.next(&rp.query()).await.unwrap().unwrap();
}
async fn music_artist(testfiles: &Path) {
for (name, id) in [
("default", "UClmXPfaYhXOYsNn_QUyheWQ"),
("no_more_albums", "UC_vmjW5e1xEHhYjY2a0kK1A"),
("only_singles", "UCfwCE5VhPMGxNPFxtVv7lRw"),
("no_artist", "UCh8gHdtzO2tXd593_bjErWg"),
("only_more_singles", "UC0aXrjVxG5pZr99v77wZdPQ"),
] {
let mut json_path = testfiles.to_path_buf();
json_path.push("music_artist");
json_path.push(format!("artist_{}.json", name));
if json_path.exists() {
continue;
}
let rp = rp_testfile(&json_path);
rp.query().music_artist(id, true).await.unwrap();
}
}

View file

@ -3,6 +3,7 @@
pub(crate) mod response;
mod channel;
mod music_artist;
mod music_playlist;
mod music_search;
mod pagination;
@ -152,6 +153,7 @@ const CONSENT_COOKIE_YES: &str = "YES+yt.462272069.de+FX+";
const YOUTUBEI_V1_URL: &str = "https://www.youtube.com/youtubei/v1/";
const YOUTUBEI_V1_GAPIS_URL: &str = "https://youtubei.googleapis.com/youtubei/v1/";
const YOUTUBE_MUSIC_V1_URL: &str = "https://music.youtube.com/youtubei/v1/";
const YOUTUBE_MUSIC_HOME_URL: &str = "https://music.youtube.com/";
const DISABLE_PRETTY_PRINT_PARAMETER: &str = "&prettyPrint=false";
@ -351,7 +353,7 @@ impl RustyPipeBuilder {
/// program executions.
///
/// **Default value**: `FileStorage` in `rustypipe_cache.json`
pub fn storage(mut self, storage: Box<dyn CacheStorage + Sync + Send>) -> Self {
pub fn storage(mut self, storage: Box<dyn CacheStorage>) -> Self {
self.storage = Some(storage);
self
}
@ -365,7 +367,7 @@ impl RustyPipeBuilder {
/// Add a `Reporter` to collect error details
///
/// **Default value**: `FileReporter` creating reports in `./rustypipe_reports`
pub fn reporter(mut self, reporter: Box<dyn Reporter + Sync + Send>) -> Self {
pub fn reporter(mut self, reporter: Box<dyn Reporter>) -> Self {
self.reporter = Some(reporter);
self
}
@ -723,6 +725,25 @@ impl RustyPipe {
}
}
}
async fn get_ytm_visitor_data(&self) -> Result<String, Error> {
let resp = self.inner.http.get(YOUTUBE_MUSIC_HOME_URL).send().await?;
resp.headers()
.get_all(header::SET_COOKIE)
.iter()
.find_map(|c| {
if let Ok(cookie) = c.to_str() {
if let Some(after) = cookie.strip_prefix("__Secure-YEC=") {
return after.split_once(';').map(|s| s.0.to_owned());
}
}
None
})
.ok_or(Error::Extraction(ExtractionError::InvalidData(
Cow::Borrowed("could not get YTM cookies"),
)))
}
}
impl RustyPipeQuery {
@ -1156,3 +1177,16 @@ trait MapResponse<T> {
deobf: Option<&Deobfuscator>,
) -> Result<MapResult<T>, ExtractionError>;
}
#[cfg(test)]
mod tests {
use super::*;
#[tokio::test]
async fn t_get_ytm_visitor_data() {
let rp = RustyPipe::new();
let visitor_data = rp.get_ytm_visitor_data().await.unwrap();
assert!(visitor_data.ends_with("%3D"));
assert_eq!(visitor_data.len(), 32)
}
}

398
src/client/music_artist.rs Normal file
View file

@ -0,0 +1,398 @@
use std::{borrow::Cow, rc::Rc};
use fancy_regex::Regex;
use futures::{stream, StreamExt};
use once_cell::sync::Lazy;
use serde::Serialize;
use crate::{
error::{Error, ExtractionError},
model::{AlbumItem, ArtistId, MusicArtist},
serializer::MapResult,
util::{self, TryRemove},
};
use super::{
response::{self, music_item::MusicListMapper, url_endpoint::PageType},
ClientType, MapResponse, QBrowse, RustyPipeQuery, YTContext,
};
#[derive(Debug, Serialize)]
#[serde(rename_all = "camelCase")]
struct QBrowseParams<'a> {
context: YTContext<'a>,
browse_id: &'a str,
params: &'a str,
}
impl RustyPipeQuery {
pub async fn music_artist(
&self,
artist_id: &str,
all_albums: bool,
) -> Result<MusicArtist, Error> {
if all_albums {
let visitor_data = match &self.opts.visitor_data {
Some(vd) => vd.to_owned(),
None => self.client.get_ytm_visitor_data().await?,
};
let context = self
.get_context(ClientType::DesktopMusic, true, Some(&visitor_data))
.await;
let request_body = QBrowse {
context,
browse_id: artist_id.to_owned(),
};
let (mut artist, album_page_params) = self
.execute_request::<response::MusicArtist, _, _>(
ClientType::DesktopMusic,
"music_artist",
artist_id,
"browse",
&request_body,
)
.await?;
let visitor_data = Rc::new(visitor_data);
let album_page_results = stream::iter(album_page_params)
.map(|params| {
let visitor_data = visitor_data.clone();
async move {
self.music_artist_album_page(artist_id, &params, &visitor_data)
.await
}
})
.buffer_unordered(2)
.collect::<Vec<_>>()
.await;
for res in album_page_results {
let mut res = res?;
artist.albums.append(&mut res);
}
Ok(artist)
} else {
let context = self.get_context(ClientType::DesktopMusic, true, None).await;
let request_body = QBrowse {
context,
browse_id: artist_id.to_owned(),
};
self.execute_request::<response::MusicArtist, _, _>(
ClientType::DesktopMusic,
"music_artist",
artist_id,
"browse",
&request_body,
)
.await
}
}
async fn music_artist_album_page(
&self,
artist_id: &str,
params: &str,
visitor_data: &str,
) -> Result<Vec<AlbumItem>, Error> {
let context = self
.get_context(ClientType::DesktopMusic, true, Some(visitor_data))
.await;
let request_body = QBrowseParams {
context,
browse_id: artist_id,
params,
};
self.execute_request::<response::MusicArtistAlbums, _, _>(
ClientType::DesktopMusic,
"music_artist_albums",
artist_id,
"browse",
&request_body,
)
.await
}
}
impl MapResponse<MusicArtist> for response::MusicArtist {
fn map_response(
self,
id: &str,
lang: crate::param::Language,
_deobf: Option<&crate::deobfuscate::Deobfuscator>,
) -> Result<MapResult<MusicArtist>, ExtractionError> {
let mapped = map_artist_page(self, id, lang, false)?;
Ok(MapResult {
c: mapped.c.0,
warnings: mapped.warnings,
})
}
}
impl MapResponse<(MusicArtist, Vec<String>)> for response::MusicArtist {
fn map_response(
self,
id: &str,
lang: crate::param::Language,
_deobf: Option<&crate::deobfuscate::Deobfuscator>,
) -> Result<MapResult<(MusicArtist, Vec<String>)>, ExtractionError> {
map_artist_page(self, id, lang, true)
}
}
fn map_artist_page(
res: response::MusicArtist,
id: &str,
lang: crate::param::Language,
skip_extendables: bool,
) -> Result<MapResult<(MusicArtist, Vec<String>)>, ExtractionError> {
// dbg!(&self);
let header = res.header.music_immersive_header_renderer;
let mut content = res.contents.single_column_browse_results_renderer.contents;
let sections = content
.try_swap_remove(0)
.ok_or(ExtractionError::InvalidData(Cow::Borrowed("no content")))?
.tab_renderer
.content
.section_list_renderer
.contents;
let mut mapper = MusicListMapper::with_artist(
lang,
ArtistId {
id: Some(id.to_owned()),
name: header.title.to_owned(),
},
);
let mut tracks_playlist_id = None;
let mut videos_playlist_id = None;
let mut album_page_params = Vec::new();
for section in sections {
match section {
response::music_artist::ItemSection::MusicShelfRenderer(shelf) => {
if tracks_playlist_id.is_none() {
if let Some(ep) = shelf.bottom_endpoint {
if let Some(cfg) =
ep.browse_endpoint.browse_endpoint_context_supported_configs
{
if cfg.browse_endpoint_context_music_config.page_type
== PageType::Playlist
{
tracks_playlist_id = Some(ep.browse_endpoint.browse_id);
}
}
}
}
mapper.map_response(shelf.contents);
}
response::music_artist::ItemSection::MusicCarouselShelfRenderer {
header,
contents,
} => {
let mut extendable_albums = false;
if let Some(h) = header {
let ep = h
.music_carousel_shelf_basic_header_renderer
.more_content_button
.button_renderer
.navigation_endpoint;
if let Some(bep) = ep.browse_endpoint {
if let Some(cfg) = bep.browse_endpoint_context_supported_configs {
match cfg.browse_endpoint_context_music_config.page_type {
PageType::Playlist => {
if videos_playlist_id.is_none() {
videos_playlist_id = Some(bep.browse_id);
}
}
PageType::Artist => {
album_page_params.push(bep.params);
extendable_albums = true;
}
_ => {}
}
}
}
}
if !skip_extendables || !extendable_albums {
mapper.map_response(contents);
}
}
response::music_artist::ItemSection::None => {}
}
}
let mapped = mapper.group_items();
static WIKIPEDIA_REGEX: Lazy<Regex> =
Lazy::new(|| Regex::new(r"https://[a-z]+\.wikipedia.org/wiki/[^()\s]+").unwrap());
let wikipedia_url = WIKIPEDIA_REGEX
.captures(&header.description)
.ok()
.flatten()
.and_then(|c| c.get(0))
.map(|m| m.as_str().to_owned());
Ok(MapResult {
c: (
MusicArtist {
id: id.to_owned(),
name: header.title,
header_image: header.thumbnail.into(),
description: header.description,
wikipedia_url,
subscriber_count: header.subscription_button.and_then(|btn| {
util::parse_large_numstr(
&btn.subscribe_button_renderer.subscriber_count_text,
lang,
)
}),
tracks: mapped.c.tracks,
albums: mapped.c.albums,
playlists: mapped.c.playlists,
similar_artists: mapped.c.artists,
tracks_playlist_id,
videos_playlist_id,
},
album_page_params,
),
warnings: mapped.warnings,
})
}
impl MapResponse<Vec<AlbumItem>> for response::MusicArtistAlbums {
fn map_response(
self,
id: &str,
lang: crate::param::Language,
_deobf: Option<&crate::deobfuscate::Deobfuscator>,
) -> Result<MapResult<Vec<AlbumItem>>, ExtractionError> {
// dbg!(&self);
let mut content = self.contents.single_column_browse_results_renderer.contents;
let grids = content
.try_swap_remove(0)
.ok_or(ExtractionError::InvalidData(Cow::Borrowed("no content")))?
.tab_renderer
.content
.section_list_renderer
.contents;
let mut mapper = MusicListMapper::with_artist(
lang,
ArtistId {
id: Some(id.to_owned()),
name: self.header.music_header_renderer.title,
},
);
for grid in grids {
mapper.map_response(grid.grid_renderer.items);
}
let mapped = mapper.group_items();
Ok(MapResult {
c: mapped.c.albums,
warnings: mapped.warnings,
})
}
}
#[cfg(test)]
mod tests {
use std::{
fs::File,
io::BufReader,
path::{Path, PathBuf},
};
use rstest::rstest;
use crate::param::Language;
use super::*;
#[rstest]
#[case::default("default", "UClmXPfaYhXOYsNn_QUyheWQ")]
#[case::no_more_albums("no_more_albums", "UC_vmjW5e1xEHhYjY2a0kK1A")]
#[case::only_singles("only_singles", "UCfwCE5VhPMGxNPFxtVv7lRw")]
#[case::no_artist("no_artist", "UCh8gHdtzO2tXd593_bjErWg")]
#[case::only_more_singles("only_more_singles", "UC0aXrjVxG5pZr99v77wZdPQ")]
fn map_music_artist(#[case] name: &str, #[case] id: &str) {
let filename_base = format!("testfiles/music_artist/artist_{}", name);
let filename = filename_base.clone() + ".json";
let json_path = Path::new(&filename);
let json_file = File::open(json_path).unwrap();
let mut album_page_paths = Vec::new();
for i in 1..=2 {
let filename = format!("{}_{}.json", filename_base, i);
let json_path = PathBuf::from(filename);
if !json_path.exists() {
break;
}
album_page_paths.push(json_path);
}
let resp: response::MusicArtist =
serde_json::from_reader(BufReader::new(json_file)).unwrap();
let map_res: MapResult<(MusicArtist, Vec<String>)> =
resp.map_response(id, Language::En, None).unwrap();
let (mut artist, album_page_params) = map_res.c;
assert!(
map_res.warnings.is_empty(),
"deserialization/mapping warnings: {:?}",
map_res.warnings
);
assert_eq!(album_page_params.len(), album_page_paths.len());
for json_path in album_page_paths {
let json_file = File::open(json_path).unwrap();
let resp: response::MusicArtistAlbums =
serde_json::from_reader(BufReader::new(json_file)).unwrap();
let mut map_res: MapResult<Vec<AlbumItem>> =
resp.map_response(id, Language::En, None).unwrap();
assert!(
map_res.warnings.is_empty(),
"deserialization/mapping warnings: {:?}",
map_res.warnings
);
artist.albums.append(&mut map_res.c);
}
insta::assert_ron_snapshot!(format!("map_music_artist_{}", name), artist);
}
#[test]
fn map_music_artist_no_cont() {
let json_path = Path::new("testfiles/music_artist/artist_default.json");
let json_file = File::open(json_path).unwrap();
let artist: response::MusicArtist =
serde_json::from_reader(BufReader::new(json_file)).unwrap();
let map_res: MapResult<MusicArtist> = artist
.map_response("UClmXPfaYhXOYsNn_QUyheWQ", Language::En, None)
.unwrap();
assert!(
map_res.warnings.is_empty(),
"deserialization/mapping warnings: {:?}",
map_res.warnings
);
insta::assert_ron_snapshot!(map_res.c);
}
}

View file

@ -1,4 +1,5 @@
pub(crate) mod channel;
pub(crate) mod music_artist;
pub(crate) mod music_item;
pub(crate) mod music_playlist;
pub(crate) mod music_search;
@ -11,6 +12,8 @@ pub(crate) mod video_details;
pub(crate) mod video_item;
pub(crate) use channel::Channel;
pub(crate) use music_artist::MusicArtist;
pub(crate) use music_artist::MusicArtistAlbums;
pub(crate) use music_item::MusicContinuation;
pub(crate) use music_playlist::MusicPlaylist;
pub(crate) use music_search::MusicSearch;

View file

@ -0,0 +1,143 @@
use serde::Deserialize;
use serde_with::{serde_as, DefaultOnError};
use crate::serializer::{ignore_any, text::Text, MapResult, VecLogError};
use super::{
music_item::{MusicResponseItem, MusicShelf, MusicThumbnailRenderer},
url_endpoint::NavigationEndpoint,
ContentsRenderer, Tab,
};
/// Response model for YouTube Music artists
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct MusicArtist {
pub contents: Contents<ItemSection>,
pub header: Header,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct Contents<T> {
pub single_column_browse_results_renderer: ContentsRenderer<Tab<SectionList<T>>>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct SectionList<T> {
pub section_list_renderer: ContentsRenderer<T>,
}
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) enum ItemSection {
MusicShelfRenderer(MusicShelf),
MusicCarouselShelfRenderer {
#[serde(default)]
#[serde_as(as = "DefaultOnError")]
header: Option<MusicCarouselShelfHeader>,
#[serde_as(as = "VecLogError<_>")]
contents: MapResult<Vec<MusicResponseItem>>,
},
#[serde(other, deserialize_with = "ignore_any")]
None,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct Header {
#[serde(alias = "musicVisualHeaderRenderer")]
pub music_immersive_header_renderer: MusicHeaderRenderer,
}
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct MusicHeaderRenderer {
#[serde_as(as = "Text")]
pub title: String,
#[serde(default)]
#[serde_as(as = "DefaultOnError")]
pub subscription_button: Option<SubscriptionButton>,
#[serde(default)]
#[serde_as(as = "Text")]
pub description: String,
#[serde(default)]
pub thumbnail: MusicThumbnailRenderer,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct SubscriptionButton {
pub subscribe_button_renderer: SubscriptionButtonRenderer,
}
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct SubscriptionButtonRenderer {
#[serde_as(as = "Text")]
pub subscriber_count_text: String,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct MusicCarouselShelfHeader {
pub music_carousel_shelf_basic_header_renderer: MusicCarouselShelfHeaderRenderer,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct MusicCarouselShelfHeaderRenderer {
pub more_content_button: MoreContentButton,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct MoreContentButton {
pub button_renderer: ButtonRenderer,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct ButtonRenderer {
pub navigation_endpoint: NavigationEndpoint,
}
/// Response model for YouTube Music artist album page
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct MusicArtistAlbums {
pub header: SimpleHeader,
pub contents: Contents<Grid>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct Grid {
pub grid_renderer: GridRenderer,
}
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct GridRenderer {
#[serde_as(as = "VecLogError<_>")]
pub items: MapResult<Vec<MusicResponseItem>>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct SimpleHeader {
pub music_header_renderer: SimpleHeaderRenderer,
}
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct SimpleHeaderRenderer {
#[serde_as(as = "Text")]
pub title: String,
}

View file

@ -15,7 +15,7 @@ use crate::{
};
use super::{
url_endpoint::{NavigationEndpoint, PageType},
url_endpoint::{BrowseEndpointWrap, NavigationEndpoint, PageType},
MusicContinuationData, ThumbnailsWrap,
};
@ -31,6 +31,10 @@ pub(crate) struct MusicShelf {
#[serde(default)]
#[serde_as(as = "VecSkipError<_>")]
pub continuations: Vec<MusicContinuationData>,
/// "More" button at the bottom (artist pages)
#[serde(default)]
#[serde_as(as = "DefaultOnError")]
pub bottom_endpoint: Option<BrowseEndpointWrap>,
}
#[derive(Debug, Deserialize)]
@ -222,23 +226,19 @@ impl MusicListMapper {
}
}
/*
pub fn with_artists(
lang: Language,
artists: Vec<ArtistId>,
by_va: bool,
artist_page: bool,
) -> Self {
/// Create a new MusicListMapper for an artist page
pub fn with_artist(lang: Language, artist: ArtistId) -> Self {
Self {
lang,
artists: Some((artists, by_va)),
artists: Some((vec![artist], false)),
album: None,
artist_page,
artist_page: true,
items: Vec::new(),
warnings: Vec::new(),
}
}*/
}
/// Create a new MusicListMapper for an album page
pub fn with_album(lang: Language, artists: Vec<ArtistId>, by_va: bool, album: AlbumId) -> Self {
Self {
lang,
@ -399,9 +399,8 @@ impl MusicListMapper {
}
};
let duration = duration_p
.and_then(|p| util::parse_video_length(p.first_str()))
.ok_or_else(|| format!("track {}: could not parse duration", id))?;
let duration =
duration_p.and_then(|p| util::parse_video_length(p.first_str()));
let (album, view_count) = match (item.flex_column_display_style, is_video) {
// The album field contains the view count for search videos
@ -455,87 +454,117 @@ impl MusicListMapper {
let subtitle_p2 = subtitle_parts.next();
let subtitle_p3 = subtitle_parts.next();
let (page_type, id) = item
.navigation_endpoint
.music_page()
.ok_or_else(|| "could not get navigation endpoint".to_owned())?;
match page_type {
PageType::Album => {
let mut year = None;
let mut album_type = AlbumType::Single;
let (artists, by_va) =
match (subtitle_p1, subtitle_p2, &self.artists, self.artist_page) {
// "2022" (Artist singles)
(Some(year_txt), None, Some(artists), true) => {
year = util::parse_numeric(year_txt.first_str()).ok();
artists.clone()
}
// "Album", "2022" (Artist albums)
(Some(atype_txt), Some(year_txt), Some(artists), true) => {
year = util::parse_numeric(year_txt.first_str()).ok();
album_type = map_album_type(atype_txt.first_str(), self.lang);
artists.clone()
}
// "Album", <"Oonagh"> (Album variants, new releases)
(Some(atype_txt), Some(p2), _, false) => {
album_type = map_album_type(atype_txt.first_str(), self.lang);
map_artists(Some(p2))
}
_ => {
return Err(format!(
"could not parse subtitle of album {}",
id
));
}
};
self.items.push(MusicItem::Album(AlbumItem {
id,
name: item.title,
match item.navigation_endpoint.watch_endpoint {
// Music video
Some(wep) => {
self.items.push(MusicItem::Track(TrackItem {
id: wep.video_id,
title: item.title,
duration: None,
cover: item.thumbnail_renderer.into(),
artists,
album_type,
year,
by_va,
artists: map_artists(subtitle_p1).0,
album: None,
view_count: subtitle_p2
.and_then(|c| util::parse_large_numstr(c.first_str(), self.lang)),
is_video: true,
track_nr: None,
}));
Ok(MusicEntityType::Album)
Ok(MusicEntityType::Track)
}
PageType::Playlist => {
let from_ytm = subtitle_p2
.as_ref()
.map(|p| p.first_str() == util::YT_MUSIC_NAME)
.unwrap_or_default();
let channel = subtitle_p2.and_then(|p| {
p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok())
});
let track_count =
subtitle_p3.and_then(|p| util::parse_numeric(p.first_str()).ok());
// Artist / Album / Playlist
None => {
let (page_type, id) = item
.navigation_endpoint
.music_page()
.ok_or_else(|| "could not get navigation endpoint".to_owned())?;
self.items.push(MusicItem::Playlist(MusicPlaylistItem {
id,
name: item.title,
thumbnail: item.thumbnail_renderer.into(),
channel,
track_count,
from_ytm,
}));
Ok(MusicEntityType::Playlist)
}
PageType::Artist => {
let subscriber_count = subtitle_p1
.and_then(|p| util::parse_large_numstr(p.first_str(), self.lang));
match page_type {
PageType::Album => {
let mut year = None;
let mut album_type = AlbumType::Single;
self.items.push(MusicItem::Artist(ArtistItem {
id,
name: item.title,
avatar: item.thumbnail_renderer.into(),
subscriber_count,
}));
Ok(MusicEntityType::Artist)
let (artists, by_va) = match (
subtitle_p1,
subtitle_p2,
&self.artists,
self.artist_page,
) {
// "2022" (Artist singles)
(Some(year_txt), None, Some(artists), true) => {
year = util::parse_numeric(year_txt.first_str()).ok();
artists.clone()
}
// "Album", "2022" (Artist albums)
(Some(atype_txt), Some(year_txt), Some(artists), true) => {
year = util::parse_numeric(year_txt.first_str()).ok();
album_type =
map_album_type(atype_txt.first_str(), self.lang);
artists.clone()
}
// "Album", <"Oonagh"> (Album variants, new releases)
(Some(atype_txt), Some(p2), _, false) => {
album_type =
map_album_type(atype_txt.first_str(), self.lang);
map_artists(Some(p2))
}
_ => {
return Err(format!(
"could not parse subtitle of album {}",
id
));
}
};
self.items.push(MusicItem::Album(AlbumItem {
id,
name: item.title,
cover: item.thumbnail_renderer.into(),
artists,
album_type,
year,
by_va,
}));
Ok(MusicEntityType::Album)
}
PageType::Playlist => {
let from_ytm = subtitle_p2
.as_ref()
.map(|p| p.first_str() == util::YT_MUSIC_NAME)
.unwrap_or_default();
let channel = subtitle_p2.and_then(|p| {
p.0.into_iter().find_map(|c| ChannelId::try_from(c).ok())
});
let track_count = subtitle_p3
.and_then(|p| util::parse_numeric(p.first_str()).ok());
self.items.push(MusicItem::Playlist(MusicPlaylistItem {
id,
name: item.title,
thumbnail: item.thumbnail_renderer.into(),
channel,
track_count,
from_ytm,
}));
Ok(MusicEntityType::Playlist)
}
PageType::Artist => {
let subscriber_count = subtitle_p1.and_then(|p| {
util::parse_large_numstr(p.first_str(), self.lang)
});
self.items.push(MusicItem::Artist(ArtistItem {
id,
name: item.title,
avatar: item.thumbnail_renderer.into(),
subscriber_count,
}));
Ok(MusicEntityType::Artist)
}
PageType::Channel => {
Err(format!("channel items unsupported. id: {}", id))
}
}
}
PageType::Channel => Err(format!("channel items unsupported. id: {}", id)),
}
}
}

View file

@ -39,9 +39,16 @@ pub(crate) struct WatchEndpoint {
#[derive(Debug)]
pub(crate) struct BrowseEndpoint {
pub browse_id: String,
pub params: String,
pub browse_endpoint_context_supported_configs: Option<BrowseEndpointConfig>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct BrowseEndpointWrap {
pub browse_endpoint: BrowseEndpoint,
}
impl<'de> Deserialize<'de> for BrowseEndpoint {
fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where
@ -51,6 +58,8 @@ impl<'de> Deserialize<'de> for BrowseEndpoint {
#[serde(rename_all = "camelCase")]
struct BEp {
pub browse_id: String,
#[serde(default)]
pub params: String,
pub browse_endpoint_context_supported_configs: Option<BrowseEndpointConfig>,
}
@ -71,6 +80,7 @@ impl<'de> Deserialize<'de> for BrowseEndpoint {
Ok(Self {
browse_id,
params: bep.params,
browse_endpoint_context_supported_configs: bep
.browse_endpoint_context_supported_configs,
})

View file

@ -12,7 +12,7 @@ use crate::serializer::{
};
use super::{
url_endpoint::BrowseEndpoint, ContinuationEndpoint, ContinuationItemRenderer, Icon,
url_endpoint::BrowseEndpointWrap, ContinuationEndpoint, ContinuationItemRenderer, Icon,
MusicContinuationData, Thumbnails,
};
use super::{ChannelBadge, ResponseContext, YouTubeListItem};
@ -525,7 +525,7 @@ pub(crate) struct CommentRenderer {
/// ID of the author's channel
#[serde(default)]
#[serde_as(as = "DefaultOnError")]
pub author_endpoint: Option<AuthorEndpoint>,
pub author_endpoint: Option<BrowseEndpointWrap>,
/// Comment text
pub content_text: TextComponents,
/// Textual publish date (e.g. `15 minutes ago`, `2 days ago`)
@ -542,12 +542,6 @@ pub(crate) struct CommentRenderer {
pub action_buttons: CommentActionButtons,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct AuthorEndpoint {
pub browse_endpoint: BrowseEndpoint,
}
#[derive(Default, Clone, Copy, Debug, Deserialize, PartialEq, Eq)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub(crate) enum CommentPriority {

View file

@ -0,0 +1,155 @@
---
source: src/client/music_artist.rs
expression: artist
---
MusicArtist(
id: "UCh8gHdtzO2tXd593_bjErWg",
name: "Doobydobap",
header_image: [
Thumbnail(
url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w540-h225-p-l90-rj",
width: 540,
height: 225,
),
Thumbnail(
url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w816-h340-p-l90-rj",
width: 816,
height: 340,
),
Thumbnail(
url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1440-h600-p-l90-rj",
width: 1440,
height: 600,
),
Thumbnail(
url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w1920-h800-p-l90-rj",
width: 1920,
height: 800,
),
Thumbnail(
url: "https://yt3.ggpht.com/BvnAqgiursrXpmS9AgDLtkOSTQfOG_Dqn0KzY5hcwO9XrHTEQTVgaflI913f9KRp7d0U2qBp=w2436-h1015-p-l90-rj",
width: 2436,
height: 1015,
),
],
description: "",
wikipedia_url: None,
subscriber_count: None,
tracks: [],
albums: [],
playlists: [
MusicPlaylistItem(
id: "PLwkM1QxaP342hjju64dtqG5wKqx2hNgjr",
name: "After Hours & Doob Gourmand",
thumbnail: [
Thumbnail(
url: "https://i.ytimg.com/vi/38Gd6TdmNVs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lbh9XVK3zCkDHMxgOnDokkqE3kwg",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/38Gd6TdmNVs/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3k4lcTkiScLDPpmxBPfEub3xft7iQ",
width: 800,
height: 450,
),
],
channel: Some(ChannelId(
id: "UCh8gHdtzO2tXd593_bjErWg",
name: "Doobydobap",
)),
track_count: Some(6),
from_ytm: false,
),
MusicPlaylistItem(
id: "PLwkM1QxaP342v1hhoB3XLiruSQOzmdmBt",
name: "doobyvlog",
thumbnail: [
Thumbnail(
url: "https://i.ytimg.com/vi/CN-u8_2ixOU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kCdNu1hqEubXzcLcci_xhWSI9q-Q",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/CN-u8_2ixOU/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lN1-hs5ItQ_DJXBp-aUQQ-DLjMVg",
width: 800,
height: 450,
),
],
channel: Some(ChannelId(
id: "UCh8gHdtzO2tXd593_bjErWg",
name: "Doobydobap",
)),
track_count: Some(59),
from_ytm: false,
),
MusicPlaylistItem(
id: "PLwkM1QxaP342EBMza0AG10nB3oDD65RPY",
name: "How to...",
thumbnail: [
Thumbnail(
url: "https://i.ytimg.com/vi/6WQphW7wS7E/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k-lHwO5StMjLAm9Ww_R8WNOdfg4A",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/6WQphW7wS7E/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3moc6um8pialExf2VRSCcZrdS72jg",
width: 800,
height: 450,
),
],
channel: Some(ChannelId(
id: "UCh8gHdtzO2tXd593_bjErWg",
name: "Doobydobap",
)),
track_count: Some(10),
from_ytm: false,
),
MusicPlaylistItem(
id: "PLwkM1QxaP342nVAeBVL6_Q8gbbAD8l4wb",
name: "korean street food vlog",
thumbnail: [
Thumbnail(
url: "https://i.ytimg.com/vi/SYE0eTOIyYs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kMJdjGcjlBqmKu7cbM1e1JqVr0_g",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/SYE0eTOIyYs/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3mz6KRiyvozhHZ3HNkUYX12dTTgdg",
width: 800,
height: 450,
),
],
channel: Some(ChannelId(
id: "UCh8gHdtzO2tXd593_bjErWg",
name: "Doobydobap",
)),
track_count: Some(12),
from_ytm: false,
),
MusicPlaylistItem(
id: "PLwkM1QxaP3438x6ta8VJZlJSlDn43FueA",
name: "asmr cooking",
thumbnail: [
Thumbnail(
url: "https://i.ytimg.com/vi/WvvMHEeSNJk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kfHl-T1ZtohuD1qXl0lbs0e9zAGA",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/WvvMHEeSNJk/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3n8lBs4xkQBwsNVlJ4qc3U6xQEsag",
width: 800,
height: 450,
),
],
channel: Some(ChannelId(
id: "UCh8gHdtzO2tXd593_bjErWg",
name: "Doobydobap",
)),
track_count: Some(40),
from_ytm: false,
),
],
similar_artists: [],
tracks_playlist_id: None,
videos_playlist_id: None,
)

View file

@ -0,0 +1,930 @@
---
source: src/client/music_artist.rs
expression: artist
---
MusicArtist(
id: "UC_vmjW5e1xEHhYjY2a0kK1A",
name: "Oonagh",
header_image: [
Thumbnail(
url: "https://lh3.googleusercontent.com/eMMHFaIWg8G3LL3B-8EAew8vhAP2G2aUIDfn4I1JHpS8WxmnO0Yof-vOSEyUSp4y3lCl-q6MIbugbw=w540-h225-p-l90-rj",
width: 540,
height: 225,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/eMMHFaIWg8G3LL3B-8EAew8vhAP2G2aUIDfn4I1JHpS8WxmnO0Yof-vOSEyUSp4y3lCl-q6MIbugbw=w816-h340-p-l90-rj",
width: 816,
height: 340,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/eMMHFaIWg8G3LL3B-8EAew8vhAP2G2aUIDfn4I1JHpS8WxmnO0Yof-vOSEyUSp4y3lCl-q6MIbugbw=w1440-h600-p-l90-rj",
width: 1440,
height: 600,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/eMMHFaIWg8G3LL3B-8EAew8vhAP2G2aUIDfn4I1JHpS8WxmnO0Yof-vOSEyUSp4y3lCl-q6MIbugbw=w1920-h800-p-l90-rj",
width: 1920,
height: 800,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/eMMHFaIWg8G3LL3B-8EAew8vhAP2G2aUIDfn4I1JHpS8WxmnO0Yof-vOSEyUSp4y3lCl-q6MIbugbw=w2880-h1200-p-l90-rj",
width: 2880,
height: 1200,
),
],
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: Some(34200),
tracks: [
TrackItem(
id: "aWxWb6iBC_s",
title: "Gäa",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/5HPo4GHtboHIiJtjs_VyQUW3Om-SzxhsREo5Rroq-RMj2Hx570v2Dy1uvPO9SwdYE13WSPKEKmPe6o8=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/5HPo4GHtboHIiJtjs_VyQUW3Om-SzxhsREo5Rroq-RMj2Hx570v2Dy1uvPO9SwdYE13WSPKEKmPe6o8=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: Some(AlbumId(
id: "MPREb_8weOuwHWdSU",
name: "Oonagh",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "pI0Rancanz0",
title: "Vergiss mein nicht",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/5HPo4GHtboHIiJtjs_VyQUW3Om-SzxhsREo5Rroq-RMj2Hx570v2Dy1uvPO9SwdYE13WSPKEKmPe6o8=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/5HPo4GHtboHIiJtjs_VyQUW3Om-SzxhsREo5Rroq-RMj2Hx570v2Dy1uvPO9SwdYE13WSPKEKmPe6o8=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: Some(AlbumId(
id: "MPREb_8weOuwHWdSU",
name: "Oonagh",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "kNdPylPd4JM",
title: "Kuliko Jana - Eine neue Zeit",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/6jIi291oF4nO81dPMFuXYD_53b8LySMvCjaN42nulLxAAvxdCjqIHs3UbHMNPd_v6_k8qB6wMAZoH2lx=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/6jIi291oF4nO81dPMFuXYD_53b8LySMvCjaN42nulLxAAvxdCjqIHs3UbHMNPd_v6_k8qB6wMAZoH2lx=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: Some(AlbumId(
id: "MPREb_jovYz4SubiU",
name: "Eine neue Zeit",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "DsviLYh1CB0",
title: "Eldamar",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/dM1Gb_cyP0VS9effyzcEIbD9OCNsHSe9UwCBWaqf51Bn60cT4Jc74Yzd_kIxh6JO3eSFWgW17kYWJgYu=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/dM1Gb_cyP0VS9effyzcEIbD9OCNsHSe9UwCBWaqf51Bn60cT4Jc74Yzd_kIxh6JO3eSFWgW17kYWJgYu=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: Some(AlbumId(
id: "MPREb_AkRyaoh86St",
name: "Oonagh (Attea Ranta - Second Edition)",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "wNgCQjct_Ys",
title: "Zeit der Sommernächte (Single Mix)",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/RQ3jJ3FCS9JwBMAiEAePDZpWFBjq57bamvWOm0xBUqRDBCncv-Elk7KRnVyQvJMjx-_1v_vEwc2LRHXI=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/RQ3jJ3FCS9JwBMAiEAePDZpWFBjq57bamvWOm0xBUqRDBCncv-Elk7KRnVyQvJMjx-_1v_vEwc2LRHXI=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
ArtistId(
id: Some("UCNWqts1f6DTMZav6Z9REj9w"),
name: "Safri Duo",
),
],
album: Some(AlbumId(
id: "MPREb_WAzaITm6K4l",
name: "Zeit der Sommernächte (Single Mix)",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "btPcPR3fJfQ",
title: "Akustik Version „AUFHÖREN“.♥\u{fe0f}",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/btPcPR3fJfQ/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3lBcuRfZoVybraQTngPUEUg0baH2w",
width: 320,
height: 180,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: None,
view_count: Some(1000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "dFdac41o3mQ",
title: "AUFHÖREN",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/dFdac41o3mQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l2HPoANrSDjuy7BDLJtBDan0oP1A",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/dFdac41o3mQ/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lulkno5aGMi4dvpzvB6N-Nkkvo7Q",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCqqGdqr0qOwVxTVD4OztsZg"),
name: "Senta",
),
],
album: None,
view_count: Some(109000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "C_pGRMlCM3U",
title: "Gäa",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/C_pGRMlCM3U/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lEn2_IwgQ0geyf4g4VftqH9Y1_rw",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/C_pGRMlCM3U/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3ltty0d95k8DlHURkUcNR0UnzKhNA",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: None,
view_count: Some(13000000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "SUioohuufeE",
title: "Eldamar",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/SUioohuufeE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kYTAURVybT5Dya-V0yBWtCWxIH_A",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/SUioohuufeE/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lF9s6FGugleQxjahrdQY8S-IyRIA",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: None,
view_count: Some(4500000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "yHv2oXYVbZg",
title: "Zeit der Sommernächte (single mix) (feat. Safri Duo)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/yHv2oXYVbZg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nM6j7dAdzB693s4j8w1T6P-sC8ng",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/yHv2oXYVbZg/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3mel1uPyHwlaFgRYVXgGj_JHZiKnA",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: None,
view_count: Some(1900000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "QnzAiQZZ1uw",
title: "MUSIK MUSIK",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/QnzAiQZZ1uw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mgJCmKzA8FNnIFR3u2VE0afXvvsA",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/QnzAiQZZ1uw/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3ljOkyUqSlQW7Gti08XL6WJFwHV6A",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCqqGdqr0qOwVxTVD4OztsZg"),
name: "Senta",
),
],
album: None,
view_count: Some(165000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "cnF-BVrVs1M",
title: "Senta - Was immer es ist (Offizielles Video)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/cnF-BVrVs1M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lVW88tiiFymiK4B7kDcp64huLwmA",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/cnF-BVrVs1M/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3kJLSNiI1ZuEl_dnbY3yLZHpz1GjA",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album: None,
view_count: Some(154000),
is_video: true,
track_nr: None,
),
],
albums: [
AlbumItem(
id: "MPREb_jovYz4SubiU",
name: "Eine neue Zeit",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/6jIi291oF4nO81dPMFuXYD_53b8LySMvCjaN42nulLxAAvxdCjqIHs3UbHMNPd_v6_k8qB6wMAZoH2lx=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/6jIi291oF4nO81dPMFuXYD_53b8LySMvCjaN42nulLxAAvxdCjqIHs3UbHMNPd_v6_k8qB6wMAZoH2lx=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Album,
year: Some(2019),
by_va: false,
),
AlbumItem(
id: "MPREb_nlBWQROfvjo",
name: "Märchen enden gut",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Z5CF2JCRD5o7fBywh9Spg_Wvmrqkg0M01FWsSm_mdmUSfplv--9NgIiBRExudt7s0TTd3tgpJ7CLRFal=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/Z5CF2JCRD5o7fBywh9Spg_Wvmrqkg0M01FWsSm_mdmUSfplv--9NgIiBRExudt7s0TTd3tgpJ7CLRFal=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Album,
year: Some(2016),
by_va: false,
),
AlbumItem(
id: "MPREb_imDwIcPAjFy",
name: "Aeria (Sartoranta - Fan Edition)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/_HeMwgRw13clSFgwGoOr96pYM-Hp3iBlBPw3IzITAzmt9pEavrYmmzN2qIlFIvAbyZjiD0kuDvpLx9k=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/_HeMwgRw13clSFgwGoOr96pYM-Hp3iBlBPw3IzITAzmt9pEavrYmmzN2qIlFIvAbyZjiD0kuDvpLx9k=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Album,
year: Some(2015),
by_va: false,
),
AlbumItem(
id: "MPREb_8weOuwHWdSU",
name: "Oonagh",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/5HPo4GHtboHIiJtjs_VyQUW3Om-SzxhsREo5Rroq-RMj2Hx570v2Dy1uvPO9SwdYE13WSPKEKmPe6o8=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/5HPo4GHtboHIiJtjs_VyQUW3Om-SzxhsREo5Rroq-RMj2Hx570v2Dy1uvPO9SwdYE13WSPKEKmPe6o8=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Album,
year: Some(2014),
by_va: false,
),
AlbumItem(
id: "MPREb_GyH43gCvdM5",
name: "Best Of",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/51Ee0uFa5llisVq_-qrCKT9iznOXDLi4M0jAN9lQhqDP0FwF8U5hOz3FczkkjPW42uncvmaUBFuosCNv=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/51Ee0uFa5llisVq_-qrCKT9iznOXDLi4M0jAN9lQhqDP0FwF8U5hOz3FczkkjPW42uncvmaUBFuosCNv=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Album,
year: Some(2020),
by_va: false,
),
AlbumItem(
id: "MPREb_WfEYxWGLcMx",
name: "Du bist genug (Single Mix)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/51Ee0uFa5llisVq_-qrCKT9iznOXDLi4M0jAN9lQhqDP0FwF8U5hOz3FczkkjPW42uncvmaUBFuosCNv=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/51Ee0uFa5llisVq_-qrCKT9iznOXDLi4M0jAN9lQhqDP0FwF8U5hOz3FczkkjPW42uncvmaUBFuosCNv=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2020),
by_va: false,
),
AlbumItem(
id: "MPREb_oWACs9fccqd",
name: "Kuliko Jana - Eine neue Zeit",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/aGMDrDlEEHyvTCZkPicIvvXD-oTtwAm6xKeupEb94RCPCoXAWkJ_VUsFW_djOPOgm2GX1uUPQNRmdrvZ=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/aGMDrDlEEHyvTCZkPicIvvXD-oTtwAm6xKeupEb94RCPCoXAWkJ_VUsFW_djOPOgm2GX1uUPQNRmdrvZ=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2019),
by_va: false,
),
AlbumItem(
id: "MPREb_S6P0cjIdHIF",
name: "Zauberwald",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/YG6T83cQBccuJ6EwCQ2Kr9BLasLGjHmkxaLWRulnuCcbTGRBz8ugklJi1EkUNkI7J5xn6PWc-V6RAD36IA=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/YG6T83cQBccuJ6EwCQ2Kr9BLasLGjHmkxaLWRulnuCcbTGRBz8ugklJi1EkUNkI7J5xn6PWc-V6RAD36IA=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
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: [
Thumbnail(
url: "https://lh3.googleusercontent.com/RQ3jJ3FCS9JwBMAiEAePDZpWFBjq57bamvWOm0xBUqRDBCncv-Elk7KRnVyQvJMjx-_1v_vEwc2LRHXI=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/RQ3jJ3FCS9JwBMAiEAePDZpWFBjq57bamvWOm0xBUqRDBCncv-Elk7KRnVyQvJMjx-_1v_vEwc2LRHXI=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2017),
by_va: false,
),
AlbumItem(
id: "MPREb_2vYEpZteTjN",
name: "Willst du noch träumen (feat. Elbkinder (Rolf Zuckowski))",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/a8LKtq079VJn0TvA_qXOsoXDkRn8LkoUGlacmqSYZrZObvre5NiCwVVoJvhJT5U5qznU8PF6DAMtnT9x=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/a8LKtq079VJn0TvA_qXOsoXDkRn8LkoUGlacmqSYZrZObvre5NiCwVVoJvhJT5U5qznU8PF6DAMtnT9x=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2016),
by_va: false,
),
AlbumItem(
id: "MPREb_eNje8weTxgK",
name: "Aulë und Yavanna (Jungle-Mix)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/bSP9AK_sIsj3PWovWvpRvv0MUJ84lWlcjNeIiZXOoXgP5u9cILZYqSBP0_93f1b2-Fs3bv44HK_kYacC=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/bSP9AK_sIsj3PWovWvpRvv0MUJ84lWlcjNeIiZXOoXgP5u9cILZYqSBP0_93f1b2-Fs3bv44HK_kYacC=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2016),
by_va: false,
),
AlbumItem(
id: "MPREb_vuyS6nIsNeg",
name: "Gäa",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/ADbxmUGQ9idAkrpYOo55d6bxIWe80aGPPIRnj-t2nptMVyekBQPBCP7Zl8uQUr0_bMAjBlU2vpMCuKSc=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/ADbxmUGQ9idAkrpYOo55d6bxIWe80aGPPIRnj-t2nptMVyekBQPBCP7Zl8uQUr0_bMAjBlU2vpMCuKSc=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2014),
by_va: false,
),
AlbumItem(
id: "MPREb_76jQdnW2e6m",
name: "Gäa (Akustik Version)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/51Ee0uFa5llisVq_-qrCKT9iznOXDLi4M0jAN9lQhqDP0FwF8U5hOz3FczkkjPW42uncvmaUBFuosCNv=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/51Ee0uFa5llisVq_-qrCKT9iznOXDLi4M0jAN9lQhqDP0FwF8U5hOz3FczkkjPW42uncvmaUBFuosCNv=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2014),
by_va: false,
),
AlbumItem(
id: "MPREb_Gnj2M6UQmfX",
name: "Ich sehe was, was Du nicht siehst (Online Version)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/aTSiSiSl_yW_mC5utFdDvz8VxVdEuczkqJuA3BfCDqz3oy4B24f7HvUzXmqc7-_hCGCQKzcZVVOw7EPxHA=w226-h226-s-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/aTSiSiSl_yW_mC5utFdDvz8VxVdEuczkqJuA3BfCDqz3oy4B24f7HvUzXmqc7-_hCGCQKzcZVVOw7EPxHA=w544-h544-s-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2007),
by_va: false,
),
AlbumItem(
id: "MPREb_kWjFiCq7EdM",
name: "Scheissegal (Digital Version)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/fuDYgIcWR_McW-0kawebvc3pWODrPKgEkw8kMaIuhXiAhgIVbtK2f7VBQKO1zb2axQuhWllKU4xZr6Zk=w226-h226-s-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/fuDYgIcWR_McW-0kawebvc3pWODrPKgEkw8kMaIuhXiAhgIVbtK2f7VBQKO1zb2axQuhWllKU4xZr6Zk=w544-h544-s-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UC_vmjW5e1xEHhYjY2a0kK1A"),
name: "Oonagh",
),
],
album_type: Single,
year: Some(2006),
by_va: false,
),
],
playlists: [],
similar_artists: [
ArtistItem(
id: "UCzVhvhjoVjkQnmDG-b9hbRQ",
name: "Santiano",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/5GS1CSS3p89L5zFKIy6WdewcbYBK3N_WN3JutSRqa22RVf9zh3C2scsA1H0XNCecCOJoXbY1il8eszI=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/5GS1CSS3p89L5zFKIy6WdewcbYBK3N_WN3JutSRqa22RVf9zh3C2scsA1H0XNCecCOJoXbY1il8eszI=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(199000),
),
ArtistItem(
id: "UCCRR8xYCRKBughN1C5xeADA",
name: "Bannkreis",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/69Gi5bqIGVZ3Q0svysQO-xJtrpyQOPkg2TV6YMUxQhP0ggFmbj5jgRya4JhD0J5jtBh5bTDsBVAYV6r3oA=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/69Gi5bqIGVZ3Q0svysQO-xJtrpyQOPkg2TV6YMUxQhP0ggFmbj5jgRya4JhD0J5jtBh5bTDsBVAYV6r3oA=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(978),
),
ArtistItem(
id: "UCWOw75Vmryv3D_WdzE2DbKA",
name: "dArtagnan",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/eLIY1e-S56FdEnJKIdZhnyUAKKyxrpS9Q6qql8SDTGp-w6avQKQDqfN2x9Ml_4W0hF8dJnpU5w0YXg=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/eLIY1e-S56FdEnJKIdZhnyUAKKyxrpS9Q6qql8SDTGp-w6avQKQDqfN2x9Ml_4W0hF8dJnpU5w0YXg=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(150000),
),
ArtistItem(
id: "UCS7jnBHtFH3TQHBw6CiqGFQ",
name: "Ji-In Cho",
avatar: [
Thumbnail(
url: "https://www.gstatic.com/youtube/media/ytm/images/artist_avatar@1200.png?sqp=CPPx1tgF-oaymwEICOIBEOIBWAE&rs=ALLJMcJpRmbO_mSzzJIvhCI3RKotZOVoMw",
width: 256,
height: 256,
),
Thumbnail(
url: "https://www.gstatic.com/youtube/media/ytm/images/artist_avatar@1200.png?sqp=CLjy1tgF-oaymwEICKAEEKAEWAE&rs=ALLJMcLCN3eUA6SlURWHZDKHi0vPg_Qv6g",
width: 544,
height: 544,
),
],
subscriber_count: Some(143),
),
ArtistItem(
id: "UCjnWwN1uliOk327LAbaQ6pA",
name: "Schandmaul",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/JBZIzWMtBWkdp4hOPlwccwUC-B2YaqScYkDdkg0tEAWRpck9Ihs4fkg1zgI9mybGtjFBDssYu6RSeZo=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/JBZIzWMtBWkdp4hOPlwccwUC-B2YaqScYkDdkg0tEAWRpck9Ihs4fkg1zgI9mybGtjFBDssYu6RSeZo=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(84300),
),
ArtistItem(
id: "UCb8Equh_Bi6a38MeXY0z36w",
name: "LaFee",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/68YcWOWU-zpVgosITSdESwS_x3HQ75uJkYUlBi8WpDYrgyjIt1UmHSYX0LdHEiloMepLrcbPHrwQGSzr=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/68YcWOWU-zpVgosITSdESwS_x3HQ75uJkYUlBi8WpDYrgyjIt1UmHSYX0LdHEiloMepLrcbPHrwQGSzr=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(67500),
),
ArtistItem(
id: "UCKT1ZHKHDVQPNW9Ur-T5pnQ",
name: "Eisblume",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/C3dfXGjcd4nFfUTbe1qDJDfiYTARt2xLm7DXis3cEEDRDEz4CW4IfLRPav4a-IDvJA-trLMHWSwFfCM=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/C3dfXGjcd4nFfUTbe1qDJDfiYTARt2xLm7DXis3cEEDRDEz4CW4IfLRPav4a-IDvJA-trLMHWSwFfCM=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(2890),
),
ArtistItem(
id: "UCBepT5loBAcvYgvXikNag4g",
name: "Versengold",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/UojxDkEKXxDQYYHxChiVuijl1nBNJGPgeYRwdbnKH-VqtcXclfyW9aDjHmB3NdGeuGh053j38raLyfE=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/UojxDkEKXxDQYYHxChiVuijl1nBNJGPgeYRwdbnKH-VqtcXclfyW9aDjHmB3NdGeuGh053j38raLyfE=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(92500),
),
ArtistItem(
id: "UCB08eUitS1agOuL6KVffvFg",
name: "The Dark Tenor",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/90cpYV5OWevw0JYLbx0jUuZWlPV-qBqXYiGOtfWO464JEIHvnbvYWGXme0P6vsXZg_39AjCoChqetXw=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/90cpYV5OWevw0JYLbx0jUuZWlPV-qBqXYiGOtfWO464JEIHvnbvYWGXme0P6vsXZg_39AjCoChqetXw=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(34000),
),
ArtistItem(
id: "UCZJnPgkQapYA9R12WJLDt9A",
name: "Saltatio Mortis",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/ko6qJfDzUT2wCDkVK_iCMeXZb9uImkbrKNlk3JgxgEhcCEHOB2LQlbE5zOuBINUnbPLK4-ch00luTcc=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/ko6qJfDzUT2wCDkVK_iCMeXZb9uImkbrKNlk3JgxgEhcCEHOB2LQlbE5zOuBINUnbPLK4-ch00luTcc=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(178000),
),
],
tracks_playlist_id: Some("OLAK5uy_m6843aeUO05cz_t1seql2dQ9eUgwyuOXI"),
videos_playlist_id: None,
)

View file

@ -0,0 +1,602 @@
---
source: src/client/music_artist.rs
expression: artist
---
MusicArtist(
id: "UCfwCE5VhPMGxNPFxtVv7lRw",
name: "Sulli",
header_image: [
Thumbnail(
url: "https://lh3.googleusercontent.com/En_CJ9QCHYDDgG7jsu0OOB5KoMs7V9tJB3MTCyg8AljIdSP8mEakr9nkjYhaJDyGp58-iM3XnZaDXg=w540-h225-p-l90-rj",
width: 540,
height: 225,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/En_CJ9QCHYDDgG7jsu0OOB5KoMs7V9tJB3MTCyg8AljIdSP8mEakr9nkjYhaJDyGp58-iM3XnZaDXg=w816-h340-p-l90-rj",
width: 816,
height: 340,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/En_CJ9QCHYDDgG7jsu0OOB5KoMs7V9tJB3MTCyg8AljIdSP8mEakr9nkjYhaJDyGp58-iM3XnZaDXg=w1440-h600-p-l90-rj",
width: 1440,
height: 600,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/En_CJ9QCHYDDgG7jsu0OOB5KoMs7V9tJB3MTCyg8AljIdSP8mEakr9nkjYhaJDyGp58-iM3XnZaDXg=w1920-h800-p-l90-rj",
width: 1920,
height: 800,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/En_CJ9QCHYDDgG7jsu0OOB5KoMs7V9tJB3MTCyg8AljIdSP8mEakr9nkjYhaJDyGp58-iM3XnZaDXg=w2880-h1200-p-l90-rj",
width: 2880,
height: 1200,
),
],
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: Some(74400),
tracks: [
TrackItem(
id: "BGcUVJXViqQ",
title: "고블린 Goblin",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/SCc0SBxnpEBmISPLVLwItpxpGBGwGRrJUa6N3Q6vVNcJVruUZBvtftSwcI0xtElvV4QVaJeQy78ikvO5=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/SCc0SBxnpEBmISPLVLwItpxpGBGwGRrJUa6N3Q6vVNcJVruUZBvtftSwcI0xtElvV4QVaJeQy78ikvO5=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UCfwCE5VhPMGxNPFxtVv7lRw"),
name: "SULLI",
),
],
album: Some(AlbumId(
id: "MPREb_vq8dZfFBEdx",
name: "고블린 Goblin",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "7_Bav4c7UGM",
title: "온더문 On The Moon",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/SCc0SBxnpEBmISPLVLwItpxpGBGwGRrJUa6N3Q6vVNcJVruUZBvtftSwcI0xtElvV4QVaJeQy78ikvO5=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/SCc0SBxnpEBmISPLVLwItpxpGBGwGRrJUa6N3Q6vVNcJVruUZBvtftSwcI0xtElvV4QVaJeQy78ikvO5=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UCfwCE5VhPMGxNPFxtVv7lRw"),
name: "SULLI",
),
],
album: Some(AlbumId(
id: "MPREb_vq8dZfFBEdx",
name: "고블린 Goblin",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "kzUZABVj5UQ",
title: "도로시 Dorothy",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/SCc0SBxnpEBmISPLVLwItpxpGBGwGRrJUa6N3Q6vVNcJVruUZBvtftSwcI0xtElvV4QVaJeQy78ikvO5=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/SCc0SBxnpEBmISPLVLwItpxpGBGwGRrJUa6N3Q6vVNcJVruUZBvtftSwcI0xtElvV4QVaJeQy78ikvO5=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UCfwCE5VhPMGxNPFxtVv7lRw"),
name: "SULLI",
),
],
album: Some(AlbumId(
id: "MPREb_vq8dZfFBEdx",
name: "고블린 Goblin",
)),
view_count: None,
is_video: false,
track_nr: None,
),
TrackItem(
id: "P5uE7KDkDFE",
title: "Goblin",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/P5uE7KDkDFE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3llrYCRxnw4lKD3-Nz8XgsTedWu_A",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/P5uE7KDkDFE/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lJxwuq6WRAww2nnRRATbKgPOmyGA",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCfwCE5VhPMGxNPFxtVv7lRw"),
name: "Sulli",
),
],
album: None,
view_count: Some(19000000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "kxjZwdLWFrc",
title: "SULLI 설리\' 온더문 (On The Moon)\' MV",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/kxjZwdLWFrc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mAf4PAbMqERr0Ee1z56KS0yU82Tw",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/kxjZwdLWFrc/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3mBJQ3I3ldM5NigZgE1j6lPOG2kQg",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UClGBYGUZmpzUaHgeb9gOBww"),
name: "𝐩𝐞𝐚𝐜𝐡𝐩𝐮𝐫𝐩𝐥𝐞",
),
],
album: None,
view_count: Some(206000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "-aneeaddeXc",
title: "⌗ ₊𓂃 dorothy — sulli 𔘓 sub. español",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/-aneeaddeXc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mXFvKO0hjv8jQKNLXiBWRKgv7khw",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/-aneeaddeXc/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3nYdbkrUXZsFDTmYxebG8XHLodWJw",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCfaO3pZL5XOr8BvNZkrKeVA"),
name: "iKissesByMaki",
),
],
album: None,
view_count: Some(10000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "YWijFdsj_Ew",
title: "sulli - goblin (sped up)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/YWijFdsj_Ew/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3khsx7ja4vd8nCPQmqwNDNbQyVARw",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/YWijFdsj_Ew/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3m7tYjzrUQ2a08rnUXXwNXJbqnNNg",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCgVWicpO5Jn3VfxqgIU6cpA"),
name: "Jpn Sch",
),
],
album: None,
view_count: Some(3600),
is_video: true,
track_nr: None,
),
TrackItem(
id: "94q_2Zsq2os",
title: "Sulli - On The Moon (sped up)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/94q_2Zsq2os/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kf1HgaRExXYDCNGVqeqe-TKxJ2aQ",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/94q_2Zsq2os/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3mbke4_Zc9nkj4NvVMlYpA7aSrkzQ",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCgVWicpO5Jn3VfxqgIU6cpA"),
name: "Jpn Sch",
),
],
album: None,
view_count: Some(2900),
is_video: true,
track_nr: None,
),
TrackItem(
id: "fBce3VihpIQ",
title: "sulli - goblin (sped up)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/fBce3VihpIQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nVd442JLu3mxKbipFglRgRift5cA",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/fBce3VihpIQ/sddefault.jpg?sqp=-oaymwEWCKoDEPABIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nxWW7AAdAGbEGuDXOVFgFaLW3XbA",
width: 426,
height: 240,
),
],
artists: [
ArtistId(
id: Some("UCwZLmi2q2ReEJvt-8bgVwwg"),
name: "e p i l o g u e",
),
],
album: None,
view_count: Some(11000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "0-HXdJc-zDQ",
title: "Sulli - Dorothy (sped up)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/0-HXdJc-zDQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l_Cj2X9UftBVID7UoJ708Dd6UGUA",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/0-HXdJc-zDQ/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3n2XskAJVpE4eQ3okG60Lf6dPPFqQ",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCgVWicpO5Jn3VfxqgIU6cpA"),
name: "Jpn Sch",
),
],
album: None,
view_count: Some(2200),
is_video: true,
track_nr: None,
),
TrackItem(
id: "Bae4Fv7GlMY",
title: "Sulli\'nin goblin M/V\'sindeki korkutucu detaylar!😱💥",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Bae4Fv7GlMY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nXyTG8uM24-GkmqaUvx2gQqjJO-g",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/Bae4Fv7GlMY/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3m2mg6beaz7Lg-zRFebE5jHHbiiJw",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCuoa8Ie9kA1-AKIjNhsIGxQ"),
name: "JenDia` #Emrlsoolarbenim",
),
],
album: None,
view_count: Some(6900),
is_video: true,
track_nr: None,
),
TrackItem(
id: "Rq_JkcROjsI",
title: "𝗀𝗈𝖻𝗅𝗂𝗇 // 𝗌𝗎𝗅𝗅𝗂𝗌𝗅𝗈𝗐𝖾𝖽 + 𝗋𝖾𝗏𝖾𝗋𝖻",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Rq_JkcROjsI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ntvxfQE8ErdwpxdksKA_Gtcza3Rw",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/Rq_JkcROjsI/sddefault.jpg?sqp=-oaymwEWCKoDEPABIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kyJ7LFsJWz4Ac44uL8GPxsRldOng",
width: 426,
height: 240,
),
],
artists: [
ArtistId(
id: Some("UCMPqKiPdiSoi8eCW5Dou1IQ"),
name: "ᴜᴋɪʏᴏ",
),
],
album: None,
view_count: Some(23000),
is_video: true,
track_nr: None,
),
TrackItem(
id: "STNyxlYFyVY",
title: "SULLI - Goblin (Clean Instrumental)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/STNyxlYFyVY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kIUZIKhsmVBW3hc_y-mSGHm3sVUw",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/STNyxlYFyVY/sddefault.jpg?sqp=-oaymwEWCKoDEPABIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mT5UrngK0tXHPf61FqSGMKjWZ7YA",
width: 426,
height: 240,
),
],
artists: [
ArtistId(
id: Some("UCFFvwAcyQhpeQfuAgBN1XZw"),
name: "Alan Buenrostro",
),
],
album: None,
view_count: Some(9900),
is_video: true,
track_nr: None,
),
],
albums: [
AlbumItem(
id: "MPREb_vq8dZfFBEdx",
name: "고블린 Goblin",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/SCc0SBxnpEBmISPLVLwItpxpGBGwGRrJUa6N3Q6vVNcJVruUZBvtftSwcI0xtElvV4QVaJeQy78ikvO5=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/SCc0SBxnpEBmISPLVLwItpxpGBGwGRrJUa6N3Q6vVNcJVruUZBvtftSwcI0xtElvV4QVaJeQy78ikvO5=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCfwCE5VhPMGxNPFxtVv7lRw"),
name: "Sulli",
),
],
album_type: Single,
year: Some(2019),
by_va: false,
),
],
playlists: [],
similar_artists: [
ArtistItem(
id: "UCHmZYTfdTyVKQEJicLiXEOg",
name: "Red Velvet",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/eGQ0NAW1LeeaD0V0pe5HFg2ENDqn-T4qJfi4zBrLuoMHmEzYEHzT64p95_45UdXWTB6WTMskbzfXNw=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/eGQ0NAW1LeeaD0V0pe5HFg2ENDqn-T4qJfi4zBrLuoMHmEzYEHzT64p95_45UdXWTB6WTMskbzfXNw=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(5200000),
),
ArtistItem(
id: "UCvAUJvMNPy1LLVKpFiu-X9w",
name: "SEULGI",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Gs5_FbRLCCPLjzgZgJ3Rzz9LJ-U4J825o2dTS-JRnEADJEt9qzMENRA52qRdVx8qavapNYsZDJX4jQ=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/Gs5_FbRLCCPLjzgZgJ3Rzz9LJ-U4J825o2dTS-JRnEADJEt9qzMENRA52qRdVx8qavapNYsZDJX4jQ=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(32100),
),
ArtistItem(
id: "UCyoD3vxUcLLdU1JQ0MMet-Q",
name: "Red Velvet - IRENE & SEULGI",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/jwZVdeVkLWjvoi5aXAKbT_ipid5krOyDCo9zGlMLm4uysvbtMwnYWHHemKmCLjM7DcsxNHfouD3caA=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/jwZVdeVkLWjvoi5aXAKbT_ipid5krOyDCo9zGlMLm4uysvbtMwnYWHHemKmCLjM7DcsxNHfouD3caA=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(34700),
),
ArtistItem(
id: "UCod8XS1t8Y9JADHv0AWDMLw",
name: "Seohyun",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/0uAuF9rHyOlwm18Q0c6DqjLwRzZWqGFwMLWCh5g802HYpy0AVa6VWs1jNmqXhcB-GAMw2fehnrF0P4s=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/0uAuF9rHyOlwm18Q0c6DqjLwRzZWqGFwMLWCh5g802HYpy0AVa6VWs1jNmqXhcB-GAMw2fehnrF0P4s=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(24400),
),
ArtistItem(
id: "UCOCo09j3eIVdj3HkbJ9c40Q",
name: "HYOYEON ",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/N46gjgCRMewGNJBym4Xqa10-GXxo97bcFf_MJeiAxZl2mQpbJn1MWGzzgmYBUG4XUIUlHpkHHrAZlOc=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/N46gjgCRMewGNJBym4Xqa10-GXxo97bcFf_MJeiAxZl2mQpbJn1MWGzzgmYBUG4XUIUlHpkHHrAZlOc=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(133000),
),
ArtistItem(
id: "UCmeskqhmPRuteGVH4yCXT0A",
name: "SUNMI",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/iTlnsDGGAJl_JUPgHmIbdDXC1woK_Rc9kS21KWf41o-SQAqB0MNbZTx9LTyixslcrszUt7Ju7HGKd6c=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/iTlnsDGGAJl_JUPgHmIbdDXC1woK_Rc9kS21KWf41o-SQAqB0MNbZTx9LTyixslcrszUt7Ju7HGKd6c=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(1480000),
),
ArtistItem(
id: "UCF9KUOyCpRNq67dDKlB0tbw",
name: "HA:TFELT",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/9FoZXRMcJp_iIMTqQJ4NHEYumcdwNYN1JfUC2aXUILrRFzbAypG9Yq1r6mMRQzVfDxZ_4OADbruAn5Q=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/9FoZXRMcJp_iIMTqQJ4NHEYumcdwNYN1JfUC2aXUILrRFzbAypG9Yq1r6mMRQzVfDxZ_4OADbruAn5Q=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(18300),
),
ArtistItem(
id: "UCVXeNwNQs07XQ8d1HtvuxVg",
name: "JEON SOYEON",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/wab1UdA-UM1humYF-FlF6tWxacpva7tN8IO67XhZaRZmBPcrQN4SASj0gcrycDc3_FwtwXJ-gTZ-PoPO=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/wab1UdA-UM1humYF-FlF6tWxacpva7tN8IO67XhZaRZmBPcrQN4SASj0gcrycDc3_FwtwXJ-gTZ-PoPO=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(26900),
),
ArtistItem(
id: "UCHHz6g3igy0BFUfCSiC_6aw",
name: "HyunA",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/L8EVj7a6sEbbj2oszOtVxQo_pJ6Mm1pIyVWcDXPyaEDynkHBa0yRMsxmfkwKBfPJSGLynsIM-CGjmw=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/L8EVj7a6sEbbj2oszOtVxQo_pJ6Mm1pIyVWcDXPyaEDynkHBa0yRMsxmfkwKBfPJSGLynsIM-CGjmw=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(3130000),
),
ArtistItem(
id: "UCveaR1hvVMrEQaKR6Xl8NDw",
name: "f(x)",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/VQcMudR55EKlNeZCdhQKLy1dh_nojH8YAqwjXPAl515U1hFham1IRGWhcPWITm1X3yUHSQBHUYSWlh0=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/VQcMudR55EKlNeZCdhQKLy1dh_nojH8YAqwjXPAl515U1hFham1IRGWhcPWITm1X3yUHSQBHUYSWlh0=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(474000),
),
],
tracks_playlist_id: None,
videos_playlist_id: Some("OLAK5uy_lmH3iVq6lqjsnLkBWzpvRTh0DidLzbU-I"),
)

View file

@ -41,7 +41,7 @@ MusicAlbum(
TrackItem(
id: "g0iRiJ_ck48",
title: "Aulë und Yavanna",
duration: 216,
duration: Some(216),
cover: [],
artists: [
ArtistId(
@ -60,7 +60,7 @@ MusicAlbum(
TrackItem(
id: "rREEBXp0y9s",
title: "Numenor",
duration: 224,
duration: Some(224),
cover: [],
artists: [
ArtistId(
@ -79,7 +79,7 @@ MusicAlbum(
TrackItem(
id: "zvU5Y8Q19hU",
title: "Das Mädchen und die Liebe (feat. Santiano)",
duration: 176,
duration: Some(176),
cover: [],
artists: [
ArtistId(
@ -98,7 +98,7 @@ MusicAlbum(
TrackItem(
id: "ARKLrzzTQA0",
title: "Niënna",
duration: 215,
duration: Some(215),
cover: [],
artists: [
ArtistId(
@ -117,7 +117,7 @@ MusicAlbum(
TrackItem(
id: "tstLgN8A_Ng",
title: "Der fahle Mond",
duration: 268,
duration: Some(268),
cover: [],
artists: [
ArtistId(
@ -136,7 +136,7 @@ MusicAlbum(
TrackItem(
id: "k2DjgQOY3Ts",
title: "Weise den Weg",
duration: 202,
duration: Some(202),
cover: [],
artists: [
ArtistId(
@ -155,7 +155,7 @@ MusicAlbum(
TrackItem(
id: "azHwhecxEsI",
title: "Zeit der Sommernächte",
duration: 185,
duration: Some(185),
cover: [],
artists: [
ArtistId(
@ -174,7 +174,7 @@ MusicAlbum(
TrackItem(
id: "_FcsdYIQ2co",
title: "Märchen enden gut",
duration: 226,
duration: Some(226),
cover: [],
artists: [
ArtistId(
@ -193,7 +193,7 @@ MusicAlbum(
TrackItem(
id: "27bOWEbshyE",
title: "Das Mädchen und der Tod",
duration: 207,
duration: Some(207),
cover: [],
artists: [
ArtistId(
@ -212,7 +212,7 @@ MusicAlbum(
TrackItem(
id: "riD_3oZwt8w",
title: "Wir sehn uns wieder",
duration: 211,
duration: Some(211),
cover: [],
artists: [
ArtistId(
@ -231,7 +231,7 @@ MusicAlbum(
TrackItem(
id: "8GNvjF3no9s",
title: "Tanz mit mir",
duration: 179,
duration: Some(179),
cover: [],
artists: [
ArtistId(
@ -250,7 +250,7 @@ MusicAlbum(
TrackItem(
id: "YHMFzf1uN2U",
title: "Nachtigall",
duration: 218,
duration: Some(218),
cover: [],
artists: [
ArtistId(
@ -269,7 +269,7 @@ MusicAlbum(
TrackItem(
id: "jvV-z5F3oAo",
title: "Gayatri Mantra",
duration: 277,
duration: Some(277),
cover: [],
artists: [
ArtistId(
@ -288,7 +288,7 @@ MusicAlbum(
TrackItem(
id: "u8_9cxlrh8k",
title: "Sing mir deine Lieder",
duration: 204,
duration: Some(204),
cover: [],
artists: [
ArtistId(
@ -307,7 +307,7 @@ MusicAlbum(
TrackItem(
id: "gSvKcvM1Wk0",
title: "Laurië lantar",
duration: 202,
duration: Some(202),
cover: [],
artists: [
ArtistId(
@ -326,7 +326,7 @@ MusicAlbum(
TrackItem(
id: "wQHgKRJ0pDQ",
title: "Wächter vor dem Tor",
duration: 222,
duration: Some(222),
cover: [],
artists: [
ArtistId(
@ -345,7 +345,7 @@ MusicAlbum(
TrackItem(
id: "Ckz5i6-hzf0",
title: "Stroh zu Gold",
duration: 177,
duration: Some(177),
cover: [],
artists: [
ArtistId(
@ -364,7 +364,7 @@ MusicAlbum(
TrackItem(
id: "y5zuUgyFqrc",
title: "Sonnenwendnacht",
duration: 220,
duration: Some(220),
cover: [],
artists: [
ArtistId(

View file

@ -45,7 +45,7 @@ MusicAlbum(
TrackItem(
id: "XX0epju-YvY",
title: "Der Himmel reißt auf",
duration: 183,
duration: Some(183),
cover: [],
artists: [
ArtistId(

View file

@ -36,7 +36,7 @@ MusicAlbum(
TrackItem(
id: "8IqLxg0GqXc",
title: "Waka Boom (My Way) (feat. Lee Young Ji)",
duration: 274,
duration: Some(274),
cover: [],
artists: [
ArtistId(
@ -55,7 +55,7 @@ MusicAlbum(
TrackItem(
id: "9WYpLYAEub0",
title: "AURA",
duration: 216,
duration: Some(216),
cover: [],
artists: [
ArtistId(
@ -74,7 +74,7 @@ MusicAlbum(
TrackItem(
id: "R48tE237bW4",
title: "THE GIRLS (Cant turn me down)",
duration: 239,
duration: Some(239),
cover: [],
artists: [
ArtistId(
@ -93,7 +93,7 @@ MusicAlbum(
TrackItem(
id: "-UzsoR6z-vg",
title: "Red Sun!",
duration: 254,
duration: Some(254),
cover: [],
artists: [
ArtistId(
@ -112,7 +112,7 @@ MusicAlbum(
TrackItem(
id: "kbNVyn8Ex28",
title: "POSE",
duration: 187,
duration: Some(187),
cover: [],
artists: [
ArtistId(
@ -131,7 +131,7 @@ MusicAlbum(
TrackItem(
id: "NJrQZUzWP5Y",
title: "Whistle",
duration: 224,
duration: Some(224),
cover: [],
artists: [
ArtistId(

View file

@ -35,7 +35,7 @@ MusicPlaylist(
TrackItem(
id: "Bkj3IVIO2Os",
title: "Die immer lacht (radio 2016 mix)",
duration: 216,
duration: Some(216),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Bkj3IVIO2Os/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kTlKI2Vxz6MI9hkXDdKE6VXabOjA",
@ -61,7 +61,7 @@ MusicPlaylist(
TrackItem(
id: "8rRj5ZXRNko",
title: "Faded Love",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/8rRj5ZXRNko/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l_fwzcVbV_AhJfo_V9z8kCCWo6DA",
@ -83,7 +83,7 @@ MusicPlaylist(
TrackItem(
id: "lHZtcC67yrY",
title: "Hulapalu",
duration: 188,
duration: Some(188),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/lHZtcC67yrY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mT2jzszatb6LxheIId6qwf6kG9mg",
@ -105,7 +105,7 @@ MusicPlaylist(
TrackItem(
id: "TSkVVVBS9k8",
title: "Was du Liebe nennst",
duration: 237,
duration: Some(237),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/TSkVVVBS9k8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lFFrBRqkhh4EKud1GwUPgudzm23w",
@ -127,7 +127,7 @@ MusicPlaylist(
TrackItem(
id: "lc-cnCRhE7c",
title: "Senorita (feat. Pietro Lombardi)",
duration: 250,
duration: Some(250),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/lc-cnCRhE7c/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mdOyIPLtIUkwm2-KRWQiYBdD1SUA",
@ -149,7 +149,7 @@ MusicPlaylist(
TrackItem(
id: "3ryohiCVq3M",
title: "Namika - Lieblingsmensch (Official Video)",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/3ryohiCVq3M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nsa7wZ13z3ie49RzcBHKQAmjlU9w",
@ -171,7 +171,7 @@ MusicPlaylist(
TrackItem(
id: "BNHamTwxJ6Q",
title: "Warum hast du nicht nein gesagt (Club Mix / Videoclip)",
duration: 217,
duration: Some(217),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/BNHamTwxJ6Q/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lTypysVT-TkZOZ8zLwCphzDniuJA",
@ -197,7 +197,7 @@ MusicPlaylist(
TrackItem(
id: "5mqelmYUcI0",
title: "Louis Louis",
duration: 218,
duration: Some(218),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5mqelmYUcI0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3myMhtMRqJzhWZbQEJRYSksXLN-ew",
@ -219,7 +219,7 @@ MusicPlaylist(
TrackItem(
id: "k9EYjn5f_nE",
title: "Auf uns",
duration: 244,
duration: Some(244),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/k9EYjn5f_nE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kZLQDAV5k4ulMK2CrbOLmZsvwx2w",
@ -241,7 +241,7 @@ MusicPlaylist(
TrackItem(
id: "fkMg_X9lHMc",
title: "Marteria - Kids (2 Finger an den Kopf) [Offizielles Video]",
duration: 230,
duration: Some(230),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/fkMg_X9lHMc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mX_nvoPQWTqcKs5rI8B9ziBF0t9w",
@ -263,7 +263,7 @@ MusicPlaylist(
TrackItem(
id: "4wOoLLDXbDY",
title: "Easy",
duration: 195,
duration: Some(195),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/4wOoLLDXbDY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kouOlp5qw3zb3XFPjYfQ9FzxXPbA",
@ -285,7 +285,7 @@ MusicPlaylist(
TrackItem(
id: "Z_mf9aCHag8",
title: "Bist Du Real (feat. moe.)",
duration: 186,
duration: Some(186),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Z_mf9aCHag8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ld-p3LsK8HUqaVtlxecr0bsRMtFw",
@ -307,7 +307,7 @@ MusicPlaylist(
TrackItem(
id: "cZ58odQo87A",
title: "Ich will nur dass du weißt - Radio Edit (feat. Adel Tawil)",
duration: 222,
duration: Some(222),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/cZ58odQo87A/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mihYNiPBsfwraGxrQy2MqDnImxwA",
@ -329,7 +329,7 @@ MusicPlaylist(
TrackItem(
id: "1il3RFk5Okw",
title: "Chöre (Willkommen bei den Hartmanns Version)",
duration: 209,
duration: Some(209),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1il3RFk5Okw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mYWNVVcJ0AY-lC2Y95JUBJCR8-oA",
@ -351,7 +351,7 @@ MusicPlaylist(
TrackItem(
id: "8WQMBv2deYQ",
title: "Traum",
duration: 219,
duration: Some(219),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/8WQMBv2deYQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kEHXTPowrmMKz11nlxLGkX6bevdg",
@ -373,7 +373,7 @@ MusicPlaylist(
TrackItem(
id: "vGrfFzagzHs",
title: "Whatever",
duration: 207,
duration: Some(207),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/vGrfFzagzHs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mAdnqOJHcb_a_MAyfO_rLMrC6iYA",
@ -395,7 +395,7 @@ MusicPlaylist(
TrackItem(
id: "1gDbpWC_9pE",
title: "Wie schön du bist",
duration: 216,
duration: Some(216),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1gDbpWC_9pE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m0oustVTewmbNs4-smVzIf_ASsjA",
@ -417,7 +417,7 @@ MusicPlaylist(
TrackItem(
id: "p-AWcCCbBHw",
title: "Heute mit mir",
duration: 256,
duration: Some(256),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/p-AWcCCbBHw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kfu3U-2SZ54FknbX0lM0XwDNQLgw",
@ -439,7 +439,7 @@ MusicPlaylist(
TrackItem(
id: "RPN88D_HjMU",
title: "Xavier Naidoo - Ich kenne nichts (Das so schön ist wie du) [Official Video]",
duration: 332,
duration: Some(332),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/RPN88D_HjMU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lbCw2LIIvCooCATt3tR3cA2T4l5g",
@ -465,7 +465,7 @@ MusicPlaylist(
TrackItem(
id: "5PST7Ld4wWU",
title: "Wenn sie tanzt (Single Version)",
duration: 225,
duration: Some(225),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5PST7Ld4wWU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3myi1Y-zZukbX-dNYFhfF1Nhj0Q_A",
@ -487,7 +487,7 @@ MusicPlaylist(
TrackItem(
id: "opoDBF_b-fg",
title: "Willst du",
duration: 307,
duration: Some(307),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/opoDBF_b-fg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3niJgIy4iTrKDPp-et6Kcby6eu30Q",
@ -509,7 +509,7 @@ MusicPlaylist(
TrackItem(
id: "AMT9IOyXmBM",
title: "Einer dieser Steine (feat. Mark Forster)",
duration: 258,
duration: Some(258),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/AMT9IOyXmBM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lYPOtI5KPGgfP9vXMB4bQoWIexLA",
@ -531,7 +531,7 @@ MusicPlaylist(
TrackItem(
id: "VP5B1UmgHfc",
title: "Ne Leiche (feat. Sido)",
duration: 328,
duration: Some(328),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/VP5B1UmgHfc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3khHbalen3wPNJc5Ig-ef5OWnqxCg",
@ -553,7 +553,7 @@ MusicPlaylist(
TrackItem(
id: "vcuQpbs0yT0",
title: "Ya Salam",
duration: 224,
duration: Some(224),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/vcuQpbs0yT0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l1mZ3gFx4ZUeOwEg2O6CmfXmo7QA",
@ -575,7 +575,7 @@ MusicPlaylist(
TrackItem(
id: "LeMLVEJLruQ",
title: "Ich & Du (feat. Sebastian Hämer)",
duration: 229,
duration: Some(229),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/LeMLVEJLruQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lUwcW-mGVDQ-6Xsqy6vJHecIdWhw",
@ -597,7 +597,7 @@ MusicPlaylist(
TrackItem(
id: "MtDPKJSsBgc",
title: "Au Revoir (Videoclip)",
duration: 227,
duration: Some(227),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/MtDPKJSsBgc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mtCVvrnjdivWPqmFkgBp8-VQUd5A",
@ -619,7 +619,7 @@ MusicPlaylist(
TrackItem(
id: "4tDpYxNYqPg",
title: "Scheissmelodie (Single Edit)",
duration: 209,
duration: Some(209),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/4tDpYxNYqPg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nnGp7fPKITHS1Tq1suJ84_RnrPkw",
@ -641,7 +641,7 @@ MusicPlaylist(
TrackItem(
id: "EkWjaoH7k6w",
title: "Ist da jemand (Official Video)",
duration: 251,
duration: Some(251),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/EkWjaoH7k6w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nw0l5xAB-2K6JHQFFEJFH906CIgg",
@ -663,7 +663,7 @@ MusicPlaylist(
TrackItem(
id: "tERRFWuYG48",
title: "Barfuß am Klavier",
duration: 202,
duration: Some(202),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/tERRFWuYG48/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k4aEijOPd3aWN7xvOughUamG9ACw",
@ -685,7 +685,7 @@ MusicPlaylist(
TrackItem(
id: "wCcJuN47UcY",
title: "Halt dich an mir fest",
duration: 213,
duration: Some(213),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/wCcJuN47UcY/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3mtG2Flx0lc7sY6lyYxtIpno95eQg",
@ -707,7 +707,7 @@ MusicPlaylist(
TrackItem(
id: "qdtLCfEcPL4",
title: "Alles neu",
duration: 272,
duration: Some(272),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/qdtLCfEcPL4/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3m_osOw2QtTxxwycq2RrWslFPWhfg",
@ -729,7 +729,7 @@ MusicPlaylist(
TrackItem(
id: "wjXUBG15eZ8",
title: "Holz",
duration: 214,
duration: Some(214),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/wjXUBG15eZ8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3khBDXvSeCb_7IsUISEaX7_dhJQ8w",
@ -751,7 +751,7 @@ MusicPlaylist(
TrackItem(
id: "HBjDZMJUduo",
title: "Nein, Mann! (Radio Edit)",
duration: 231,
duration: Some(231),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/HBjDZMJUduo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mB_mR0YNDGsWaZPWZddMXRnPHr1g",
@ -773,7 +773,7 @@ MusicPlaylist(
TrackItem(
id: "xkXQQ0IAbk0",
title: "Bon Voyage (Alistair x KidSoFly Remix (Remix EP))",
duration: 159,
duration: Some(159),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/xkXQQ0IAbk0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ka09iD00BF1_D9KsUXERZ8zY9_Xg",
@ -795,7 +795,7 @@ MusicPlaylist(
TrackItem(
id: "DraA3PUuoQc",
title: "Pocahontas",
duration: 192,
duration: Some(192),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/DraA3PUuoQc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nU3AhorATafuOpXE-orIOoCtnw3g",
@ -817,7 +817,7 @@ MusicPlaylist(
TrackItem(
id: "wMIGQp4YhuU",
title: "Alles kann besser werden",
duration: 269,
duration: Some(269),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/wMIGQp4YhuU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kgG0ouxeTQ7BCeaqRG2oLFtLQhGg",
@ -839,7 +839,7 @@ MusicPlaylist(
TrackItem(
id: "38lrK74voaI",
title: "Magisch (feat. Edin)",
duration: 270,
duration: Some(270),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/38lrK74voaI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kavNC9zr9q0GfWWn-c25rj2ep28g",
@ -861,7 +861,7 @@ MusicPlaylist(
TrackItem(
id: "2qW9rOSFF1M",
title: "An ihnen vorbei",
duration: 220,
duration: Some(220),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2qW9rOSFF1M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lTtEDqW8TwUHZD7U-3VM-qjbUaqQ",
@ -887,7 +887,7 @@ MusicPlaylist(
TrackItem(
id: "tMILH6UEfPA",
title: "Kleiner Cabrón (Instrumental)",
duration: 213,
duration: Some(213),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/tMILH6UEfPA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n4g5pYZWQH6UINg328x5kzcUolpA",
@ -909,7 +909,7 @@ MusicPlaylist(
TrackItem(
id: "izHB2EdMngg",
title: "Ich sterb für dich",
duration: 190,
duration: Some(190),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/izHB2EdMngg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3khtYLkIs89vT-dwMLKY5-jpedF_g",
@ -931,7 +931,7 @@ MusicPlaylist(
TrackItem(
id: "haECT-SerHk",
title: "Atemlos durch die Nacht (A | Class Kuduro edit)",
duration: 219,
duration: Some(219),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/haECT-SerHk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lrxWOpxaHuPba39j_Rwlw5tYofjw",
@ -953,7 +953,7 @@ MusicPlaylist(
TrackItem(
id: "cVikZ8Oe_XA",
title: "Rock Me Amadeus",
duration: 225,
duration: Some(225),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/cVikZ8Oe_XA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m_u9Xin9-FSfoIDZxA3nNkALAtVQ",
@ -975,7 +975,7 @@ MusicPlaylist(
TrackItem(
id: "drFsXLChrWc",
title: "Holland",
duration: 213,
duration: Some(213),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/drFsXLChrWc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nPM4uqyt2bwQsSG_lRKcqYoF8hfg",
@ -997,7 +997,7 @@ MusicPlaylist(
TrackItem(
id: "1EMFt7m_8yE",
title: "Ich muss immer an dich denken",
duration: 217,
duration: Some(217),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1EMFt7m_8yE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kvX5MQwEshP9FNSP2XsAo_Ii5ewQ",
@ -1019,7 +1019,7 @@ MusicPlaylist(
TrackItem(
id: "_yWU0lFghxU",
title: "Ding (feat. Saïan Supa Crew)",
duration: 211,
duration: Some(211),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/_yWU0lFghxU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mP4_adKMOCTTt3h2qovYUUFoLaVw",
@ -1041,7 +1041,7 @@ MusicPlaylist(
TrackItem(
id: "XlD-LO3ogFM",
title: "Wir sind groß (Lyric Video)",
duration: 204,
duration: Some(204),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/XlD-LO3ogFM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m--iMwqpwie5EUV0lTwADap40-DQ",
@ -1063,7 +1063,7 @@ MusicPlaylist(
TrackItem(
id: "nAzjWqNfgvc",
title: "Unter meiner Haut (Radio Mix) (feat. Wincent Weiss)",
duration: 218,
duration: Some(218),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/nAzjWqNfgvc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nfhNip3eZaKmCcF1FfieWhBsouCA",
@ -1089,7 +1089,7 @@ MusicPlaylist(
TrackItem(
id: "PySC3RGhZJU",
title: "Bad Chick",
duration: 218,
duration: Some(218),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/PySC3RGhZJU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mFI-zFWxPpn5zXuUvNa-vEqJeA8w",
@ -1111,7 +1111,7 @@ MusicPlaylist(
TrackItem(
id: "G-iwLoyH6ZE",
title: "Nur noch Gucci",
duration: 232,
duration: Some(232),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/G-iwLoyH6ZE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ndgQ2lWMftCIarXt4OlsKHgZjh0g",
@ -1133,7 +1133,7 @@ MusicPlaylist(
TrackItem(
id: "fgCOUO-s8nY",
title: "Still (Videoclip)",
duration: 238,
duration: Some(238),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/fgCOUO-s8nY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nmjkfmmM0rwVZWiemGIcVknIyRCg",
@ -1155,7 +1155,7 @@ MusicPlaylist(
TrackItem(
id: "m-Ik3yy728Y",
title: "Auf anderen Wegen",
duration: 245,
duration: Some(245),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/m-Ik3yy728Y/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mPWMCElmGpQ6wf8qQYdnQhXzSo_Q",
@ -1177,7 +1177,7 @@ MusicPlaylist(
TrackItem(
id: "U0_UYW5Y4cM",
title: "I sing a Liad für di",
duration: 188,
duration: Some(188),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/U0_UYW5Y4cM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kstlZ5oWaI0UDUi33gp-p8LTsTqg",
@ -1199,7 +1199,7 @@ MusicPlaylist(
TrackItem(
id: "rsrDYTEicq8",
title: "Primo",
duration: 214,
duration: Some(214),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/rsrDYTEicq8/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3mJp9n_p4eW3L8Zd3TU8H6q9hEsUA",
@ -1221,7 +1221,7 @@ MusicPlaylist(
TrackItem(
id: "2aU4wRgl_0E",
title: "Nice Girl 2.0",
duration: 169,
duration: Some(169),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2aU4wRgl_0E/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mzl9po_tzR0-9o3gfK0u6BoFuAqg",
@ -1243,7 +1243,7 @@ MusicPlaylist(
TrackItem(
id: "FzcJxJAxFtw",
title: "Ti amo",
duration: 267,
duration: Some(267),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/FzcJxJAxFtw/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3kQAy5J3NliA0XtuBZ0TDlqCv1E0g",
@ -1269,7 +1269,7 @@ MusicPlaylist(
TrackItem(
id: "2hyibXdOp5w",
title: "XAVAS (Xavier Naidoo & Kool Savas) \"Schau nicht mehr zurück\" (Official HD Video 2012)",
duration: 234,
duration: Some(234),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2hyibXdOp5w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n6pZRqSg9PltCZfan7D5xkh36fLQ",
@ -1291,7 +1291,7 @@ MusicPlaylist(
TrackItem(
id: "YaKG5cUVB30",
title: "Ali Bumaye - Sex ohne Grund feat. Shindy",
duration: 166,
duration: Some(166),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/YaKG5cUVB30/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n-1O-hS54saO21vhbjt_cILkuNyA",
@ -1313,7 +1313,7 @@ MusicPlaylist(
TrackItem(
id: "Ahwc-ouFeTQ",
title: "Willst du",
duration: 224,
duration: Some(224),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Ahwc-ouFeTQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mzliNJk8IdOTF1icm1sUn7axMs3Q",
@ -1335,7 +1335,7 @@ MusicPlaylist(
TrackItem(
id: "SoImFhORKpg",
title: "Bonez MC & RAF Camora feat. Gzuz & Maxwell - Kontrollieren (prod. by Beataura & RAF Camora)",
duration: 232,
duration: Some(232),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/SoImFhORKpg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3na-bHZp1y6wJa81skoL9oJp6sybw",
@ -1357,7 +1357,7 @@ MusicPlaylist(
TrackItem(
id: "jP4-XrbGt3M",
title: "Sowieso",
duration: 161,
duration: Some(161),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/jP4-XrbGt3M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lQkpadJVO-Aohi1K7Xkwyk6lx2oQ",
@ -1379,7 +1379,7 @@ MusicPlaylist(
TrackItem(
id: "Yy2RsG4lnm4",
title: "1000 Träume weit (Tornero)",
duration: 254,
duration: Some(254),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Yy2RsG4lnm4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kH9KUmouysPz3W9cYkXGO4xmGN3g",
@ -1401,7 +1401,7 @@ MusicPlaylist(
TrackItem(
id: "388e_8mu1t4",
title: "SDP feat. Sido - Die Nacht von Freitag auf Montag",
duration: 241,
duration: Some(241),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/388e_8mu1t4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mHF9bGUcmdh-0xzqokqmebxPmptw",
@ -1423,7 +1423,7 @@ MusicPlaylist(
TrackItem(
id: "dHHtPi-j7dQ",
title: "Wolke 7",
duration: 239,
duration: Some(239),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/dHHtPi-j7dQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3msZKqCNGVk5parIVPV_Q6DGlLD-Q",
@ -1445,7 +1445,7 @@ MusicPlaylist(
TrackItem(
id: "d8ERTCVXIUE",
title: "Lass sie tanzen (Square Dance) [Instrumental]",
duration: 251,
duration: Some(251),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/d8ERTCVXIUE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nXYuXL118J9ixIrqPAgsaecQEymg",
@ -1467,7 +1467,7 @@ MusicPlaylist(
TrackItem(
id: "vQXn3EzzYY4",
title: "Weil Du mich nur verarscht hast (Instrumental)",
duration: 208,
duration: Some(208),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/vQXn3EzzYY4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lnmi3lPkqi4pyHclQ-2UiHO8eOcg",
@ -1489,7 +1489,7 @@ MusicPlaylist(
TrackItem(
id: "zA-BTpC-yvI",
title: "Qa bone",
duration: 202,
duration: Some(202),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/zA-BTpC-yvI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mUVzHYdBK5has09n-_DRf2MiTQig",
@ -1511,7 +1511,7 @@ MusicPlaylist(
TrackItem(
id: "rnzIN9H_G10",
title: "Leiser (Pseudo Video)",
duration: 209,
duration: Some(209),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/rnzIN9H_G10/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n4Wt1x4HutMM-rOLZnwT-yUUJYAw",
@ -1533,7 +1533,7 @@ MusicPlaylist(
TrackItem(
id: "fcBbT1GTxqM",
title: "Kay One - Ich brech die Herzen",
duration: 229,
duration: Some(229),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/fcBbT1GTxqM/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3nFXmCI3boY29fznF06UEhuLqCI8A",
@ -1555,7 +1555,7 @@ MusicPlaylist(
TrackItem(
id: "wCDsm_dt1cI",
title: "Du schaffst das schon (Oktoberfest-Mix)",
duration: 190,
duration: Some(190),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/wCDsm_dt1cI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nrWf7svEJMoTZFyzZUXrAj-fbjPg",
@ -1577,7 +1577,7 @@ MusicPlaylist(
TrackItem(
id: "4j3AOJV1J8I",
title: "23 - Bushido & Sido feat. Peter Maffay - Erwachsen sein",
duration: 218,
duration: Some(218),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/4j3AOJV1J8I/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k7G40_B-QsI47BTObeHSXDJp_YKQ",
@ -1599,7 +1599,7 @@ MusicPlaylist(
TrackItem(
id: "RtuW08ZIgvg",
title: "Und wenn ein Lied - Radio Edit",
duration: 249,
duration: Some(249),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/RtuW08ZIgvg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n92_W3cp4nU9At3Bp7A5NJiTz07Q",
@ -1621,7 +1621,7 @@ MusicPlaylist(
TrackItem(
id: "cbTXqKBIQ40",
title: "Eiserner Steg [Klavier Version] (feat. Matthias Schweighöfer)",
duration: 250,
duration: Some(250),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/cbTXqKBIQ40/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mfnaL8_s3iYj0EhPtPdQKa5Q4KuQ",
@ -1643,7 +1643,7 @@ MusicPlaylist(
TrackItem(
id: "oSd0Lph4luY",
title: "Deja Vu (Instrumental)",
duration: 229,
duration: Some(229),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/oSd0Lph4luY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lGkBNHVbBkECYRU_hVZeMnlChJqQ",
@ -1665,7 +1665,7 @@ MusicPlaylist(
TrackItem(
id: "oq0rrYrufYU",
title: "Herz über Kopf (Official Video)",
duration: 209,
duration: Some(209),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/oq0rrYrufYU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mOMQ_a1JzMtNAg6ct1-YKmSrxsBw",
@ -1687,7 +1687,7 @@ MusicPlaylist(
TrackItem(
id: "0-P_YkS0z8s",
title: "Augenblick (feat. Summer Cem)",
duration: 208,
duration: Some(208),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/0-P_YkS0z8s/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mZaGU8H6n-ZWVBKersvuamy54mxA",
@ -1709,7 +1709,7 @@ MusicPlaylist(
TrackItem(
id: "4BAKb2p450Q",
title: "Nur noch kurz die Welt retten",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/4BAKb2p450Q/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n2hrN7GF37duCFMPLPKjfVxY7qrA",
@ -1731,7 +1731,7 @@ MusicPlaylist(
TrackItem(
id: "yqObMM_QzVQ",
title: "Im Ascheregen",
duration: 303,
duration: Some(303),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/yqObMM_QzVQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nkAqu3SUZrUmUN1EcQt00FQTmyKA",
@ -1753,7 +1753,7 @@ MusicPlaylist(
TrackItem(
id: "dlvStoOyEzE",
title: "Du bist schön",
duration: 246,
duration: Some(246),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/dlvStoOyEzE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kXzRe8O5ktyB5uCOEH65QEIjHMEA",
@ -1775,7 +1775,7 @@ MusicPlaylist(
TrackItem(
id: "VNttGAaek2U",
title: "Lass uns gehen",
duration: 214,
duration: Some(214),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/VNttGAaek2U/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lF0kIaWKUGXVoCjclXhwKuF4kjYA",
@ -1797,7 +1797,7 @@ MusicPlaylist(
TrackItem(
id: "TxZMfufRJfo",
title: "Oft gefragt",
duration: 189,
duration: Some(189),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/TxZMfufRJfo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kUjXR2WNMkTz23tVxt_GEH16R5Qw",
@ -1819,7 +1819,7 @@ MusicPlaylist(
TrackItem(
id: "6agT2asF4as",
title: "Mon Chéri",
duration: 230,
duration: Some(230),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/6agT2asF4as/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kwObKE9HKfxV7VIYXVjT362uuUkg",
@ -1841,7 +1841,7 @@ MusicPlaylist(
TrackItem(
id: "EcW0n83La5A",
title: "Lieblingslied",
duration: 212,
duration: Some(212),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/EcW0n83La5A/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m2ZRtRiJH7GX97dB1PAKpDtdJjvA",
@ -1863,7 +1863,7 @@ MusicPlaylist(
TrackItem(
id: "_b61hg8UlZM",
title: "Lambo Diablo GT",
duration: 285,
duration: Some(285),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/_b61hg8UlZM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lJI1DFuirYMxvCHGAyWeKqrspqCg",
@ -1885,7 +1885,7 @@ MusicPlaylist(
TrackItem(
id: "kDMFranvFuQ",
title: "Diese Liebe",
duration: 359,
duration: Some(359),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/kDMFranvFuQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nMHTxjmESbG-avOxWEHI90YBYNwQ",
@ -1907,7 +1907,7 @@ MusicPlaylist(
TrackItem(
id: "1apku0pVDeE",
title: "Feuerwerk",
duration: 213,
duration: Some(213),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1apku0pVDeE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3klW08RZkY4CZCBVdgP09it-pvPQA",
@ -1929,7 +1929,7 @@ MusicPlaylist(
TrackItem(
id: "g6JYzOjglBs",
title: "Aufstehn! (feat. CeeLo Green)",
duration: 231,
duration: Some(231),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/g6JYzOjglBs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nIHajbtUTurQeGCtR5Ak6XxCS1Jw",
@ -1951,7 +1951,7 @@ MusicPlaylist(
TrackItem(
id: "GYK-NfOo7b4",
title: "Dickes B (feat. Black Kappa)",
duration: 240,
duration: Some(240),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/GYK-NfOo7b4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k-P3yrpLnEZy0eF_XArYwiEw_U0A",
@ -1973,7 +1973,7 @@ MusicPlaylist(
TrackItem(
id: "omUuR45iU0g",
title: "Hayvan (feat. Summer Cem)",
duration: 291,
duration: Some(291),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/omUuR45iU0g/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l3q63dT3Zpe-VxDrt84smPJQrX6g",
@ -1995,7 +1995,7 @@ MusicPlaylist(
TrackItem(
id: "w7BE3inS-NM",
title: "Bis hier und noch weiter (Official Video) (feat. KC Rebell & Summer Cem)",
duration: 228,
duration: Some(228),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/w7BE3inS-NM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mwAvexX8kV3fB-YSFhA8l6hUp-ng",
@ -2017,7 +2017,7 @@ MusicPlaylist(
TrackItem(
id: "FM-5BPMnhm0",
title: "Tanz aus der Reihe!",
duration: 234,
duration: Some(234),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/FM-5BPMnhm0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3neYDa-6mgFDVGPOvSUIET0unmRNg",
@ -2039,7 +2039,7 @@ MusicPlaylist(
TrackItem(
id: "MnNZNfixTOw",
title: "Wie soll ein Mensch das ertragen",
duration: 278,
duration: Some(278),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/MnNZNfixTOw/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3mFUmyqOgyCgXrmSeHbLHYOjuB8YA",
@ -2061,7 +2061,7 @@ MusicPlaylist(
TrackItem(
id: "qe80EeU8cT8",
title: "Wann (MTV Unplugged) (feat. Cassandra Steen)",
duration: 327,
duration: Some(327),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/qe80EeU8cT8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3maHo7hlWZ2sb7tKItIl01uVCHBmA",
@ -2083,7 +2083,7 @@ MusicPlaylist(
TrackItem(
id: "-s2-6KYgqpQ",
title: "Narben",
duration: 264,
duration: Some(264),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/-s2-6KYgqpQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nt9ak1_BwlsnOCWPDgJyxIr5cMaQ",
@ -2105,7 +2105,7 @@ MusicPlaylist(
TrackItem(
id: "RSlp874hESE",
title: "Kollegah & Farid Bang - \"ZIEH DEN RUCKSACK AUS\" [ official Video ]",
duration: 162,
duration: Some(162),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/RSlp874hESE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3muUIDaLUg7v3LnIS0YYo6bpUWD1Q",
@ -2131,7 +2131,7 @@ MusicPlaylist(
TrackItem(
id: "oTI3tRQ_-3k",
title: "SDP - Wenn ich groß bin",
duration: 225,
duration: Some(225),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/oTI3tRQ_-3k/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n03HYB7ESYRchW7sTtbvl911Hfyg",
@ -2153,7 +2153,7 @@ MusicPlaylist(
TrackItem(
id: "_okA84gaEJw",
title: "Von Party zu Party",
duration: 221,
duration: Some(221),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/_okA84gaEJw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mPgZSWA9tVjCTA3yo5MQH7RpbW2w",
@ -2175,7 +2175,7 @@ MusicPlaylist(
TrackItem(
id: "pLHnnJRaP7Q",
title: "Herzrasen (Original Radio Edit)",
duration: 207,
duration: Some(207),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/pLHnnJRaP7Q/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kUiMSXirWiHBmVNV2MDJnWJcqMng",
@ -2197,7 +2197,7 @@ MusicPlaylist(
TrackItem(
id: "H2hGrsExuyc",
title: "¿ Was hast du gedacht ?",
duration: 188,
duration: Some(188),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/H2hGrsExuyc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kaz8Rg92gey55IXtV5HHa636nlaA",
@ -2219,7 +2219,7 @@ MusicPlaylist(
TrackItem(
id: "RsZvjqG2lec",
title: "Wenn Worte meine Sprache wären",
duration: 196,
duration: Some(196),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/RsZvjqG2lec/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3luIOtskw4y7w33W3ZBYW39F4GTbA",
@ -2241,7 +2241,7 @@ MusicPlaylist(
TrackItem(
id: "qYRCiQ6d35w",
title: "Mörder (instrumental)",
duration: 240,
duration: Some(240),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/qYRCiQ6d35w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ljER1YYPIkdz00BCahMExaOq3_JA",

View file

@ -35,7 +35,7 @@ MusicPlaylist(
TrackItem(
id: "X82TrticM4A",
title: "Minecraft SHINE (Trailer)",
duration: 80,
duration: Some(80),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/X82TrticM4A/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nivzZQqwACPH9pzwQwDy20PgV64Q",
@ -57,7 +57,7 @@ MusicPlaylist(
TrackItem(
id: "RPGLMuxkLCs",
title: "DAS LAGERFEUERLIED - Minecraft SHINE #001 [Deutsch/HD]",
duration: 1356,
duration: Some(1356),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/RPGLMuxkLCs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kpG3-WbedUEIN2W58FsKa6UgvVJA",
@ -79,7 +79,7 @@ MusicPlaylist(
TrackItem(
id: "z-ALpnnQLrk",
title: "MAGISCHES FURZMONSTER - Minecraft SHINE #002 [Deutsch/HD]",
duration: 1039,
duration: Some(1039),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/z-ALpnnQLrk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mbMsAE6zz4MehUtbjiTFKVHotD0Q",
@ -101,7 +101,7 @@ MusicPlaylist(
TrackItem(
id: "_rrbTTv8zcQ",
title: "UNTERIRDISCHE RIESENPILZHÖHLEN - Minecraft SHINE #003 [Deutsch/HD]",
duration: 1447,
duration: Some(1447),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/_rrbTTv8zcQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k-47cLTpVH32KeqsUQcuDpHxUjQA",
@ -123,7 +123,7 @@ MusicPlaylist(
TrackItem(
id: "JE16OKTawLw",
title: "BESTE AXT IM SPIEL GEFUNDEN?! - Minecraft SHINE #004 [Deutsch/HD]",
duration: 1238,
duration: Some(1238),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/JE16OKTawLw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lqhDNUP-QmFKCBgxFv_WgMaCc63Q",
@ -145,7 +145,7 @@ MusicPlaylist(
TrackItem(
id: "RQNY0Wzm7DQ",
title: "ERZERAUSCH IM MINENSCHACHT - Minecraft SHINE #005 [Deutsch/HD]",
duration: 1405,
duration: Some(1405),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/RQNY0Wzm7DQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mOSs7fAPps74cF9lhm7FbRJyeHSA",
@ -167,7 +167,7 @@ MusicPlaylist(
TrackItem(
id: "uhy24PKBkd0",
title: "FUSIONSOFEN & ERSTER IM NETHER?! - Minecraft SHINE #006 [Deutsch/HD]",
duration: 1569,
duration: Some(1569),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/uhy24PKBkd0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kJfmS0G07o6nFT9tKKaeX3x_FLaQ",
@ -189,7 +189,7 @@ MusicPlaylist(
TrackItem(
id: "OL1hQadBHfs",
title: "EPISCHER ROGUEDUNGEON - Minecraft SHINE #007 [Deutsch/HD]",
duration: 1534,
duration: Some(1534),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/OL1hQadBHfs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lqRJq6PnrJZVq8TeFWK4VIruBxQA",
@ -211,7 +211,7 @@ MusicPlaylist(
TrackItem(
id: "Zge_SUfk0r8",
title: "DIAMANTZOMBIES auf NETHEREBENE - Minecraft SHINE #008 [Deutsch/HD]",
duration: 1726,
duration: Some(1726),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Zge_SUfk0r8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n41mnRJl4yWSxOwxupspPqFqekjA",
@ -233,7 +233,7 @@ MusicPlaylist(
TrackItem(
id: "yFGIeU_IDE4",
title: "HÖLLISCHE SCHLACHT um 2 DIAMANTBLÖCKE - Minecraft SHINE #009 [Deutsch/HD]",
duration: 1669,
duration: Some(1669),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/yFGIeU_IDE4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lbzdfq9miiP3GhAvBIqiDjeXZzDg",
@ -255,7 +255,7 @@ MusicPlaylist(
TrackItem(
id: "P6MVqfQzPIg",
title: "MAGISCHER OBSIDIANTOTEM?! - Minecraft SHINE #010 [Deutsch/HD]",
duration: 1526,
duration: Some(1526),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/P6MVqfQzPIg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kl1QNMQWUnHSg_K6qiRyIEpN-WQw",
@ -277,7 +277,7 @@ MusicPlaylist(
TrackItem(
id: "9n0pLDn8Z_I",
title: "GRÜNER FEUEROGER & WITHERWARZEN - Minecraft SHINE #011 [Deutsch/HD]",
duration: 1482,
duration: Some(1482),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/9n0pLDn8Z_I/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nzp4un-py3mdKGnq43cu_B7GWCvQ",
@ -299,7 +299,7 @@ MusicPlaylist(
TrackItem(
id: "oXbx2YtIkeQ",
title: "MYSTERIÖSES Grab & ONYX ohne ENDE!! - Minecraft SHINE #012 [Deutsch/HD]",
duration: 1518,
duration: Some(1518),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/oXbx2YtIkeQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lQ0JdJSCDuaRqNCcbjpjohG4tmwg",
@ -321,7 +321,7 @@ MusicPlaylist(
TrackItem(
id: "pfBBTTwxo8Q",
title: "ATLANTIS ENTDECKT!! - Minecraft SHINE #013 [Deutsch/HD]",
duration: 1479,
duration: Some(1479),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/pfBBTTwxo8Q/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lTpGAZOMN6khRpFIiu9VbgLwsauw",
@ -343,7 +343,7 @@ MusicPlaylist(
TrackItem(
id: "WxtRqzxSAh0",
title: "ZUSAMMENFASSUNG & Nodop\'s ANGRIFF - Minecraft SHINE #014 [Deutsch/HD]",
duration: 1902,
duration: Some(1902),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/WxtRqzxSAh0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mj2sEe61_ri9Qi2bOKKmpxXazdfg",
@ -365,7 +365,7 @@ MusicPlaylist(
TrackItem(
id: "ianUckvxtLw",
title: "FRIEDHOFDUNGEON mit NODÖPCHEN - Minecraft SHINE #016 [Deutsch/HD]",
duration: 1766,
duration: Some(1766),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ianUckvxtLw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nAAEYhQfE5_Ph_he5nM9_HmU9wWQ",
@ -387,7 +387,7 @@ MusicPlaylist(
TrackItem(
id: "eb2Ghj1g1ic",
title: "Die BESTE FALLE aller ZEITEN!! - Minecraft SHINE #015 [Deutsch/HD]",
duration: 1324,
duration: Some(1324),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/eb2Ghj1g1ic/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mW-rtF12OP3BjTqHUlRj55SCh91A",
@ -409,7 +409,7 @@ MusicPlaylist(
TrackItem(
id: "8TpEsyVtCog",
title: "MEGAGEMETZEL zu FÜNFT - Minecraft SHINE #017 [Deutsch/HD]",
duration: 1629,
duration: Some(1629),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/8TpEsyVtCog/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3moI9jIudWeH7AMj4nsHxG4USDhOA",
@ -431,7 +431,7 @@ MusicPlaylist(
TrackItem(
id: "KD_WAei4LMg",
title: "WITHER BOSSFIGHT - Minecraft SHINE #018 [Deutsch/HD]",
duration: 1645,
duration: Some(1645),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/KD_WAei4LMg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nxeyexNK6QTi3VcRYTFpNhzGnluw",
@ -453,7 +453,7 @@ MusicPlaylist(
TrackItem(
id: "qfpOCrtweKk",
title: "LABERSTUNDE mit ArazhulHD - Minecraft SHINE #019 [Deutsch/HD]",
duration: 1052,
duration: Some(1052),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/qfpOCrtweKk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kQCZL4AJPY0TiZixnWrZhs3zX3jA",
@ -475,7 +475,7 @@ MusicPlaylist(
TrackItem(
id: "6gv3nrOA_bQ",
title: "BUSRITUALE & Seltsame LEHRER - Minecraft SHINE #021 [Deutsch/HD]",
duration: 1769,
duration: Some(1769),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/6gv3nrOA_bQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lxB3GOzVouBoQjUGjF-xg2sPCyIQ",
@ -497,7 +497,7 @@ MusicPlaylist(
TrackItem(
id: "waaic6UnkU8",
title: "LEHM, LEHM und mehr LEEEHM!! - Minecraft SHINE #022 [Deutsch/HD]",
duration: 1081,
duration: Some(1081),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/waaic6UnkU8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k2SAgNNjiG5NcOZTojVe4zjHkF2Q",
@ -519,7 +519,7 @@ MusicPlaylist(
TrackItem(
id: "lSy4MLC_uV4",
title: "Neue DIMENSIONEN?? - Minecraft SHINE #023 [Deutsch/HD]",
duration: 1682,
duration: Some(1682),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/lSy4MLC_uV4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nZHeRK2vfO3nEE3YhoSZviQvrk1A",
@ -541,7 +541,7 @@ MusicPlaylist(
TrackItem(
id: "BuN8-U_quok",
title: "DUNGEONSTATUEN - Minecraft SHINE #024 [Deutsch/HD]",
duration: 1597,
duration: Some(1597),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/BuN8-U_quok/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lWh9-QydZXiZwInLdePVuuXJ_Z2Q",
@ -563,7 +563,7 @@ MusicPlaylist(
TrackItem(
id: "g_UTG10nzaQ",
title: "THYRIUMBOGEN & Dimensional DOORS - Minecraft SHINE #025 [Deutsch/HD]",
duration: 1852,
duration: Some(1852),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/g_UTG10nzaQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nNF-xrE9X4dGACkT_v9NPX9oiDuA",
@ -585,7 +585,7 @@ MusicPlaylist(
TrackItem(
id: "kNykFWaDbGw",
title: "MEIN ERSTER PVP KILL?! - Minecraft SHINE #026 [Deutsch/HD]",
duration: 1869,
duration: Some(1869),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/kNykFWaDbGw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nDffGijVSy58PFzp0NB-XsuHS8pg",
@ -607,7 +607,7 @@ MusicPlaylist(
TrackItem(
id: "gJF7vxCYTgY",
title: "SPELLBOUND FARM - Minecraft SHINE #027 [Deutsch/HD]",
duration: 2161,
duration: Some(2161),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/gJF7vxCYTgY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lMbARI9FgF0nPjZ7rsShWLgroSlA",
@ -629,7 +629,7 @@ MusicPlaylist(
TrackItem(
id: "CodZMQ_Anc0",
title: "VIEEELE bunte ZAUBERPILZE - Minecraft SHINE #028 [Deutsch/HD]",
duration: 1768,
duration: Some(1768),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/CodZMQ_Anc0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nkR6qDHsqGbsILeExY7BgZexQSkQ",
@ -651,7 +651,7 @@ MusicPlaylist(
TrackItem(
id: "oKHMTKJdZ_M",
title: "STREAMUPDATE & BIOMREISE - Minecraft SHINE #029 [Deutsch/HD]",
duration: 1771,
duration: Some(1771),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/oKHMTKJdZ_M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mjXhxLdgQqHHdv8lA0YrDv59G84A",
@ -673,7 +673,7 @@ MusicPlaylist(
TrackItem(
id: "--O_Eyok_eE",
title: "AUF NACH TROPICRAFT - Minecraft SHINE #030 [Deutsch/HD]",
duration: 1661,
duration: Some(1661),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/--O_Eyok_eE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kQBqjgoM1MT3MusDWdkYIgmTKL9w",
@ -695,7 +695,7 @@ MusicPlaylist(
TrackItem(
id: "2bT3ljKMSo8",
title: "SCHATZTRUHE GEFUNDEN!! - Minecraft SHINE #031 [Deutsch/HD]",
duration: 1429,
duration: Some(1429),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2bT3ljKMSo8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lyc2WBq364Ax9gHHZfJ1Ew2_20uA",
@ -717,7 +717,7 @@ MusicPlaylist(
TrackItem(
id: "YRAX_slrbsI",
title: "ZAUBERWALD und TROPISCHER DSCHUNGEL - Minecraft SHINE #032 [Deutsch/HD]",
duration: 1257,
duration: Some(1257),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/YRAX_slrbsI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kxCCJPbkTdrB9BH01YmwLYv8OMZA",
@ -739,7 +739,7 @@ MusicPlaylist(
TrackItem(
id: "aRRbCEwUSuw",
title: "MESABIOM & JOUSTS - Minecraft SHINE #033 [Deutsch/HD]",
duration: 1131,
duration: Some(1131),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/aRRbCEwUSuw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kYqyi6vO9kSl-zTUBNHXDI-p9xAQ",
@ -761,7 +761,7 @@ MusicPlaylist(
TrackItem(
id: "5sV8SzTbJS8",
title: "Komplette SMELTERY GEFUNDEN!! - Minecraft SHINE #034 [Deutsch/HD]",
duration: 1405,
duration: Some(1405),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5sV8SzTbJS8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m5NRhG_o7_Ci-AxCaMID0wZbByoA",
@ -783,7 +783,7 @@ MusicPlaylist(
TrackItem(
id: "ZxxZlU2o1TE",
title: "ROGUEDUNGEON EXTREME - Minecraft SHINE #035 [Deutsch/HD]",
duration: 1555,
duration: Some(1555),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ZxxZlU2o1TE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3le1mFnc_5-gTK1Ow51Yg4NTBhrvA",
@ -805,7 +805,7 @@ MusicPlaylist(
TrackItem(
id: "gIjo5at4AxE",
title: "LEGENDÄRER LOOT - Minecraft SHINE #036 [Deutsch/HD]",
duration: 1405,
duration: Some(1405),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/gIjo5at4AxE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3krl-qwkZnRmYMJIKaVxVTOIUU8kA",
@ -827,7 +827,7 @@ MusicPlaylist(
TrackItem(
id: "NSGk7-kyeEU",
title: "I BELIEVE I CAN FLY - Minecraft SHINE #037 [Deutsch/HD]",
duration: 829,
duration: Some(829),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/NSGk7-kyeEU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nHEjckBWee5umayWXmHNxTCoUaKg",
@ -849,7 +849,7 @@ MusicPlaylist(
TrackItem(
id: "cgJtZ7Otc4Y",
title: "ROGUEFRIEDHOF mit WITHERBOSS - Minecraft SHINE #038 [Deutsch/HD]",
duration: 1392,
duration: Some(1392),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/cgJtZ7Otc4Y/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mLD7V-7FqftQmyXf7muAZpNDvupQ",
@ -871,7 +871,7 @@ MusicPlaylist(
TrackItem(
id: "l5LQu3Q0nWY",
title: "MONSTERCALYPSE & RETTUNGSAKTION - Minecraft SHINE #039 [Deutsch/HD]",
duration: 1580,
duration: Some(1580),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/l5LQu3Q0nWY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l6gXW1BZoRBII58tl47HW-V1UT8w",
@ -893,7 +893,7 @@ MusicPlaylist(
TrackItem(
id: "YX4Z3ZlWUFc",
title: "HINTERHALT von GEGNERN!! - Minecraft SHINE #040 [Deutsch/HD]",
duration: 1847,
duration: Some(1847),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/YX4Z3ZlWUFc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kPFPkgNfAr6nkTfcWvxawCIzDu2w",
@ -915,7 +915,7 @@ MusicPlaylist(
TrackItem(
id: "LoyvqR41lKw",
title: "CARPENTER\'s BLOCKS - Minecraft SHINE #041 [Deutsch/HD]",
duration: 1524,
duration: Some(1524),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/LoyvqR41lKw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l3jZd5n7Myg0_Ii_Ifltvqp-R4AA",
@ -937,7 +937,7 @@ MusicPlaylist(
TrackItem(
id: "HbQtMZbtx_Q",
title: "DER ETERNAL FROST!! - Minecraft SHINE #043 [Deutsch/HD]",
duration: 1514,
duration: Some(1514),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/HbQtMZbtx_Q/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mWss1o7iQ67zHFEitZtetz5GoGEg",
@ -959,7 +959,7 @@ MusicPlaylist(
TrackItem(
id: "0DHRbP9ecgw",
title: "FROSTDUNGEONS in der OVERWORLD!! - Minecraft SHINE #044 [Deutsch/HD]",
duration: 1567,
duration: Some(1567),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/0DHRbP9ecgw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n_QE05w3itQ1TRyc9E9y6L_06GLg",
@ -981,7 +981,7 @@ MusicPlaylist(
TrackItem(
id: "rFOFkvk-xus",
title: "BOSSRÜSTUNG XXL - Minecraft SHINE #045 [Deutsch/HD]",
duration: 2050,
duration: Some(2050),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/rFOFkvk-xus/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lj9ceijuhmYChED05kLBRpc9p_SQ",
@ -1003,7 +1003,7 @@ MusicPlaylist(
TrackItem(
id: "P8zxnSihJ_8",
title: "ZAUBERN & TROLLEN mit Nodop - Minecraft SHINE #046 [Deutsch/HD]",
duration: 1828,
duration: Some(1828),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/P8zxnSihJ_8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nbaYtnTCvIRa8SW36iucASQIguPg",
@ -1025,7 +1025,7 @@ MusicPlaylist(
TrackItem(
id: "RWgeHl9XkCY",
title: "NACHHILFE für BALUI - Minecraft SHINE #047 [Deutsch/HD]",
duration: 1926,
duration: Some(1926),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/RWgeHl9XkCY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mrWtRCoS4SgY5L-ny8nQglQrjdPA",
@ -1047,7 +1047,7 @@ MusicPlaylist(
TrackItem(
id: "I1n539enNNY",
title: "SPIELER GETÖTET!! - Minecraft SHINE #048 [Deutsch/HD]",
duration: 1836,
duration: Some(1836),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/I1n539enNNY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mcPWzeMscfdUZhr6h5BsZI78177A",
@ -1069,7 +1069,7 @@ MusicPlaylist(
TrackItem(
id: "70VKekyZz5g",
title: "VORBEREITUNG auf den DRACHEN - Minecraft SHINE #049 [Deutsch/HD]",
duration: 1916,
duration: Some(1916),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/70VKekyZz5g/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l5yRZbsMfTSLEfK1dNLuWILeDsEg",
@ -1091,7 +1091,7 @@ MusicPlaylist(
TrackItem(
id: "2OWJ1bwFu6Y",
title: "Donnernder ENDERDRACHENKAMPF - Minecraft SHINE #050 [Deutsch/HD]",
duration: 1718,
duration: Some(1718),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2OWJ1bwFu6Y/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lugfNC-Zh8G5uQLHoAxhnS0G9sZg",
@ -1113,7 +1113,7 @@ MusicPlaylist(
TrackItem(
id: "zLiSA2i-niw",
title: "Superspitzhacke & Necrotic Bones - Minecraft SHINE #051 [Deutsch/HD]",
duration: 1253,
duration: Some(1253),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/zLiSA2i-niw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mb20op3gDkg9U4NklTIOQe7kUaNA",
@ -1135,7 +1135,7 @@ MusicPlaylist(
TrackItem(
id: "wyXlw7nMpko",
title: "TREMEP, das ENDERAUGE!! - Minecraft SHINE #052 [Deutsch/HD]",
duration: 1924,
duration: Some(1924),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/wyXlw7nMpko/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l00tU-IXggLeXkPJRJGsJ8BPhA1A",
@ -1157,7 +1157,7 @@ MusicPlaylist(
TrackItem(
id: "NrU4fhzvFpA",
title: "TORNADO & ENDERPOKALYPSE!! - Minecraft SHINE #053 [Deutsch/HD]",
duration: 1654,
duration: Some(1654),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/NrU4fhzvFpA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kM1EYWvcRpgJl_Mw7Zg2TasKcBSg",
@ -1179,7 +1179,7 @@ MusicPlaylist(
TrackItem(
id: "1xhKegaA1hQ",
title: "RIESIGE SMELTERY - Minecraft SHINE #054 [Deutsch/HD]",
duration: 1796,
duration: Some(1796),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1xhKegaA1hQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n2elhSKG8zA0QWoox-GJVSFhaBoA",
@ -1201,7 +1201,7 @@ MusicPlaylist(
TrackItem(
id: "9F4lZ8psBtg",
title: "TINKER\'s CONSTRUCT - Minecraft SHINE #055 [Deutsch/HD]",
duration: 1514,
duration: Some(1514),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/9F4lZ8psBtg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nRO-KNuojQya_YJdI5dfrk_LLgPg",
@ -1223,7 +1223,7 @@ MusicPlaylist(
TrackItem(
id: "G3uUtejX9to",
title: "CUTLASS und HAMMERACTION - Minecraft SHINE #056 [Deutsch/HD]",
duration: 1615,
duration: Some(1615),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/G3uUtejX9to/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3laFrg1g0Y-9XlpbBEDfXAttnRIZQ",
@ -1245,7 +1245,7 @@ MusicPlaylist(
TrackItem(
id: "-0Xn5pViCss",
title: "QUARZFESTIVAL - Minecraft SHINE #057 [Deutsch/HD]",
duration: 1353,
duration: Some(1353),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/-0Xn5pViCss/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mepxuqMea2FGk6pkCfYsixfLaocg",
@ -1267,7 +1267,7 @@ MusicPlaylist(
TrackItem(
id: "a7u71Fco99I",
title: "DUALWITHERKAMPF & EXOSUIT - Minecraft SHINE #058 [Deutsch/HD]",
duration: 1377,
duration: Some(1377),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/a7u71Fco99I/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n7aMGHQ6L6e6ujUrmSoSgboj5osg",
@ -1289,7 +1289,7 @@ MusicPlaylist(
TrackItem(
id: "H6uUbvcgKdk",
title: "ALLE GETROLLT?! 1. APRIL!! - Minecraft SHINE #060 [Deutsch/HD]",
duration: 1751,
duration: Some(1751),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/H6uUbvcgKdk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lL6wDfDt_wTa4HsOcZ3fql-nlBCQ",
@ -1311,7 +1311,7 @@ MusicPlaylist(
TrackItem(
id: "tPRTCauHtkw",
title: "THAUMELONE - Minecraft SHINE #061 [Deutsch/HD]",
duration: 1604,
duration: Some(1604),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/tPRTCauHtkw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k-Hw3vpTUncppf7Xg3kcBKxKSrlA",
@ -1333,7 +1333,7 @@ MusicPlaylist(
TrackItem(
id: "pMKAQExcarM",
title: "ICH BIN EIN MAGIER!! - Minecraft SHINE #062 [Deutsch/HD]",
duration: 1202,
duration: Some(1202),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/pMKAQExcarM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lhlWXYhK63IksNVSBOrbP8hHudpg",
@ -1355,7 +1355,7 @@ MusicPlaylist(
TrackItem(
id: "7E-z-7KCdBI",
title: "ENDER PORTER und SPELLBOUND - Minecraft SHINE #063 [Deutsch/HD]",
duration: 1715,
duration: Some(1715),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/7E-z-7KCdBI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mYEE8T0T-5udk6CLh3SVx2AjMMvQ",
@ -1377,7 +1377,7 @@ MusicPlaylist(
TrackItem(
id: "EPtbC0ZVddo",
title: "PORTABLE HOLE & Melonenstatuen - Minecraft SHINE #064 [Deutsch/HD]",
duration: 1696,
duration: Some(1696),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/EPtbC0ZVddo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n23Y37oDfphp8kX6iep55VJGVrsA",
@ -1399,7 +1399,7 @@ MusicPlaylist(
TrackItem(
id: "TpPHng0eGJs",
title: "ZUKUNFT des PROJEKTS - Minecraft SHINE #065 [Deutsch/HD]",
duration: 1215,
duration: Some(1215),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/TpPHng0eGJs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lnejqxwmupyk33UTgHgFWh1AYX2w",
@ -1421,7 +1421,7 @@ MusicPlaylist(
TrackItem(
id: "rt2QFQwJYcs",
title: "GIGANTISCHER METEOR!! - Minecraft SHINE #066 [Deutsch/HD]",
duration: 1593,
duration: Some(1593),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/rt2QFQwJYcs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kH8Y_MMEhrqwPxuMlXLPxqZM7XCg",
@ -1443,7 +1443,7 @@ MusicPlaylist(
TrackItem(
id: "WPyfaztFDQ4",
title: "Der EREBUS und die GHAST QUEEN - Minecraft SHINE #067 [Deutsch/HD]",
duration: 1687,
duration: Some(1687),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/WPyfaztFDQ4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mA90SjZqQTOFCyanCBkyGSeOkcXA",
@ -1465,7 +1465,7 @@ MusicPlaylist(
TrackItem(
id: "5lmumP0DaUw",
title: "MINI-BEST OF und KABOOM!! - Minecraft SHINE #069 (Finale) [Deutsch/HD]",
duration: 1044,
duration: Some(1044),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5lmumP0DaUw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m_3yQx4232OWXHorx5wWMuPeqwqQ",

View file

@ -37,7 +37,7 @@ MusicPlaylist(
TrackItem(
id: "ospQ06jJe-I",
title: "Lift Me Up (Visualizer)",
duration: 197,
duration: Some(197),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ospQ06jJe-I/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n50xSGwxNwOgBzfF1-mxofFn8EzQ",
@ -59,7 +59,7 @@ MusicPlaylist(
TrackItem(
id: "nBZlrbrBO1I",
title: "Forget Me",
duration: 257,
duration: Some(257),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/nBZlrbrBO1I/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lDgaZGsuA2HV3H9wiNvDXrRdEZRg",
@ -81,7 +81,7 @@ MusicPlaylist(
TrackItem(
id: "AcTDlsUej2w",
title: "Come Back Home (From \"Purple Hearts\")",
duration: 204,
duration: Some(204),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/AcTDlsUej2w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lKvHMpT_0G8AJ5IGCgLlTbAaun9Q",
@ -103,7 +103,7 @@ MusicPlaylist(
TrackItem(
id: "k6ZoE4RrcDs",
title: "Overpass Graffiti",
duration: 287,
duration: Some(287),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/k6ZoE4RrcDs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lrDlLXxFjVDQBZtgO7bJQGfazQ7A",
@ -125,7 +125,7 @@ MusicPlaylist(
TrackItem(
id: "2n5GKLdrTfk",
title: "In The Stars (Lyric Video)",
duration: 217,
duration: Some(217),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2n5GKLdrTfk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3la_KUHZCJMxdsL_uOpyYby0ZU4iQ",
@ -147,7 +147,7 @@ MusicPlaylist(
TrackItem(
id: "psuRGfAaju4",
title: "Fireflies",
duration: 233,
duration: Some(233),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/psuRGfAaju4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kDlw4WaUYkwVdOg2eaCWRi534MWA",
@ -169,7 +169,7 @@ MusicPlaylist(
TrackItem(
id: "_JGGLJMpVks",
title: "TV",
duration: 282,
duration: Some(282),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/_JGGLJMpVks/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mo4imyJ5IlcWcE54AfzRO_Np8_2Q",
@ -191,7 +191,7 @@ MusicPlaylist(
TrackItem(
id: "1YUBbF24H44",
title: "because i liked a boy (Official Video)",
duration: 206,
duration: Some(206),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1YUBbF24H44/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lCaOfJvuCPAG-LGiuJd3-wV1zKGQ",
@ -213,7 +213,7 @@ MusicPlaylist(
TrackItem(
id: "E0WRQpjckYg",
title: "Older (feat. Sierra Deaton)",
duration: 197,
duration: Some(197),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/E0WRQpjckYg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kxvtkj06LuylhlKcvIeaft1urPPg",
@ -235,7 +235,7 @@ MusicPlaylist(
TrackItem(
id: "mqiH0ZSkM9I",
title: "Hold Back the River",
duration: 247,
duration: Some(247),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/mqiH0ZSkM9I/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n4bwz3GqhZi1wrtp9zc9PVltEcmg",
@ -257,7 +257,7 @@ MusicPlaylist(
TrackItem(
id: "UAWcs5H-qgQ",
title: "The A Team",
duration: 290,
duration: Some(290),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/UAWcs5H-qgQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nvyeAuyBTKPOYtTjGHHQZ6kFU7Dw",
@ -279,7 +279,7 @@ MusicPlaylist(
TrackItem(
id: "bqO3Y5e4Dow",
title: "Hard For Me",
duration: 173,
duration: Some(173),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/bqO3Y5e4Dow/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nhxyVJjUBhhF8y7w6x5oaol3wcrg",
@ -301,7 +301,7 @@ MusicPlaylist(
TrackItem(
id: "ouEezpuPc3A",
title: "Dont Give Up on Me (from “Five Feet Apart”)",
duration: 216,
duration: Some(216),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ouEezpuPc3A/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kwc0Tq2t2Klpgrxjhp4FrJP6VShQ",
@ -323,7 +323,7 @@ MusicPlaylist(
TrackItem(
id: "i-qT5n_5Mys",
title: "Happiest Year",
duration: 278,
duration: Some(278),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/i-qT5n_5Mys/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k4ujPJ7jOI4Sb_c2lYAPP_YtRfiA",
@ -345,7 +345,7 @@ MusicPlaylist(
TrackItem(
id: "PMGY8fLwess",
title: "Falling Like The Stars",
duration: 256,
duration: Some(256),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/PMGY8fLwess/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3neuVwtFvWzlTsDWi7lH9VSEs0WWg",
@ -367,7 +367,7 @@ MusicPlaylist(
TrackItem(
id: "2ebfSItB0oM",
title: "Take Me Home",
duration: 273,
duration: Some(273),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2ebfSItB0oM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n1gsxcPxdCcMgZdjc_d8254fauFA",
@ -389,7 +389,7 @@ MusicPlaylist(
TrackItem(
id: "c4BLVznuWnU",
title: "Lego House",
duration: 246,
duration: Some(246),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/c4BLVznuWnU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lUSEaVj-cHaSb4PrApKlQt71cg_A",
@ -411,7 +411,7 @@ MusicPlaylist(
TrackItem(
id: "c0wUKCekI34",
title: "Another Day (Official Music Video)",
duration: 188,
duration: Some(188),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/c0wUKCekI34/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n2oTAIAhHWG0WmcjsD-OKevXOLVw",
@ -433,7 +433,7 @@ MusicPlaylist(
TrackItem(
id: "vNfgVjZF8_4",
title: "Someday (Official Music Video)",
duration: 192,
duration: Some(192),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/vNfgVjZF8_4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mbbKMAQbN_Fi0OdoU0PKHBXYeW8A",
@ -455,7 +455,7 @@ MusicPlaylist(
TrackItem(
id: "XPpTgCho5ZA",
title: "This Love Closed Captioned",
duration: 206,
duration: Some(206),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/XPpTgCho5ZA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lF5ZClWWDxuCWZejD6z1_Q0KnsZw",
@ -477,7 +477,7 @@ MusicPlaylist(
TrackItem(
id: "-oqAU5VxFWs",
title: "Mr. Jones",
duration: 270,
duration: Some(270),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/-oqAU5VxFWs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kc3B5pGUntRaVTN4w0HuBObS1Xgw",
@ -499,7 +499,7 @@ MusicPlaylist(
TrackItem(
id: "CA1VHbdq5hY",
title: "Lie Again (Official Music Video)",
duration: 236,
duration: Some(236),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/CA1VHbdq5hY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lVicEMNq-Lbm8-M5DtPxmf-mN7Cw",
@ -521,7 +521,7 @@ MusicPlaylist(
TrackItem(
id: "aNzCDt2eidg",
title: "Skinny Love",
duration: 214,
duration: Some(214),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/aNzCDt2eidg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lOi3Gsd65hICL5DMl2Lw1QAjBJfw",
@ -543,7 +543,7 @@ MusicPlaylist(
TrackItem(
id: "A48hOToMuRE",
title: "Outnumbered",
duration: 247,
duration: Some(247),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/A48hOToMuRE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kWIjd5ObawW5e6oLyWpWwYeudB0A",
@ -565,7 +565,7 @@ MusicPlaylist(
TrackItem(
id: "qHm9MG9xw1o",
title: "Secrets",
duration: 233,
duration: Some(233),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/qHm9MG9xw1o/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nv0PWMm8_KtFZ4_x2t3FJjOqG1jg",
@ -587,7 +587,7 @@ MusicPlaylist(
TrackItem(
id: "74NhLkjIeMs",
title: "Yours",
duration: 201,
duration: Some(201),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/74NhLkjIeMs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nJTZD4UEXTRkmt5R7rabNCyxCPsQ",
@ -609,7 +609,7 @@ MusicPlaylist(
TrackItem(
id: "EptPhiK_q0E",
title: "Let Somebody Go (Lyric Video) (feat. Selena Gomez)",
duration: 242,
duration: Some(242),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/EptPhiK_q0E/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mweEoHACM5efQHnyyJKRXRpXAjCQ",
@ -631,7 +631,7 @@ MusicPlaylist(
TrackItem(
id: "44u7_wQ1s0g",
title: "Wonder Woman",
duration: 167,
duration: Some(167),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/44u7_wQ1s0g/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lzfYeHyY6vYrvwsMLJT4P7OCDJjw",
@ -653,7 +653,7 @@ MusicPlaylist(
TrackItem(
id: "toOyxylnNkI",
title: "How Could You (Official Audio)",
duration: 186,
duration: Some(186),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/toOyxylnNkI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kvcmxI8ykCv3FXhSqqNGqhEcJgfA",
@ -675,7 +675,7 @@ MusicPlaylist(
TrackItem(
id: "ljXSjIph5ZM",
title: "Too Much to Ask",
duration: 226,
duration: Some(226),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ljXSjIph5ZM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mSL3xzzOU0vFlQ5Xb2mJcQ8hQCdA",
@ -697,7 +697,7 @@ MusicPlaylist(
TrackItem(
id: "DJFMRLIe-0o",
title: "Lie to Me",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/DJFMRLIe-0o/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ngDk_WvEMJRIHyKnhSvSnz23wyjA",
@ -723,7 +723,7 @@ MusicPlaylist(
TrackItem(
id: "goqqohUitmw",
title: "People Watching (Official Video)",
duration: 210,
duration: Some(210),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/goqqohUitmw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nF59JY1VUGZGGRLkH2GbfJQoS-lA",
@ -745,7 +745,7 @@ MusicPlaylist(
TrackItem(
id: "_LwX7GCE5rI",
title: "Slide Away",
duration: 236,
duration: Some(236),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/_LwX7GCE5rI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nQT7AxTGduzdz1cQriuDmJaDJPUA",
@ -767,7 +767,7 @@ MusicPlaylist(
TrackItem(
id: "7KHPC-kEQOA",
title: "WDIA (Would Do It Again) (Official Lyric Video)",
duration: 193,
duration: Some(193),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/7KHPC-kEQOA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kH4SnPlfWwgU5zihC31jKBSV3MNg",
@ -793,7 +793,7 @@ MusicPlaylist(
TrackItem(
id: "26PAgklYYvo",
title: "Broken Strings (feat. Nelly Furtado)",
duration: 261,
duration: Some(261),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/26PAgklYYvo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mE0ZaGvhX4fuk4jMbGnUVobyOZkQ",
@ -815,7 +815,7 @@ MusicPlaylist(
TrackItem(
id: "bO3S8CKafbE",
title: "Put A Little Love On Me (Official)",
duration: 235,
duration: Some(235),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/bO3S8CKafbE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nlINmSh9HJitH-RhrIcGzPUrlQCw",
@ -837,7 +837,7 @@ MusicPlaylist(
TrackItem(
id: "tMsbeyeTtpk",
title: "I\'ll Never Not Love You",
duration: 245,
duration: Some(245),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/tMsbeyeTtpk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mIcb3jD5OQAAPJgx3YS3GjoJtCrg",
@ -859,7 +859,7 @@ MusicPlaylist(
TrackItem(
id: "fvXn3rmhdc4",
title: "Better Alone",
duration: 209,
duration: Some(209),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/fvXn3rmhdc4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kOj6_zdIUnCWcfD7QEZDDkTevuzw",
@ -881,7 +881,7 @@ MusicPlaylist(
TrackItem(
id: "2p4n7JgdCsc",
title: "As If (Official Video)",
duration: 336,
duration: Some(336),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2p4n7JgdCsc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mvJZHMmPBb5poN6y_2DI9CnQxwGw",
@ -903,7 +903,7 @@ MusicPlaylist(
TrackItem(
id: "HtNS1afUOnE",
title: "Stop And Stare Closed Captioned",
duration: 295,
duration: Some(295),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/HtNS1afUOnE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nkvdF3ri-NDPtXTIDMnkoRMlp-BQ",
@ -925,7 +925,7 @@ MusicPlaylist(
TrackItem(
id: "ufbDvPaVrzs",
title: "Innocence and Sadness (Live From Mission Sound Studios, Brook...",
duration: 252,
duration: Some(252),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ufbDvPaVrzs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mdmnD9uMmJBP892QNhw7uOtOXIDw",
@ -947,7 +947,7 @@ MusicPlaylist(
TrackItem(
id: "H1_icnjg6MY",
title: "Blue",
duration: 207,
duration: Some(207),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/H1_icnjg6MY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ljLcOMB9kfZM-G408ktgTTkxsE8w",
@ -969,7 +969,7 @@ MusicPlaylist(
TrackItem(
id: "7Lna4Hu4-AQ",
title: "Butterflies",
duration: 195,
duration: Some(195),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/7Lna4Hu4-AQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mxC6pR5RYjv_poXr__qKmg-8wLnA",
@ -995,7 +995,7 @@ MusicPlaylist(
TrackItem(
id: "K9qu2QMBguw",
title: "I See Fire (From \"The Hobbit - The Desolation Of Smaug\")",
duration: 300,
duration: Some(300),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Ws1f5n6DsXCc6Zofk6TVtSbwQbTSTPYp4ejud1Y4UFnnm2Vrkox6rL7ZHPVOOpJcfrKqvuU3hCitv3Ht=w60-h60-l90-rj",
@ -1025,7 +1025,7 @@ MusicPlaylist(
TrackItem(
id: "uWeqeQkjLto",
title: "1973",
duration: 234,
duration: Some(234),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/uWeqeQkjLto/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l-iCUvOTBf7GnlKh2uJKrfXXk8Bw",
@ -1047,7 +1047,7 @@ MusicPlaylist(
TrackItem(
id: "X_ZOGHUWwqE",
title: "Kids Again",
duration: 214,
duration: Some(214),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/X_ZOGHUWwqE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mbyv7cWR83S4zssvpbRgYcP-mT6w",
@ -1069,7 +1069,7 @@ MusicPlaylist(
TrackItem(
id: "mHeK0Cwr9sg",
title: "Hero",
duration: 197,
duration: Some(197),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/mHeK0Cwr9sg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lufjrgFaxFaC4QBlW4oR0JMkAjSg",
@ -1091,7 +1091,7 @@ MusicPlaylist(
TrackItem(
id: "0Bf3CJZ4hvg",
title: "When You Love Someone",
duration: 227,
duration: Some(227),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/0Bf3CJZ4hvg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mQeDaCXjB4aoYLFd7TmPQRpaFfUg",
@ -1113,7 +1113,7 @@ MusicPlaylist(
TrackItem(
id: "7TCncxWNcPU",
title: "Mr. Forgettable",
duration: 188,
duration: Some(188),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/7TCncxWNcPU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n7SKvfiHl6twW7WnecHlqbcq4QqQ",
@ -1135,7 +1135,7 @@ MusicPlaylist(
TrackItem(
id: "PxNYvk_0Onw",
title: "Please Don\'t Say You Love Me",
duration: 208,
duration: Some(208),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/PxNYvk_0Onw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ni2HlsptPuTlx48hnFq4ki0V9S0w",
@ -1157,7 +1157,7 @@ MusicPlaylist(
TrackItem(
id: "WLoWBe9BRP4",
title: "Good Without (Official Music Video)",
duration: 187,
duration: Some(187),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/WLoWBe9BRP4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kA4Q-cge2WcQVKFNckJ-lIazPRKA",
@ -1179,7 +1179,7 @@ MusicPlaylist(
TrackItem(
id: "1XYLKoEETVA",
title: "Hold Me Like You Used To",
duration: 193,
duration: Some(193),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1XYLKoEETVA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nx_eNWxTGTDXaPqLSuukQKN1RZzA",
@ -1201,7 +1201,7 @@ MusicPlaylist(
TrackItem(
id: "Ghl_vkEV3tc",
title: "Mr. Percocet (Official Video)",
duration: 193,
duration: Some(193),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Ghl_vkEV3tc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mCpEi3kvRL8t9mA0s1r6YIMb9gOQ",
@ -1223,7 +1223,7 @@ MusicPlaylist(
TrackItem(
id: "5qHRMFQ0pLg",
title: "Dreamer",
duration: 182,
duration: Some(182),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5qHRMFQ0pLg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lOCDKr-LdYqynvw30bPrNSuVCaJg",
@ -1245,7 +1245,7 @@ MusicPlaylist(
TrackItem(
id: "X-vispdELDo",
title: "Survive My Own Mind (Official Music Video)",
duration: 199,
duration: Some(199),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/X-vispdELDo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lFSv0DKeiTvIFRkVMK1ywulZr5pw",
@ -1267,7 +1267,7 @@ MusicPlaylist(
TrackItem(
id: "il_L6c_fOvs",
title: "amnesia - Camylio (Visualizer)",
duration: 173,
duration: Some(173),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/il_L6c_fOvs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l_G3bAstg0Sm2Ih9FMPUnBEnEgTg",
@ -1289,7 +1289,7 @@ MusicPlaylist(
TrackItem(
id: "hCjcgoubkPM",
title: "Mess Her Up (Official Video)",
duration: 226,
duration: Some(226),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/hCjcgoubkPM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nYCfw2p8vpKc0fL2Zoj8PIbFfIKA",
@ -1311,7 +1311,7 @@ MusicPlaylist(
TrackItem(
id: "nwXlRq_QyTI",
title: "A Little Bit Yours (Mandarin Version) (feat. Eric Chou)",
duration: 246,
duration: Some(246),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/nwXlRq_QyTI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k6r5bFCkwwiVkUeMyqM1-0q7SimQ",
@ -1333,7 +1333,7 @@ MusicPlaylist(
TrackItem(
id: "ZdsER1S3t8k",
title: "Hurt Somebody",
duration: 175,
duration: Some(175),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ZdsER1S3t8k/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kA687he6KBmVWlxJC6TiUGqhkc5Q",
@ -1359,7 +1359,7 @@ MusicPlaylist(
TrackItem(
id: "fyrsExw_LUg",
title: "Bad",
duration: 243,
duration: Some(243),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/fyrsExw_LUg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lJ1aALIGud5NM_my5NkpSItniM8A",
@ -1381,7 +1381,7 @@ MusicPlaylist(
TrackItem(
id: "BS4t017LSoA",
title: "Bad Habits (Acoustic Version)",
duration: 233,
duration: Some(233),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/C8f5HPHhFHaXtg7GbL_MXeaQ_nlWSCDyUWLPy7UfsrkoG0Ogt4d4c8TKdwHWApeTZgcV89hLvOv2i3E=w60-h60-l90-rj",
@ -1411,7 +1411,7 @@ MusicPlaylist(
TrackItem(
id: "0AYzzzBaPBI",
title: "They Own This Town",
duration: 246,
duration: Some(246),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/0AYzzzBaPBI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ltoh13ALxbRzlEXoJC4gV64WR8gA",
@ -1433,7 +1433,7 @@ MusicPlaylist(
TrackItem(
id: "zM0K3LC7Aak",
title: "Avalanche (Live Session)",
duration: 220,
duration: Some(220),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/zM0K3LC7Aak/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lLdaGZggAo6DsBOdnmkAzkqSJusQ",
@ -1455,7 +1455,7 @@ MusicPlaylist(
TrackItem(
id: "1le0xDbrVj8",
title: "True Romance",
duration: 244,
duration: Some(244),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1le0xDbrVj8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nGbO9ozslKZ0whB2gZelGqmpB4ZQ",
@ -1477,7 +1477,7 @@ MusicPlaylist(
TrackItem(
id: "RdFaKz71-5M",
title: "LET THE GRASS GROW (Visualizer)",
duration: 181,
duration: Some(181),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/RdFaKz71-5M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lddFGnW_U4FXtYGHD9nnCfJYqUtQ",
@ -1499,7 +1499,7 @@ MusicPlaylist(
TrackItem(
id: "d6hUByfuhM4",
title: "Colours Of You",
duration: 218,
duration: Some(218),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/d6hUByfuhM4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nfFTudW_y_zQjmvzZZkvPiJ1zCNQ",
@ -1521,7 +1521,7 @@ MusicPlaylist(
TrackItem(
id: "-uxeu0MbNR0",
title: "oh, mexico",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/-uxeu0MbNR0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3luAdVwVi3ZwYlwlDLc-F-BGnvYPQ",
@ -1543,7 +1543,7 @@ MusicPlaylist(
TrackItem(
id: "35VK8yonvsc",
title: "Everybody Needs Someone",
duration: 216,
duration: Some(216),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/35VK8yonvsc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mhrNFCxnFoO37pj821hdBOK-gL3w",
@ -1565,7 +1565,7 @@ MusicPlaylist(
TrackItem(
id: "ELD3aRzbVQg",
title: "Run to You (Marcapasos & Janosh Remix)",
duration: 201,
duration: Some(201),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ELD3aRzbVQg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lU8OrqBcWJ88gY-EWi5Pjcvu-ptg",
@ -1587,7 +1587,7 @@ MusicPlaylist(
TrackItem(
id: "BD7HwXv18aU",
title: "Blue - Magnetic (packshot video)",
duration: 192,
duration: Some(192),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/BD7HwXv18aU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kCuOymm21GsOgEFOp836XMaPN16g",
@ -1609,7 +1609,7 @@ MusicPlaylist(
TrackItem(
id: "WJJLfUwIVR4",
title: "christina perri - home [official audio]",
duration: 219,
duration: Some(219),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/WJJLfUwIVR4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lfvYzdtx0nYhJiF6dlL3IwWXGUJw",
@ -1631,7 +1631,7 @@ MusicPlaylist(
TrackItem(
id: "NjW1S0WIiJw",
title: "FREE",
duration: 223,
duration: Some(223),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/NjW1S0WIiJw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kmGufbWRIis-_ooiqartLCinnxUg",
@ -1653,7 +1653,7 @@ MusicPlaylist(
TrackItem(
id: "-4szr0EMrgk",
title: "32 Floors",
duration: 185,
duration: Some(185),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/-4szr0EMrgk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lf79Tux3vf5toDfNCLQNes0EH6lA",
@ -1675,7 +1675,7 @@ MusicPlaylist(
TrackItem(
id: "88NWeOGrxys",
title: "The Middle",
duration: 199,
duration: Some(199),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/JdWlQJW26M4u8jYEx8iQucO7lnW7MGDEmFZf70FGyhevNAhRticMUN-i3HLqT9rCWJMTz6INMImvGoo=w60-h60-l90-rj",
@ -1705,7 +1705,7 @@ MusicPlaylist(
TrackItem(
id: "BxqtS-7GxFM",
title: "Never Seen the Rain (alternate version)",
duration: 296,
duration: Some(296),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/BxqtS-7GxFM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lSi4ezO2W3ON1cVzMlqessi2g9ew",
@ -1727,7 +1727,7 @@ MusicPlaylist(
TrackItem(
id: "KUKt_LbaBnM",
title: "Better Now (Official Audio)",
duration: 200,
duration: Some(200),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/KUKt_LbaBnM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mPhtxecPzy3VIv7ZAr4CFJtkzFUg",
@ -1749,7 +1749,7 @@ MusicPlaylist(
TrackItem(
id: "bhL7A8k6kU8",
title: "Madelyn",
duration: 203,
duration: Some(203),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/bhL7A8k6kU8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nVG0hyWLPpxabi19W0CiUGnUqr4A",
@ -1771,7 +1771,7 @@ MusicPlaylist(
TrackItem(
id: "mUN36hFtazE",
title: "All My Heroes",
duration: 206,
duration: Some(206),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/mUN36hFtazE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kdr9bRT10i_4t-vr4jusP0wtwhqg",
@ -1793,7 +1793,7 @@ MusicPlaylist(
TrackItem(
id: "dcBZP_pt0uY",
title: "Little Bit of Love (Strings)",
duration: 231,
duration: Some(231),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/dcBZP_pt0uY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m29DGm3Gv3cG7nwEqSUKt2aDRAKA",
@ -1815,7 +1815,7 @@ MusicPlaylist(
TrackItem(
id: "m342B1Vv3tM",
title: "Dust (feat. Betty Who)",
duration: 202,
duration: Some(202),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/m342B1Vv3tM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lkV2L8t_qrsPauL_c5S103Gen7Tg",
@ -1837,7 +1837,7 @@ MusicPlaylist(
TrackItem(
id: "N_5RiRBvPSk",
title: "SHIVERS (image of you)",
duration: 178,
duration: Some(178),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/nEru6SasfIVcpI3KJ-_WpbTK5A3Ac1V8IVtUNNNJ3hS5ejGiEHqJ6RsZvgYty-T0Ibdw3fcpE3ODRAcS=w60-h60-l90-rj",
@ -1867,7 +1867,7 @@ MusicPlaylist(
TrackItem(
id: "Q5kH0wg_sKo",
title: "Will You Love Me Tomorrow",
duration: 173,
duration: Some(173),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Ms2FGF2x6xDKoOrk11NzImqwKxFaAt8rFl5c5_5PTsXuOYRhhDiGo80pcAk47yNF8Yw_t-9K108M6kA=w60-h60-l90-rj",
@ -1897,7 +1897,7 @@ MusicPlaylist(
TrackItem(
id: "j9zlc5zufl8",
title: "The Game",
duration: 181,
duration: Some(181),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/03emmKIM4KlpMCgQBAudKLxQ4KX1VJX1bu3D2se_aBEmG041BUWEBWJHhMdxc71bntgIhFsOH-n4vQppYw=w60-h60-l90-rj",
@ -1927,7 +1927,7 @@ MusicPlaylist(
TrackItem(
id: "ufxjiU7BgR4",
title: "Fall Into Me",
duration: 224,
duration: Some(224),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/gMX8rtgSiiR5_Pq0ADjeDXFsXifJC21sKCrfDs9Eiunx8rHqn1xGIgDYZhbQrtbLM3o0nWrXlAwikrkGGA=w60-h60-s-l90-rj",
@ -1957,7 +1957,7 @@ MusicPlaylist(
TrackItem(
id: "7OfB_8rrtug",
title: "Grace (We All Try)",
duration: 206,
duration: Some(206),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Lu_7sLKRYKbW9-HQMWRLtDVZbmeWSCsQeWgIB_-lO76gT_DPplfDlm9odNBUCVemH037M-gzy2W0nRw=w60-h60-l90-rj",
@ -1987,7 +1987,7 @@ MusicPlaylist(
TrackItem(
id: "UqmvAc81XuM",
title: "Don\'t Lay It All On Me",
duration: 232,
duration: Some(232),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/pA_qB9Co5hhwSWWnKbMpCdsV11pDpoYRqg0IgbBtM71XXM1IrWm_W_XFdltnalh-_YNhhYRXG_OaWijB=w60-h60-l90-rj",
@ -2017,7 +2017,7 @@ MusicPlaylist(
TrackItem(
id: "QDULTFB8gSY",
title: "Words as Weapons",
duration: 199,
duration: Some(199),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/3KCJIL7UE5S5cZZLF2LrdGuY2ard-sWXXAqzllxP0hEXO-sfid3kk5xHz118wi7jsK7qY6sBy1C1SL3D=w60-h60-l90-rj",

View file

@ -7,7 +7,7 @@ MusicSearchResult(
TrackItem(
id: "ZeerrnuLi5E",
title: "Black Mamba",
duration: 230,
duration: Some(230),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ZeerrnuLi5E/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3maNxpYzTFmXZBd8s1w1iE6rTBDaw",
@ -29,7 +29,7 @@ MusicSearchResult(
TrackItem(
id: "BL-aIpCLWnU",
title: "Black Mamba",
duration: 175,
duration: Some(175),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/MOL4_Ula9hocErkX2xK_7mISFiWvQz51vReT14KCHF9wsqCEH6sO8iilFFelWMn7JOYIk2WFa-gMmw2uvw=w60-h60-l90-rj",
@ -59,7 +59,7 @@ MusicSearchResult(
TrackItem(
id: "cATe8Toht70",
title: "Black Mamba",
duration: 74,
duration: Some(74),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/ZesxRmV1_bDW89z70eojCd6DofYPbzbgGaXSIRP3UjmE4nIAkOuWc8pXaozR4AwrzPQublDCKrg6vcxHOg=w60-h60-l90-rj",
@ -93,7 +93,7 @@ MusicSearchResult(
TrackItem(
id: "WwNKyoizf8k",
title: "BLACK MAMBA",
duration: 182,
duration: Some(182),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/gall0XXuwoV_SYR3S6EgtOGaBC3YOR5wOpQxCyqgxC3Xht3Jc95Y-sFg-sGAcQl946MfurGY_xSv0YBT=w60-h60-l90-rj",
@ -123,7 +123,7 @@ MusicSearchResult(
TrackItem(
id: "yQUU29NwNF4",
title: "aespa(에스파) - Black Mamba @인기가요 inkigayo 20201122",
duration: 213,
duration: Some(213),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/yQUU29NwNF4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k0HD8CTPlz4YU0hvy1GqKSf2HKUQ",
@ -145,7 +145,7 @@ MusicSearchResult(
TrackItem(
id: "Ky5RT5oGg0w",
title: "Black Mamba",
duration: 287,
duration: Some(287),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Ky5RT5oGg0w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mB-DDgCruC-dhPM0v66ckiZJQnJg",
@ -167,7 +167,7 @@ MusicSearchResult(
TrackItem(
id: "dz9bieeSVRw",
title: "aespa - Black Mamba (Music Bank) | KBS WORLD TV 201127",
duration: 192,
duration: Some(192),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/dz9bieeSVRw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lsJGKTqJhnt-ckrJtBLlvSp46Y5g",

View file

@ -9,7 +9,7 @@ MusicSearchFiltered(
TrackItem(
id: "BL-aIpCLWnU",
title: "Black Mamba",
duration: 175,
duration: Some(175),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/MOL4_Ula9hocErkX2xK_7mISFiWvQz51vReT14KCHF9wsqCEH6sO8iilFFelWMn7JOYIk2WFa-gMmw2uvw=w60-h60-l90-rj",
@ -39,7 +39,7 @@ MusicSearchFiltered(
TrackItem(
id: "cATe8Toht70",
title: "Black Mamba",
duration: 74,
duration: Some(74),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/ZesxRmV1_bDW89z70eojCd6DofYPbzbgGaXSIRP3UjmE4nIAkOuWc8pXaozR4AwrzPQublDCKrg6vcxHOg=w60-h60-l90-rj",
@ -73,7 +73,7 @@ MusicSearchFiltered(
TrackItem(
id: "0I1UpXSYdOQ",
title: "Black Mamba (Orchestra Version)",
duration: 291,
duration: Some(291),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/iVzSchJFVKNSREbIRye25Y-EJXocz-dsR9xpOZ4qBejfZS4IYjDhlUhGCXmYH-0xdGXE6wL1zxxPlu_0aQ=w60-h60-l90-rj",
@ -103,7 +103,7 @@ MusicSearchFiltered(
TrackItem(
id: "9G2tG8V5_PY",
title: "Black Mamba",
duration: 210,
duration: Some(210),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/EsVdgKC0gQx9FqkAxd6VfwHNC6Me2nX0_k-s26069NgyVeDs7kSOKKq1q5Ze9SJj1uHkknONpeLc1m4VdA=w60-h60-l90-rj",
@ -133,7 +133,7 @@ MusicSearchFiltered(
TrackItem(
id: "WwNKyoizf8k",
title: "BLACK MAMBA",
duration: 182,
duration: Some(182),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/gall0XXuwoV_SYR3S6EgtOGaBC3YOR5wOpQxCyqgxC3Xht3Jc95Y-sFg-sGAcQl946MfurGY_xSv0YBT=w60-h60-l90-rj",
@ -163,7 +163,7 @@ MusicSearchFiltered(
TrackItem(
id: "kS1o36LXQkc",
title: "Black Mamba",
duration: 299,
duration: Some(299),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/MxQNc8FHi_NrLkA_OKNOPB0vUPlaN1k4gPUd5qHzY1kd8vVNUu3sJGnJTgUPG05S3p-551sHyRCXNK8=w60-h60-l90-rj",
@ -193,7 +193,7 @@ MusicSearchFiltered(
TrackItem(
id: "UQQ6L1j6mXE",
title: "Black Mamba",
duration: 122,
duration: Some(122),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/fttA1FSkkhNfn_s-HleFYEm-bPpKhAhsbTKnjqjNxKIwGB_bqHtXotzeUwriCWd7Sgj-L0J-Skia67bM=w60-h60-l90-rj",
@ -223,7 +223,7 @@ MusicSearchFiltered(
TrackItem(
id: "9l9dCro-7l8",
title: "Black Mamba",
duration: 246,
duration: Some(246),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/eWk4BziW2TljgowoSlCobR6zt5u_akVNuKMlIH5XBYp14XqTxEwsdWTGYNvLj-YnbDEelIj-d3FC8Atp=w60-h60-l90-rj",
@ -253,7 +253,7 @@ MusicSearchFiltered(
TrackItem(
id: "S_PRpDtgUfI",
title: "Black Mamba",
duration: 286,
duration: Some(286),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/lS8hPUJ0lZkX3FsVu400p9izEBRfZnAzjR9GSXx0T2wjSYmZIcJG8QLMX0mqErvrKA7lJb-lrfy-_Oo=w60-h60-l90-rj",
@ -283,7 +283,7 @@ MusicSearchFiltered(
TrackItem(
id: "Xt_ReZc0gnw",
title: "Black Mamba",
duration: 179,
duration: Some(179),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/VQpE33G21kT_nICA168zKpPMCApANoYfL9vTBUbn5oQTl5udE-kmCLUVRYZppLejvq4-EFoChp9qWmKq=w60-h60-l90-rj",
@ -313,7 +313,7 @@ MusicSearchFiltered(
TrackItem(
id: "diN3WCxpqis",
title: "Black Mamba",
duration: 376,
duration: Some(376),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/1ThxS5gEjktWjom7UT4gBBGiS3V9fdzZeNUEBWUKJg84a8ldY-vXoQtGQEQnReVoiXiVCu_mfN-WXTjU=w60-h60-l90-rj",
@ -343,7 +343,7 @@ MusicSearchFiltered(
TrackItem(
id: "9q3FfH_57Rc",
title: "Black Mamba",
duration: 213,
duration: Some(213),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/70aMvzcO0Gn3UhDVyq_oL7ond89jbpX5o3TpzNPQMdjPYnq7r0q4we4GqMD5f5DfW-S08Kou8jc9pK0B=w60-h60-l90-rj",
@ -373,7 +373,7 @@ MusicSearchFiltered(
TrackItem(
id: "U29V08A9yBs",
title: "BLCK MAMBA",
duration: 166,
duration: Some(166),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/m0oD-sysVTuLunVkCNvdXz2dG_Aj978B1oq13Dr91e4H4I4RIJtD1VqGX6rjIH-xtCfFEMlpK33-Rc8=w60-h60-l90-rj",
@ -407,7 +407,7 @@ MusicSearchFiltered(
TrackItem(
id: "HHEKbGlLoEM",
title: "Black Mamba",
duration: 215,
duration: Some(215),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/ENvv-CqUxK-cm2JAXVANMohQglRc3701a3sAz3CQwZZk_-ZlF4kKCQA050ErWZzqFWHLEccbTnjEfJY=w60-h60-l90-rj",
@ -437,7 +437,7 @@ MusicSearchFiltered(
TrackItem(
id: "qE_dGvQG1rU",
title: "Told Black",
duration: 106,
duration: Some(106),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/usurlrzRxEMLWxWvfDdBIilrAZfO06NUXfF01yRQX_wBJWbtb_PrSL_V7dVPs1BPqekuaE2Q9dpTl3D4=w60-h60-l90-rj",
@ -467,7 +467,7 @@ MusicSearchFiltered(
TrackItem(
id: "1tyPs3ccT7E",
title: "Black Mamba",
duration: 414,
duration: Some(414),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/ELMwnT1kiPKvyKJ5KJPe2Pi0bj4b-unO9Y3ZEMuPvfAveo49dvR3sx9o9376r62p2BsG6Fap6pBJP1Fc=w60-h60-l90-rj",
@ -501,7 +501,7 @@ MusicSearchFiltered(
TrackItem(
id: "6pSmQ-MHKbg",
title: "Black Mamba Jiu Jitsu (feat. Blackwolf SR & OnenD)",
duration: 188,
duration: Some(188),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Xf1QDfhBnHjeynm3CWUQpjvic8Dq_UT_zObuEvGUTUFst1dR9DtX-ge9EVtwMC95s786KHtHJFiO2k8=w60-h60-l90-rj",
@ -531,7 +531,7 @@ MusicSearchFiltered(
TrackItem(
id: "rNsISA-kWzM",
title: "Black Mamba Dub",
duration: 248,
duration: Some(248),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/zRVppSgdih64UOcY_0-sZacnxhMkII4v4OotgFbV1SVbLT3qk4NmfQRXwhxszMJKTmb3uo8MzOwkyQ=w60-h60-l90-rj",
@ -561,7 +561,7 @@ MusicSearchFiltered(
TrackItem(
id: "AdvPpJVvyEg",
title: "Black Mamba",
duration: 126,
duration: Some(126),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Ue_Q3bgiMyvB_Rk8g0nCyTJHebz_A7f6twQkaRLX-iaHug2j5MmIwS9iHHW94S5x7gOwymGNngIDOXE=w60-h60-l90-rj",
@ -591,7 +591,7 @@ MusicSearchFiltered(
TrackItem(
id: "7q7o-kjIKpo",
title: "Black Mamba",
duration: 126,
duration: Some(126),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/LlHQjoVTK0nbngamfjjKdBmEn1LwsO1riYNEf_GhC3xACa4AUw47FSYGOUXkLVCcev2ccfxqX_nHeNM3=w60-h60-l90-rj",

View file

@ -9,7 +9,7 @@ MusicSearchFiltered(
TrackItem(
id: "6485PhOtHzY",
title: "Lieblingsmensch",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/dwrJ5NnlZU7CBziLRlTm1uizuolakRAX7g34-eKeqEZQGZgwmvhqcs3TiZClfm7v6a-KYHieitdakpPo=w60-h60-l90-rj",
@ -39,7 +39,7 @@ MusicSearchFiltered(
TrackItem(
id: "pt0YvfnhGgI",
title: "Lieblingsmensch",
duration: 524,
duration: Some(524),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/38mrm1ntm4MQfmB4Pl2EdY7o6McbLq06sC7qqLxDMqOfL-eqySheDnfl3IOpZYIE_ozt6Bywlmjj2DCe=w60-h60-l90-rj",
@ -69,7 +69,7 @@ MusicSearchFiltered(
TrackItem(
id: "VinJmH-uidY",
title: "Lieblingsmensch",
duration: 203,
duration: Some(203),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/frjY96Y5A4eZ9tQOmMZm7zqqRr19W4Q3xz7Y2DcAiaCB0Eyp22u3_DfP8qP4NNqrxZFPA1pC3DBC91T3=w60-h60-l90-rj",
@ -99,7 +99,7 @@ MusicSearchFiltered(
TrackItem(
id: "YmSmymHRnEE",
title: "Lieblingsmensch (Edit)",
duration: 220,
duration: Some(220),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/52NEd25MuR_LmWQw_sbHEm1s4jdiUm1SB25aLeFSaz70Z89GTdghmRNd21YgggAFbAg4NgMHiGpSdCyANw=w60-h60-l90-rj",
@ -129,7 +129,7 @@ MusicSearchFiltered(
TrackItem(
id: "TgfIbiHCOLo",
title: "Lieblingsmensch",
duration: 211,
duration: Some(211),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/IGfkF3S_lPTLb9988SHZegHEAnuT_mT9BrZg8ZssbuYWWkfL5fvoxXlpOvRZr7ajNSdJSFfAhK0xnGCD=w60-h60-l90-rj",
@ -159,7 +159,7 @@ MusicSearchFiltered(
TrackItem(
id: "lCi6N_uq3vE",
title: "Lieblingsmensch",
duration: 209,
duration: Some(209),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/mUCPnu_MO_s46GVCkRnCI8wIx1AvTdexxqpr78ZXHurucPeNFJ_tBtTAJ6IFkaOVMdfmYWPp1ibTU5xd=w60-h60-l90-rj",
@ -189,7 +189,7 @@ MusicSearchFiltered(
TrackItem(
id: "QIjqe2B3RdQ",
title: "Lieblingsmensch",
duration: 184,
duration: Some(184),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Y_1W369gCVOjE4aYEj_Q8gkX9GjjQG08Pf8yl_4f4DZKcnBzncueRCFhfTnElQE7nDWo0et6fYtH9xs=w60-h60-l90-rj",
@ -219,7 +219,7 @@ MusicSearchFiltered(
TrackItem(
id: "q2pUotlXPeM",
title: "Lieblingsmensch (Beatgees Remix)",
duration: 199,
duration: Some(199),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/vh1NIdzUQTuH3jlZFTJ-XK3f_QIUVJGZe1qTE-O1O8MZtylnx7JpYtd0NPSUWFFgIzlysNfbUOaeryr5Zw=w60-h60-l90-rj",
@ -249,7 +249,7 @@ MusicSearchFiltered(
TrackItem(
id: "0yPnvetCm-U",
title: "Lieblingsmensch",
duration: 174,
duration: Some(174),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/RORTouE503-ZZqgAov66r2cK-YyTJbZIwbM1Hz58ja7jNgWSG_xjTLxK41nwAT8ejRvY7U35dMm4OOYhYg=w60-h60-l90-rj",
@ -279,7 +279,7 @@ MusicSearchFiltered(
TrackItem(
id: "EU5Vly60VGU",
title: "Lieblingsmensch",
duration: 205,
duration: Some(205),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/SpQwKRYlYv8LRubMGRjCDdbHfcGEjh30Ta97f1iUPXKpy6pfudCGdf-GJQiKfR8zT7p7mkZ6UFR1V8vE=w60-h60-l90-rj",
@ -309,7 +309,7 @@ MusicSearchFiltered(
TrackItem(
id: "UnxQ0TI4IMs",
title: "Lieblingsmensch (Intrumental)",
duration: 190,
duration: Some(190),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/vh1NIdzUQTuH3jlZFTJ-XK3f_QIUVJGZe1qTE-O1O8MZtylnx7JpYtd0NPSUWFFgIzlysNfbUOaeryr5Zw=w60-h60-l90-rj",
@ -339,7 +339,7 @@ MusicSearchFiltered(
TrackItem(
id: "ufpny1KxwcU",
title: "Lieblingsmensch",
duration: 196,
duration: Some(196),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/S9htVpH2mk6tD6pG9SDcmKYvaXTzS5XfFDDGdWBJpK-QqffLTVT3V9BrA7uSiIy_vJlpyVotPcQhFdNBfw=w60-h60-l90-rj",
@ -369,7 +369,7 @@ MusicSearchFiltered(
TrackItem(
id: "duzWgZFJNwA",
title: "Lieblingsmensch (Übernice Remix)",
duration: 184,
duration: Some(184),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/vh1NIdzUQTuH3jlZFTJ-XK3f_QIUVJGZe1qTE-O1O8MZtylnx7JpYtd0NPSUWFFgIzlysNfbUOaeryr5Zw=w60-h60-l90-rj",
@ -399,7 +399,7 @@ MusicSearchFiltered(
TrackItem(
id: "rnXq-1n0lt0",
title: "Lieblingsmensch",
duration: 223,
duration: Some(223),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/slp9kDTF1UHk6WcR6FgWuWP2uF0R4OK0Ljeh8wu8FJ6sy3qAy-KjdGnDbb37FPlOd9sXnO8HItnGWbLgjg=w60-h60-l90-rj",
@ -429,7 +429,7 @@ MusicSearchFiltered(
TrackItem(
id: "vHkqdC6-rOI",
title: "Lieblingsmensch",
duration: 259,
duration: Some(259),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/28SryO8FUVn7wv1nnY9KXRXQrcTI3WBxXvi8LP3h218aMqwpMVsJ2FW5cTiAJvLk9T6UVb1Ex4aq4BnUxQ=w60-h60-l90-rj",
@ -459,7 +459,7 @@ MusicSearchFiltered(
TrackItem(
id: "nTlceSET_b8",
title: "Lieblingsmensch",
duration: 190,
duration: Some(190),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/qMk9Q2DY1rwbdyJx7G2vWUgOiW1y1JEi8gRxMAorrayzPPxvjF5QbDy3lK-G3bgPyCowxNudDQPs4I-2=w60-h60-l90-rj",
@ -489,7 +489,7 @@ MusicSearchFiltered(
TrackItem(
id: "D8GhmRiIfxI",
title: "Lieblingsmensch",
duration: 173,
duration: Some(173),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/o2NBiflfACN6lJQFOkB-xFywBd61nmejQa_8JgEksiZ3rnpBdUp_W1T9f4sD-QbJuLyvaS4E9WPhvlc=w60-h60-l90-rj",
@ -519,7 +519,7 @@ MusicSearchFiltered(
TrackItem(
id: "01CS-jTaY1U",
title: "Je Ne Parle Pas Français (Instrumental)",
duration: 196,
duration: Some(196),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/dq-4hwakOMJ_HCWEo7fHOOWg3g1X0bl4UPtwuhuEScfYwh38WeXM5zmSk9vTxClkFRynOTEH4RaUJ3q_=w60-h60-l90-rj",
@ -549,7 +549,7 @@ MusicSearchFiltered(
TrackItem(
id: "2sKkKKKXO28",
title: "Lieblingsmensch",
duration: 190,
duration: Some(190),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Oxm4SNpnYnyfxlcD7KYOGO5Tpbunenzwi6N7nQgqyhvMjTA-YeND2Bxbozdmmc53bn30PMX0wlNSOJtYcw=w60-h60-l90-rj",
@ -579,7 +579,7 @@ MusicSearchFiltered(
TrackItem(
id: "czlgl6n9voM",
title: "Lieblingsmensch (Live @ DELUXE MUSIC SESSION)",
duration: 176,
duration: Some(176),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/wnE86gP7vC4WtwqcD1Wh4OWgQgrCXhNgvYlu2KmdzAXpmc1JZo8NWBHL7tmTC9hzU0gEt8ZZm6WDYNbA=w60-h60-l90-rj",

View file

@ -9,7 +9,7 @@ MusicSearchFiltered(
TrackItem(
id: "ZeerrnuLi5E",
title: "Black Mamba",
duration: 230,
duration: Some(230),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ZeerrnuLi5E/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3maNxpYzTFmXZBd8s1w1iE6rTBDaw",
@ -31,7 +31,7 @@ MusicSearchFiltered(
TrackItem(
id: "vbl9KrZxOF8",
title: "Black Mamba DJ set - Boko! Boko! | @Beatport Live",
duration: 4447,
duration: Some(4447),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/vbl9KrZxOF8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nmPW2KSv4XyDSzKb1A1GYC8MDpmw",
@ -53,7 +53,7 @@ MusicSearchFiltered(
TrackItem(
id: "eMfROJt0a7Q",
title: "aespa - \"Black Mamba\" @ KAMP LA 2022 Day 2",
duration: 198,
duration: Some(198),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/eMfROJt0a7Q/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3k-qlA2eSgHl3JKGSVUF6YLDuU09w",
@ -75,7 +75,7 @@ MusicSearchFiltered(
TrackItem(
id: "1ktLEhfkBCI",
title: "ANKATHIE KOI - BLACK MAMBA (official)",
duration: 230,
duration: Some(230),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1ktLEhfkBCI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k_xzZs28i_w4pNyz630i9whVDyGQ",
@ -97,7 +97,7 @@ MusicSearchFiltered(
TrackItem(
id: "2hAlp3Khsnk",
title: "The Black Mamba - Love Is On My Side - Portugal 🇵🇹 - Official Video - Eurovision 2021",
duration: 189,
duration: Some(189),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2hAlp3Khsnk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nWe-5Mng_LKafQ_39Wc47rgiIaUQ",
@ -119,7 +119,7 @@ MusicSearchFiltered(
TrackItem(
id: "CHixjhwY0ek",
title: "aespa, Black Mamba (에스파, Black Mamba) with Goyang Philharmonic Orchestra [UN DAY CONCERT 2021]",
duration: 238,
duration: Some(238),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/CHixjhwY0ek/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nT_bNQ-v6o82RVmUPdowGPoT3sjQ",
@ -141,7 +141,7 @@ MusicSearchFiltered(
TrackItem(
id: "8YXKgZ393Ec",
title: "Kronos - Black Mamba",
duration: 157,
duration: Some(157),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/8YXKgZ393Ec/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3muPb_raK0T9xU_a0T3L-wxg7iOUg",
@ -163,7 +163,7 @@ MusicSearchFiltered(
TrackItem(
id: "KFNznAXnjXc",
title: "AESPA - Black Mamba (Teaser Demo/Instrumental)",
duration: 112,
duration: Some(112),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/KFNznAXnjXc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ne7MVklbB0HR0wixtu3aq0ikctEA",
@ -185,7 +185,7 @@ MusicSearchFiltered(
TrackItem(
id: "hDhJeJZmTDA",
title: "aespa (에스파) - Black Mamba | INK Incheon K-Pop Concert | MTV Asia",
duration: 178,
duration: Some(178),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/hDhJeJZmTDA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nE5LbHIjTYSTz-A_t662nHkN5yfQ",
@ -207,7 +207,7 @@ MusicSearchFiltered(
TrackItem(
id: "6kKSDXiip_8",
title: "aespa エスパ - Black Mamba",
duration: 185,
duration: Some(185),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/6kKSDXiip_8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mx7ocT3O3S758oGGfbKdR0QjmfGQ",
@ -229,7 +229,7 @@ MusicSearchFiltered(
TrackItem(
id: "vfzlr70ogaI",
title: "aespa(에스파) - Black Mamba (Music Bank) | KBS WORLD TV 201211",
duration: 190,
duration: Some(190),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/vfzlr70ogaI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m1NeOWJDh4HqGPPFfEnq4g2BLR3A",
@ -251,7 +251,7 @@ MusicSearchFiltered(
TrackItem(
id: "Fjth6cKGI88",
title: "aespa, Black Mamba\u{a0}(에스파, Black Mamba) [THE SHOW 201208]",
duration: 179,
duration: Some(179),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Fjth6cKGI88/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k9DYBKdlPtxYcpLn_0oO7ikeQBtA",
@ -273,7 +273,7 @@ MusicSearchFiltered(
TrackItem(
id: "fznwvW9Kn4s",
title: "Love Is Dope",
duration: 371,
duration: Some(371),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/fznwvW9Kn4s/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nlnfAi-ia58ugtRW_mrT9NPstp7w",
@ -295,7 +295,7 @@ MusicSearchFiltered(
TrackItem(
id: "Jore0zZW-_M",
title: "The Tunnel — Black Mamba (dj-set)",
duration: 3881,
duration: Some(3881),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Jore0zZW-_M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ktaYDC0Dsl_VM2sQLoeHbE5TzTIw",
@ -317,7 +317,7 @@ MusicSearchFiltered(
TrackItem(
id: "_THM-2Ph-6I",
title: "Black Mamba / Turn to Stone Cover",
duration: 355,
duration: Some(355),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/_THM-2Ph-6I/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k5xZOdoOkY9QjEe7xvhtTLyYsm0w",
@ -339,7 +339,7 @@ MusicSearchFiltered(
TrackItem(
id: "koJAGIUlnD0",
title: "The Black Mamba - Love Is On My Side - Portugal 🇵🇹 - Second Semi-Final - Eurovision 2021",
duration: 204,
duration: Some(204),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/koJAGIUlnD0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kRXIHk7K8ax2DBjcZzZcqRJAzg5g",
@ -361,7 +361,7 @@ MusicSearchFiltered(
TrackItem(
id: "4tvQPrHcR4w",
title: "Black Mamba - aespa(에스파) [뮤직뱅크/Music Bank] | KBS 201211 방송",
duration: 181,
duration: Some(181),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/4tvQPrHcR4w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n1v_80gL-nZ7CxpmU2hfXFP31HXw",
@ -383,7 +383,7 @@ MusicSearchFiltered(
TrackItem(
id: "CUh6MTvB_4E",
title: "The Black Mamba - Love Is On My Side (long version)",
duration: 343,
duration: Some(343),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/CUh6MTvB_4E/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lR1QEW6JiCq8M9h9It_vjiU_3vCQ",
@ -405,7 +405,7 @@ MusicSearchFiltered(
TrackItem(
id: "4TWR90KJl84",
title: "Next Level",
duration: 236,
duration: Some(236),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/4TWR90KJl84/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kl3LTK647n1QMNk2ltojkKT5jR8w",
@ -427,7 +427,7 @@ MusicSearchFiltered(
TrackItem(
id: "Cw7eMibV-Xk",
title: "BLACKPINK & AESPA - Pink Venom x Black Mamba (ft.Next Level) (Color Coded Lyrics) @Miggy Smallz",
duration: 241,
duration: Some(241),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Cw7eMibV-Xk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mDFIPEb97IyOFO1AwUKBN9PK8eww",

View file

@ -7,7 +7,7 @@ MusicSearchResult(
TrackItem(
id: "6485PhOtHzY",
title: "Lieblingsmensch",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/dwrJ5NnlZU7CBziLRlTm1uizuolakRAX7g34-eKeqEZQGZgwmvhqcs3TiZClfm7v6a-KYHieitdakpPo=w60-h60-l90-rj",
@ -37,7 +37,7 @@ MusicSearchResult(
TrackItem(
id: "pt0YvfnhGgI",
title: "Lieblingsmensch",
duration: 524,
duration: Some(524),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/38mrm1ntm4MQfmB4Pl2EdY7o6McbLq06sC7qqLxDMqOfL-eqySheDnfl3IOpZYIE_ozt6Bywlmjj2DCe=w60-h60-l90-rj",
@ -67,7 +67,7 @@ MusicSearchResult(
TrackItem(
id: "0yPnvetCm-U",
title: "Lieblingsmensch",
duration: 174,
duration: Some(174),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/RORTouE503-ZZqgAov66r2cK-YyTJbZIwbM1Hz58ja7jNgWSG_xjTLxK41nwAT8ejRvY7U35dMm4OOYhYg=w60-h60-l90-rj",
@ -97,7 +97,7 @@ MusicSearchResult(
TrackItem(
id: "3ryohiCVq3M",
title: "Namika - Lieblingsmensch (Official Video)",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/3ryohiCVq3M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nsa7wZ13z3ie49RzcBHKQAmjlU9w",
@ -119,7 +119,7 @@ MusicSearchResult(
TrackItem(
id: "6Bt1KeMNqvc",
title: "Lieblingsmensch Namika Lyrics",
duration: 188,
duration: Some(188),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/6Bt1KeMNqvc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n9IkVmxE5YqesHGPS0xtJemxrNzQ",
@ -141,7 +141,7 @@ MusicSearchResult(
TrackItem(
id: "5YQRHUItXTI",
title: "Namika - Lieblingsmensch 1 Hour Version",
duration: 3801,
duration: Some(3801),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5YQRHUItXTI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kP0NYgZ5YbsGdULVIXOu08eoHGrw",

View file

@ -8,7 +8,7 @@ Paginator(
TrackItem(
id: "zMPIobcM2j0",
title: "ZUNA feat. AZET & NOIZY - NUMMER 1 prod. by DJ A-BOOM",
duration: 212,
duration: Some(212),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/zMPIobcM2j0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mGqKNUFZSt-vMNL0hqsVkIGlwdsQ",
@ -30,7 +30,7 @@ Paginator(
TrackItem(
id: "f9g6NCHQrcE",
title: "Kriminell (feat. Noizy)",
duration: 230,
duration: Some(230),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/f9g6NCHQrcE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kdM3_EHcqMITf0g4PgPtM0H1aEbA",
@ -56,7 +56,7 @@ Paginator(
TrackItem(
id: "CAVfEwrwT_o",
title: "Immer wieder",
duration: 227,
duration: Some(227),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/CAVfEwrwT_o/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lYbDTeW97_2QZosa4lIHsClxQpzA",
@ -82,7 +82,7 @@ Paginator(
TrackItem(
id: "VUr9JZQ8F2g",
title: "Zwischen Himmel & Hölle",
duration: 270,
duration: Some(270),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/VUr9JZQ8F2g/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m603a5VGh7uBoRG-lLwV4-G4H5pg",
@ -104,7 +104,7 @@ Paginator(
TrackItem(
id: "XQat6rNNbdQ",
title: "Ayé (KMN Street EP)",
duration: 220,
duration: Some(220),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/XQat6rNNbdQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m7hbh15qrlvNRB7aEawWqSzHXbcA",
@ -126,7 +126,7 @@ Paginator(
TrackItem(
id: "EQyU6fGDn0c",
title: "Corleone",
duration: 220,
duration: Some(220),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/EQyU6fGDn0c/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mNa1-7Y3ah2s2NYjk3gAxH_JP4Tg",
@ -148,7 +148,7 @@ Paginator(
TrackItem(
id: "g4poKgQZX6w",
title: "Beverly Hills",
duration: 219,
duration: Some(219),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/g4poKgQZX6w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mvXqxNHjDz2JmmgsJFmkdYLDwOkQ",
@ -170,7 +170,7 @@ Paginator(
TrackItem(
id: "YTHr7gxwYUQ",
title: "Airmax gegen Kopf (feat. Luciano)",
duration: 167,
duration: Some(167),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/YTHr7gxwYUQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kmyX3pFClaPDWm60jo3Tj-eYfYTw",
@ -192,7 +192,7 @@ Paginator(
TrackItem(
id: "MfCSDn6q6j4",
title: "Direction",
duration: 182,
duration: Some(182),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/MfCSDn6q6j4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nLwkQa04zXFTcMb47vI5xPoWVpqw",
@ -214,7 +214,7 @@ Paginator(
TrackItem(
id: "gx9KFXb5x_o",
title: "Egal (feat. Jasmiina)",
duration: 166,
duration: Some(166),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/gx9KFXb5x_o/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mCcQp0pyVKziQI7cQPFf2BWPXBoQ",
@ -236,7 +236,7 @@ Paginator(
TrackItem(
id: "d7R7DQ5tlQo",
title: "Sag Nix",
duration: 205,
duration: Some(205),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/d7R7DQ5tlQo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kBugfTjy0gWhn2GrLtqtGXbqLWXw",
@ -258,7 +258,7 @@ Paginator(
TrackItem(
id: "cZPjgcqHSa8",
title: "BWA (feat. Hanybal)",
duration: 294,
duration: Some(294),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/cZPjgcqHSa8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nMzEHpRx_MN2g8yrjYOF6Iah2b0g",
@ -280,7 +280,7 @@ Paginator(
TrackItem(
id: "ogDLdREonWY",
title: "Ketten Cartier",
duration: 198,
duration: Some(198),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ogDLdREonWY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l2JV9H7oYwLn_F9jqzA2Iu8CU-Qw",
@ -302,7 +302,7 @@ Paginator(
TrackItem(
id: "pRQpKprUUPY",
title: "Moe Phoenix - Ching Chang Chong (prod. by FL3X & Unik)",
duration: 226,
duration: Some(226),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/pRQpKprUUPY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mOVje3r-6xh9GbNufVpSejO0_Yrg",
@ -324,7 +324,7 @@ Paginator(
TrackItem(
id: "qZoQw9b4uCo",
title: "Handschellen (feat. Ardian Bujupi)",
duration: 221,
duration: Some(221),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/qZoQw9b4uCo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nnHr0NCQTCpfBfcPbnwfOI_Mf3fA",
@ -346,7 +346,7 @@ Paginator(
TrackItem(
id: "q23qghoF6Nk",
title: "Gjynah",
duration: 271,
duration: Some(271),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/q23qghoF6Nk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nkVytsYqpdHmM6QhX5Y3GSV81ZWQ",
@ -368,7 +368,7 @@ Paginator(
TrackItem(
id: "yU0aKa7PFBg",
title: "Herzbeben",
duration: 206,
duration: Some(206),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/yU0aKa7PFBg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lkvuKDU4uF9TqAANhPlVvXMg-kHw",
@ -390,7 +390,7 @@ Paginator(
TrackItem(
id: "DVCAqvypaCc",
title: "Jump",
duration: 202,
duration: Some(202),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/DVCAqvypaCc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3llvl8DJX_-7ry0RRT_N_NYCkdwNQ",
@ -412,7 +412,7 @@ Paginator(
TrackItem(
id: "XdnI7sm6LeQ",
title: "Andere Liga",
duration: 240,
duration: Some(240),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/XdnI7sm6LeQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kz8_m5K9sEEgDBy4EFLm95Yqv1KQ",
@ -434,7 +434,7 @@ Paginator(
TrackItem(
id: "KcOXNSJtFLg",
title: "Trikot von Paris",
duration: 255,
duration: Some(255),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/KcOXNSJtFLg/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3n1lFTL7AeKXIwoWr0n7R0OVeeC0w",
@ -456,7 +456,7 @@ Paginator(
TrackItem(
id: "K0UxHXZwgsg",
title: "Pfirsich",
duration: 245,
duration: Some(245),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/K0UxHXZwgsg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kbt6N-exJAiQ2VWD-N2SAZb72t1Q",
@ -478,7 +478,7 @@ Paginator(
TrackItem(
id: "eyyNwOSQ3Yg",
title: "MGP \"BAD BITCH\" (Official Video)",
duration: 166,
duration: Some(166),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/eyyNwOSQ3Yg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3loat8o2KqxI50eA_0t33mayE-vZg",
@ -500,7 +500,7 @@ Paginator(
TrackItem(
id: "1yskotqNuXI",
title: "Bros",
duration: 219,
duration: Some(219),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1yskotqNuXI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lw5HdQiGkWPICNK6JQ0zQrb_OY_A",
@ -522,7 +522,7 @@ Paginator(
TrackItem(
id: "C03n4AAiL9w",
title: "Geiles Leben (Madizin single mix)",
duration: 211,
duration: Some(211),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/C03n4AAiL9w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lKrWXIdWTuniJIbm4bcGAVMDqodA",
@ -544,7 +544,7 @@ Paginator(
TrackItem(
id: "a2wNRTKRusM",
title: "Moe Phoenix - Mohammad (prod. by AriBeatz)",
duration: 197,
duration: Some(197),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/a2wNRTKRusM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mf255VHOdZkqjal69y_6vncWOj_Q",
@ -566,7 +566,7 @@ Paginator(
TrackItem(
id: "AIf61iHwWMQ",
title: "Waffen (feat. Bonez MC, Ufo361 & Gzuz)",
duration: 268,
duration: Some(268),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/AIf61iHwWMQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m2Y0IwkBA5nlfo_yGhB4Rl_PQWrw",
@ -588,7 +588,7 @@ Paginator(
TrackItem(
id: "BixqbSRjY2Y",
title: "Alles probiert (feat. Bonez MC)",
duration: 319,
duration: Some(319),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/BixqbSRjY2Y/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kJXX_D3CBHvhk4-eXoeEjLuPDLuA",
@ -610,7 +610,7 @@ Paginator(
TrackItem(
id: "Acgy-3d4P6o",
title: "Erfolg ist kein Glück",
duration: 226,
duration: Some(226),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Acgy-3d4P6o/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3llC-9c8Ba6pCqm5MjtPHNJJrl5Ww",
@ -632,7 +632,7 @@ Paginator(
TrackItem(
id: "5M_yA9M7yNc",
title: "Gotham City",
duration: 156,
duration: Some(156),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5M_yA9M7yNc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lDthGAX5eyBgMY1Mk73ruGWvUZTA",
@ -654,7 +654,7 @@ Paginator(
TrackItem(
id: "PjJuezhos3U",
title: "Liebe macht blind",
duration: 258,
duration: Some(258),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/PjJuezhos3U/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nvGDR0Dry3ue3PRNX5hBpc8ZXJHQ",
@ -676,7 +676,7 @@ Paginator(
TrackItem(
id: "XMutaJI2-kc",
title: "Mama ist nicht stolz",
duration: 262,
duration: Some(262),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/XMutaJI2-kc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kSFI5TL3IhmMKE4AbQVq5cNGDdlA",
@ -698,7 +698,7 @@ Paginator(
TrackItem(
id: "Xac6Q7hcZkQ",
title: "Monica Bellucci",
duration: 228,
duration: Some(228),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Xac6Q7hcZkQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mUrl21Lg5TnRVZlS_HsjExiHbykA",
@ -720,7 +720,7 @@ Paginator(
TrackItem(
id: "JfwjsjBcDoU",
title: "Achterbahn",
duration: 222,
duration: Some(222),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/JfwjsjBcDoU/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m9YWQi2VwUWy0HbvTp5eABMv19ig",
@ -742,7 +742,7 @@ Paginator(
TrackItem(
id: "zshiQUV3ohw",
title: "MOE PHOENIX feat. VEYSEL - GAUNER (prod. by Ghana Beats)",
duration: 226,
duration: Some(226),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/zshiQUV3ohw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mvfu8TUWbiYPBd5KeknzelsyMhGA",
@ -764,7 +764,7 @@ Paginator(
TrackItem(
id: "g1eTAt1_VAM",
title: "Hype (feat. Abdi & CELO)",
duration: 303,
duration: Some(303),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/g1eTAt1_VAM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ln4VrxhGpWamDXIRK28ZG36zebpw",
@ -790,7 +790,7 @@ Paginator(
TrackItem(
id: "c3rLrFC8igY",
title: "Dame - Auf die guten alten Zeiten [Official HD Video]",
duration: 252,
duration: Some(252),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/c3rLrFC8igY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nlwP8jhSDHu6UWrfKkg_6aYf4O2w",
@ -812,7 +812,7 @@ Paginator(
TrackItem(
id: "1im4DNEYzEM",
title: "Optimal (instrumental)",
duration: 209,
duration: Some(209),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1im4DNEYzEM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3maFTAbUASsI-cKvFzl-bMxaz1ZFA",
@ -838,7 +838,7 @@ Paginator(
TrackItem(
id: "8BUxw9ocM2s",
title: "EULE aka Jazzy Gudd - Stehaufmädchen (Official Video)",
duration: 184,
duration: Some(184),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/8BUxw9ocM2s/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k0xjHaaLKRl13FIINRNV8G27w82Q",
@ -860,7 +860,7 @@ Paginator(
TrackItem(
id: "g4cSpnGbHPE",
title: "Zweistellige Haftstrafen",
duration: 201,
duration: Some(201),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/g4cSpnGbHPE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mzqofFr-t8T8RFLsGBuU56C5N6DQ",
@ -886,7 +886,7 @@ Paginator(
TrackItem(
id: "1Sdj9MiCowQ",
title: "187",
duration: 296,
duration: Some(296),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1Sdj9MiCowQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nS4GO2Le1ipaSHUp9UHhcgEuK7zA",
@ -912,7 +912,7 @@ Paginator(
TrackItem(
id: "2DbR35g-0ZY",
title: "Der Pate",
duration: 237,
duration: Some(237),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2DbR35g-0ZY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kdZmuRrmJBGfPZXaH2N-PHp6vlzw",
@ -934,7 +934,7 @@ Paginator(
TrackItem(
id: "j09hpp3AxIE",
title: "Tage wie diese",
duration: 272,
duration: Some(272),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/j09hpp3AxIE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nfWvqhMW_GfFDjgdTN1cMkalIZxQ",
@ -956,7 +956,7 @@ Paginator(
TrackItem(
id: "J3GN6JXjV3g",
title: "Frische Luft",
duration: 200,
duration: Some(200),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/J3GN6JXjV3g/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mdbJXJMnc-or27SYD8R3pjilDXlQ",
@ -978,7 +978,7 @@ Paginator(
TrackItem(
id: "pULl-p02upM",
title: "Check (feat. Xatar)",
duration: 240,
duration: Some(240),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/pULl-p02upM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nh799vU0wPzY2ytSmeOPBH38eALg",
@ -1000,7 +1000,7 @@ Paginator(
TrackItem(
id: "O6By8JeCtQQ",
title: "Alles richtig so (Instrumental)",
duration: 210,
duration: Some(210),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/O6By8JeCtQQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nk34pJNIkWHcxpyyNXS66OWr3ckw",
@ -1022,7 +1022,7 @@ Paginator(
TrackItem(
id: "NGn3IYQ7M7E",
title: "Vorankommen",
duration: 228,
duration: Some(228),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/NGn3IYQ7M7E/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nik2tVOHUckqAwAeSnzQfX1xch2Q",
@ -1044,7 +1044,7 @@ Paginator(
TrackItem(
id: "o43oI5x86dI",
title: "Schnapp!",
duration: 166,
duration: Some(166),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/o43oI5x86dI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lcyy2u7kVdFvtPonuqLhDv6t5lUA",
@ -1066,7 +1066,7 @@ Paginator(
TrackItem(
id: "7TNqUrINxzs",
title: "Besser als 50 Cent (Instrumental)",
duration: 197,
duration: Some(197),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/7TNqUrINxzs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kpAsFpwzoQ-UD_RzGa0ExoQMtgcA",
@ -1088,7 +1088,7 @@ Paginator(
TrackItem(
id: "f3BD5Zm3cp0",
title: "Palmen aus Gold",
duration: 231,
duration: Some(231),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/f3BD5Zm3cp0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mxCAbmFZTlKVp-PX0PJk8fpvZdSg",
@ -1114,7 +1114,7 @@ Paginator(
TrackItem(
id: "sF4yTDp95Eo",
title: "Lampedusa",
duration: 203,
duration: Some(203),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/sF4yTDp95Eo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nQ5ldvK9on8deipW07A_6XmUVamQ",
@ -1136,7 +1136,7 @@ Paginator(
TrackItem(
id: "1EwLNHg6ejY",
title: "Ajajaj (feat. Soolking)",
duration: 224,
duration: Some(224),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/1EwLNHg6ejY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lwps5a7iqy_EldJCIgl-XuXhw3jg",
@ -1158,7 +1158,7 @@ Paginator(
TrackItem(
id: "-l75qaSDWe8",
title: "Bongzimmer",
duration: 287,
duration: Some(287),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/-l75qaSDWe8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lXnzM-rTh-zXr88zBKemiKKsYBeg",
@ -1180,7 +1180,7 @@ Paginator(
TrackItem(
id: "7h7ntYLLrfQ",
title: "Kogong",
duration: 223,
duration: Some(223),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/7h7ntYLLrfQ/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l1I5hUp81fZfyzHVyt6YMlFH6cpw",
@ -1202,7 +1202,7 @@ Paginator(
TrackItem(
id: "ApUl3Ops69M",
title: "AZET - FAST LIFE (prod. by m3) #KMNSTREET VOL. 1",
duration: 179,
duration: Some(179),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ApUl3Ops69M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kyz_IgQaYaOyaYbnJp-NyAQWMMpg",
@ -1224,7 +1224,7 @@ Paginator(
TrackItem(
id: "2YcJ8Wightw",
title: "CL500",
duration: 152,
duration: Some(152),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/2YcJ8Wightw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mPorYxL_EZ3HJW7XkLsOMyXJRwTQ",
@ -1246,7 +1246,7 @@ Paginator(
TrackItem(
id: "W3q8Od5qJio",
title: "Du hast",
duration: 236,
duration: Some(236),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/W3q8Od5qJio/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lU9rCLLB5-tGTbMY4VddAj2fX0_A",
@ -1268,7 +1268,7 @@ Paginator(
TrackItem(
id: "WPFLAjmWCtk",
title: "Astronaut (feat. Andreas Bourani)",
duration: 268,
duration: Some(268),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/WPFLAjmWCtk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kRYRfZM-1t_DHI3rKxAVAsb6xBlA",
@ -1290,7 +1290,7 @@ Paginator(
TrackItem(
id: "tC76tIp0kBk",
title: "So wie du bist (feat. Lary)",
duration: 312,
duration: Some(312),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/tC76tIp0kBk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kyBxTmyWDlXnobxfTP3b1_eFomug",
@ -1312,7 +1312,7 @@ Paginator(
TrackItem(
id: "kiMG_JV2gbo",
title: "Adel Tawil \"Lieder\" (Official Lyrics Video)",
duration: 230,
duration: Some(230),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/kiMG_JV2gbo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mST1CbRad_P2tovi7PverVHfYLSg",
@ -1334,7 +1334,7 @@ Paginator(
TrackItem(
id: "CrYYg_atdtk",
title: "Marteria, Yasha, Miss Platnum - Lila Wolken (Official Video)",
duration: 231,
duration: Some(231),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/CrYYg_atdtk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lTbl71twx0lB7adIXPA1R3r_4ixQ",
@ -1356,7 +1356,7 @@ Paginator(
TrackItem(
id: "XTPGpBBwt1w",
title: "Hurra die Welt geht unter (feat. Henning May)",
duration: 299,
duration: Some(299),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/XTPGpBBwt1w/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nMcVn4epzwg2Axrjjl62wI7XBeaA",
@ -1378,7 +1378,7 @@ Paginator(
TrackItem(
id: "uC08L4xxjNM",
title: "80 Millionen",
duration: 257,
duration: Some(257),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/uC08L4xxjNM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kg9Z-mzC2WGtxCWjqc-bnJM36qgQ",
@ -1400,7 +1400,7 @@ Paginator(
TrackItem(
id: "5fAoV_AAMf0",
title: "Bauch und Kopf (Videoclip)",
duration: 257,
duration: Some(257),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5fAoV_AAMf0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3myIarnH-vyPtz4csyLkS9lMUD5Aw",
@ -1422,7 +1422,7 @@ Paginator(
TrackItem(
id: "u5Vz7obL460",
title: "Keine Maschine",
duration: 202,
duration: Some(202),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/u5Vz7obL460/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lim7InSFTb1G54EaZ0HVOSIgogHw",
@ -1444,7 +1444,7 @@ Paginator(
TrackItem(
id: "ZPJlyRv_IGI",
title: "Deichkind - Leider Geil (Official Video)",
duration: 189,
duration: Some(189),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ZPJlyRv_IGI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n1twL6cpEZeQhEl8QoHfVf7cM2Pg",
@ -1466,7 +1466,7 @@ Paginator(
TrackItem(
id: "s2SLbln-JwE",
title: "BIBI & TINA \" Jungs gegen Mädchen - MÄDCHEN GEGEN JUNGS - Das offizielle Video!",
duration: 172,
duration: Some(172),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/s2SLbln-JwE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ltIxSy4LoU_-fArtrikLGXNRl1XQ",
@ -1488,7 +1488,7 @@ Paginator(
TrackItem(
id: "28xHtRw6pG8",
title: "Patte fließt",
duration: 206,
duration: Some(206),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/28xHtRw6pG8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kVwxZw2B34VAnHSTJshYQa9j5xMA",
@ -1510,7 +1510,7 @@ Paginator(
TrackItem(
id: "joWoKqUTRvc",
title: "Alles & Nichts",
duration: 204,
duration: Some(204),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/joWoKqUTRvc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3movb12YctPFD0IBYWqPsaQw7PALg",
@ -1532,7 +1532,7 @@ Paginator(
TrackItem(
id: "XNMFTqhcNrE",
title: "Flash mich (Videoclip)",
duration: 236,
duration: Some(236),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/XNMFTqhcNrE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mSsHLDjHqiqe8UCZJE1RbeRMMz6A",
@ -1554,7 +1554,7 @@ Paginator(
TrackItem(
id: "v3vPLgJ9FX8",
title: "Sex",
duration: 260,
duration: Some(260),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/v3vPLgJ9FX8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l8eDykZMz2z2N_LsJbPguiD3cT1Q",
@ -1580,7 +1580,7 @@ Paginator(
TrackItem(
id: "UFXOd179kOA",
title: "Ebbe und Flut (feat. Hanybal & Xatar)",
duration: 213,
duration: Some(213),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/UFXOd179kOA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n0eX07lNsT2RdXZxYz_lcbiKP-xg",
@ -1602,7 +1602,7 @@ Paginator(
TrackItem(
id: "4xRsDnKgHZc",
title: "Hol\' mir dein Cousin",
duration: 206,
duration: Some(206),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/4xRsDnKgHZc/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nbKBQXBSXiqUGzESK2u4said9-DA",
@ -1624,7 +1624,7 @@ Paginator(
TrackItem(
id: "mE3IjoEqMqY",
title: "Hanybal - VANILLA SKY mit Nimo (prod. von Lucry) [Official 4K Video]",
duration: 211,
duration: Some(211),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/mE3IjoEqMqY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3l4mnV5m6_KouDV0jgGk8Q2Lw1BAQ",
@ -1646,7 +1646,7 @@ Paginator(
TrackItem(
id: "E7e5vxKerqA",
title: "Wer Macht Para? (feat. ENO)",
duration: 195,
duration: Some(195),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/E7e5vxKerqA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mGWRNhex4Dn-AofZaYFSb3SZ76rQ",
@ -1668,7 +1668,7 @@ Paginator(
TrackItem(
id: "axmZ_5Rx4Go",
title: "Zuhause (feat. Matisyahu)",
duration: 210,
duration: Some(210),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/axmZ_5Rx4Go/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ln3zFIlxlt-cZHQ0RSfqd-GjRTdA",
@ -1690,7 +1690,7 @@ Paginator(
TrackItem(
id: "44Ig6BsOCYA",
title: "Purple Haze",
duration: 279,
duration: Some(279),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/44Ig6BsOCYA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3khpPZLQA__8mQdgGaTYkH5MTBGeg",
@ -1712,7 +1712,7 @@ Paginator(
TrackItem(
id: "3iLBFEJjdN0",
title: "Löwenzahn (feat. Olexesh)",
duration: 242,
duration: Some(242),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/3iLBFEJjdN0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nu5nTaA5NAoYKDKFqCziZXcoHv8Q",
@ -1734,7 +1734,7 @@ Paginator(
TrackItem(
id: "M-ncq2eHF_k",
title: "Ich will nur (Live)",
duration: 233,
duration: Some(233),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/M-ncq2eHF_k/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lRiJ0It7T26TBKf11KmupiXQM3yg",
@ -1756,7 +1756,7 @@ Paginator(
TrackItem(
id: "-AJoJ-ggiKI",
title: "LX & Maxwell feat. Gzuz - HaifischNikez (Jambeatz)",
duration: 215,
duration: Some(215),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/-AJoJ-ggiKI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mBFwSutY27Cg9Qguh6a0IRAqWmug",
@ -1778,7 +1778,7 @@ Paginator(
TrackItem(
id: "cgb-zp9DDHg",
title: "Brot brechen",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/cgb-zp9DDHg/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lamoVIcN2q2OwHp3dael5FCyckXw",
@ -1804,7 +1804,7 @@ Paginator(
TrackItem(
id: "Q7ZXg3KQLt0",
title: "Genozid",
duration: 407,
duration: Some(407),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Q7ZXg3KQLt0/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lf8_C4ADg9w2mQlrVs7eovgwYnsw",
@ -1826,7 +1826,7 @@ Paginator(
TrackItem(
id: "ysAEZOwp5rM",
title: "John Gotti",
duration: 207,
duration: Some(207),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ysAEZOwp5rM/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lVLPd_yYSO9xCbGIQruofzxarXmw",
@ -1848,7 +1848,7 @@ Paginator(
TrackItem(
id: "m5vfng33SVE",
title: "Das ist dein Leben",
duration: 282,
duration: Some(282),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/m5vfng33SVE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3mhyLzc0t56EXwAPur-PUR3PW4vMA",
@ -1870,7 +1870,7 @@ Paginator(
TrackItem(
id: "yMfgjVlGbUE",
title: "Apocalyptic Infinity",
duration: 1622,
duration: Some(1622),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/yMfgjVlGbUE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3n_YHxl5zLlX77d3oZEi2EnsgmZNw",
@ -1892,7 +1892,7 @@ Paginator(
TrackItem(
id: "OQIYEPe6DWY",
title: "Kraftwerk - Das Model",
duration: 262,
duration: Some(262),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/OQIYEPe6DWY/hqdefault.jpg?sqp=-oaymwEWCMACELQBIAQqCghQEJADGFogjgJIWg&rs=AMzJL3mQmoIe2DRlb7QWVUVJX3SCeWbH_Q",
@ -1914,7 +1914,7 @@ Paginator(
TrackItem(
id: "5FS8RIH7BpI",
title: "Wünsch dir was",
duration: 303,
duration: Some(303),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/5FS8RIH7BpI/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kNOrBGoV1P7wuYrmKGlEW5yNsoyw",
@ -1936,7 +1936,7 @@ Paginator(
TrackItem(
id: "zSRKgFB9piY",
title: "Keine ist wie Du ( Gregor Meyle Acoustic Cover )",
duration: 256,
duration: Some(256),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/zSRKgFB9piY/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nF4dUIKKNM5y-LmsIOOZoATrT-0Q",
@ -1958,7 +1958,7 @@ Paginator(
TrackItem(
id: "e4eHhgwHCME",
title: "Sturmmaske auf (Intro)",
duration: 275,
duration: Some(275),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/e4eHhgwHCME/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nQl_6lMyV10I2zjZyFcJEdwQaIZg",
@ -1984,7 +1984,7 @@ Paginator(
TrackItem(
id: "q3hZvho7jNk",
title: "Paper",
duration: 222,
duration: Some(222),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/q3hZvho7jNk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kOcKYMlDrXaKxJDoeH87Q_Mzd_SQ",
@ -2006,7 +2006,7 @@ Paginator(
TrackItem(
id: "0nWysyj_Z4Y",
title: "Flouz kommt Flouz geht",
duration: 191,
duration: Some(191),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/0nWysyj_Z4Y/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kSMItp6YIX6w_qDux1u8F6Cagyig",
@ -2028,7 +2028,7 @@ Paginator(
TrackItem(
id: "aGCcLWU0OVo",
title: "Gürtel am Arm",
duration: 218,
duration: Some(218),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/aGCcLWU0OVo/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kMGpv4wmbGpoj5kuiXb9KdKzV8oA",
@ -2050,7 +2050,7 @@ Paginator(
TrackItem(
id: "OQsXLK4MeEA",
title: "JBB 2013 - SpongeBOZZ vs. Gio (Finale HR) prod. by Digital Drama",
duration: 400,
duration: Some(400),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/OQsXLK4MeEA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ne3Hh8Kkwk16N0zSVhDnPEkcAqwA",
@ -2072,7 +2072,7 @@ Paginator(
TrackItem(
id: "xm7dxIqOO2M",
title: "Halbmond",
duration: 272,
duration: Some(272),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/xm7dxIqOO2M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nDcyYoQvs0hGNEKrvL7fVOJY5L3w",
@ -2094,7 +2094,7 @@ Paginator(
TrackItem(
id: "jlaaByab4Zk",
title: "Ljubi me budalo (Radio)",
duration: 224,
duration: Some(224),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/jlaaByab4Zk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m6sTRTunsqQGLxWlaU4vcX8eqPEQ",
@ -2120,7 +2120,7 @@ Paginator(
TrackItem(
id: "KG9-jSqXz4U",
title: "Oft gefragt (AMK Version)",
duration: 205,
duration: Some(205),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/KG9-jSqXz4U/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nxsaHyT0dlyjgAjia_RoqrrWra_g",
@ -2142,7 +2142,7 @@ Paginator(
TrackItem(
id: "7dISZnwsBSA",
title: "1,40m (feat. Philipp Dittberner)",
duration: 284,
duration: Some(284),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/7dISZnwsBSA/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lnfTeZo81tTNqp-wQjR--Oxv03TA",
@ -2164,7 +2164,7 @@ Paginator(
TrackItem(
id: "F_PPdS-PB14",
title: "Idéal",
duration: 253,
duration: Some(253),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/F_PPdS-PB14/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3krIwo8VzYKk9qVoIknbptf_RNqiA",
@ -2186,7 +2186,7 @@ Paginator(
TrackItem(
id: "DMg9idvVY8M",
title: "Bitter",
duration: 173,
duration: Some(173),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/DMg9idvVY8M/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lH9rwO-ADA6_jBP3xHCJ0r4mcp_A",
@ -2208,7 +2208,7 @@ Paginator(
TrackItem(
id: "DGEmoSFI94Y",
title: "Kurz Für Immer Bleiben",
duration: 218,
duration: Some(218),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/DGEmoSFI94Y/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kadR5_E5BFVgv-slX2RBdYbHyDgw",
@ -2230,7 +2230,7 @@ Paginator(
TrackItem(
id: "BtZufymxHvE",
title: "Ausser Kontrolle",
duration: 159,
duration: Some(159),
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/BtZufymxHvE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kHr0G-SFBkafG5ym10v9EX0F8tmw",

View file

@ -8,7 +8,7 @@ Paginator(
TrackItem(
id: "rNsISA-kWzM",
title: "Black Mamba Dub",
duration: 248,
duration: Some(248),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/zRVppSgdih64UOcY_0-sZacnxhMkII4v4OotgFbV1SVbLT3qk4NmfQRXwhxszMJKTmb3uo8MzOwkyQ=w60-h60-l90-rj",
@ -38,7 +38,7 @@ Paginator(
TrackItem(
id: "vMZqNPZADFw",
title: "Black Mamba (feat. Ermal Meta)",
duration: 287,
duration: Some(287),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/POoljmkFZgedlsgFfdn4B1kcZZ7P9Kx1xszHV9wT082T7GYX4c0lRrYaalrXIkT-ZeTeB5esqrftpzQ0GQ=w60-h60-l90-rj",
@ -68,7 +68,7 @@ Paginator(
TrackItem(
id: "C8B-nBnB7Bk",
title: "Black Mamba",
duration: 177,
duration: Some(177),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/2cJawayDujRRcl8OKABi82_aa4sH6EGLAqxlx976Syzh86c9inNlY2xch5s4GWEo5iSXVq8VdS_59l8=w60-h60-l90-rj",
@ -98,7 +98,7 @@ Paginator(
TrackItem(
id: "29MOu6Y781I",
title: "Rip Black Mamba",
duration: 122,
duration: Some(122),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/4XunKmdccrggx1GrQiX5T5OrPQpSLuzacDQjvFHUYQasIDClF-TtQdSCYXYDQ8gGy7CYn2J9aJC5P4c=w60-h60-l90-rj",
@ -128,7 +128,7 @@ Paginator(
TrackItem(
id: "AdvPpJVvyEg",
title: "Black Mamba",
duration: 126,
duration: Some(126),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Ue_Q3bgiMyvB_Rk8g0nCyTJHebz_A7f6twQkaRLX-iaHug2j5MmIwS9iHHW94S5x7gOwymGNngIDOXE=w60-h60-l90-rj",
@ -158,7 +158,7 @@ Paginator(
TrackItem(
id: "kv3Z269PQvE",
title: "Black Mamba",
duration: 178,
duration: Some(178),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/PXz8D3pENlYjM-uBxgaMrWZtydsXzV7jGznVo1g9qf11fDckcTonR4NgMv0fwxjesqCvgq-uRSV3gfQTyA=w60-h60-l90-rj",
@ -188,7 +188,7 @@ Paginator(
TrackItem(
id: "y74ZqAkFkK4",
title: "Born To Fight",
duration: 278,
duration: Some(278),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/g0iyEdaYwlSjWkL516U_yDhCNh0ybcMIIcxBLtzRU32z8-K6-lY4n7dLy4QLWjDVeG28_uPaMRLRipzz=w60-h60-l90-rj",
@ -218,7 +218,7 @@ Paginator(
TrackItem(
id: "ZVnqAUnj-1Y",
title: "Black Mamba",
duration: 188,
duration: Some(188),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/WOkfIAGaz2Q_RhoMqgLQPS8zfrnT85NEpwgbvyc04DCS9fEw8y03FqAA4iUEABq0Adcey0w4erkX67vJoA=w60-h60-l90-rj",
@ -248,7 +248,7 @@ Paginator(
TrackItem(
id: "REmUidcJt5I",
title: "Savage",
duration: 239,
duration: Some(239),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/WVm938cCHuYeJyYRz0a8NHrvTXnEM6_aPiZOyv8ZzPVWt-wFqM1Fnkko68jgNPhhwI5ub_8z8n1OyhA=w60-h60-l90-rj",
@ -278,7 +278,7 @@ Paginator(
TrackItem(
id: "63sEilefjtQ",
title: "Black Mamba",
duration: 233,
duration: Some(233),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Smo8SmweSdDGfGCWbyo_WY08R72MwqkEx6eq9aUTc2TulaGJs7uh9nDoqcPjV5BRkBFtrCRAm8CryjMImA=w60-h60-l90-rj",
@ -308,7 +308,7 @@ Paginator(
TrackItem(
id: "_LGy1K5vmq8",
title: "Black Mamba",
duration: 284,
duration: Some(284),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/9Djd9it37TlN57UrU90PfDOYETwyEuxewPaW9ZcRJICkYS5FAwYjsC8ZN50KVT6DTTRm14fD3JIuzifL=w60-h60-l90-rj",
@ -338,7 +338,7 @@ Paginator(
TrackItem(
id: "Ak98OIfed8o",
title: "Black Mamba",
duration: 346,
duration: Some(346),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/of6AjBFZiDdRIOzHk8hJI_6rexaVeBX2Weli37gkTwo7GD0nQynE9I8FQMwwyqPkyXBP9rfzP4CAtAFk=w60-h60-l90-rj",
@ -368,7 +368,7 @@ Paginator(
TrackItem(
id: "_aSqdZKxcuU",
title: "Soul Surrender",
duration: 273,
duration: Some(273),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/POgJYf88Xb_XJz2JKhJLRgni4a4P_NOEEZ8Yy_EX4LwoWeadBuNg2shcLiS6ruxehoRerVqjbrRWPc1t=w60-h60-l90-rj",
@ -398,7 +398,7 @@ Paginator(
TrackItem(
id: "6Lb4bmEEfnY",
title: "Black Mamba Boy",
duration: 312,
duration: Some(312),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/8pJynr17yAyhW8QL20jk_XdhBBokDmt6-HtrTo2IGiwe6nOsalsd64vNtXYM_vl8-iMxyqULJ3psnf_2Yg=w60-h60-l90-rj",
@ -428,7 +428,7 @@ Paginator(
TrackItem(
id: "4lrp5FWFIak",
title: "Black Mamba",
duration: 558,
duration: Some(558),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/lPZMkkaPYEXPHmUgwebckyBi1M6EtIxyxhfsSTvEcqj0J5QSCy4MWICmznUSo5ym7nh6ZbSLAFjruoJ_=w60-h60-l90-rj",
@ -458,7 +458,7 @@ Paginator(
TrackItem(
id: "Kk8vT1o_gYE",
title: "Black Mamba",
duration: 324,
duration: Some(324),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/tJDelxhiUsBVlb2jbqR-cBqnPpsFUaNCIvJ-kUET3kNPhbGXkRDMBpNtQ9fkqrwhewyhHwd5SvQnNbA=w60-h60-l90-rj",
@ -496,7 +496,7 @@ Paginator(
TrackItem(
id: "FbUrY0GdO88",
title: "Black Mamba Blues",
duration: 186,
duration: Some(186),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/F4XKnhpSiMqFwf-wXEV7w7HAT8B6u7KVKzuauyJGyntuwBArQ8nw6_4WLL7csBtJcvh4skHWI_168EXsJA=w60-h60-l90-rj",
@ -526,7 +526,7 @@ Paginator(
TrackItem(
id: "OFesVwAdT80",
title: "Black Mamba",
duration: 149,
duration: Some(149),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/WSxW9Z7k4cPpouB30qD1hvYITQA-e5J_dB7m0SuxEbIAUlYAGtKDc_uiDOHYHBLx4bPwbqKCjtO3-dtfdQ=w60-h60-l90-rj",
@ -556,7 +556,7 @@ Paginator(
TrackItem(
id: "lNeJjPPKE1g",
title: "Black Mamba",
duration: 212,
duration: Some(212),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/_F5_qGGtZ8jYva_vvaOTwvrw7Elig9Y119SFqUbyf45ioDo3aAkfmaVNb0czjGDzU_MUDjnXQmnwXa4=w60-h60-l90-rj",
@ -586,7 +586,7 @@ Paginator(
TrackItem(
id: "SW_woyyA1Bg",
title: "Black Mamba Style",
duration: 202,
duration: Some(202),
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/o5Tdv51nXvS40_b1mz_YnpB9bQRSyzRzrahjwN9quAJrjiN3MWDRo5tqIVzH-dnJIwyZYKdeRa2rUDg=w60-h60-l90-rj",

View file

@ -882,7 +882,9 @@ pub struct TrackItem {
/// Track title
pub title: String,
/// Track duration in seconds
pub duration: u32,
///
/// [`None`] when extracted from an artist page or a featured video.
pub duration: Option<u32>,
/// Album cover
pub cover: Vec<Thumbnail>,
/// Artists of the track
@ -1040,6 +1042,39 @@ pub struct MusicAlbum {
pub variants: Vec<AlbumItem>,
}
/// YouTube music artist object
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
#[non_exhaustive]
pub struct MusicArtist {
/// Unique YouTube channel ID (e.g. `UCRD-INDaHvHlO8K_33uKetQ`)
pub id: String,
/// Artist name
pub name: String,
/// Artist header image
pub header_image: Vec<Thumbnail>,
/// Artist description
pub description: String,
/// URL of the artist's wikipedia page
pub wikipedia_url: Option<String>,
/// Artist subscriber count
///
/// [`None`] if the subscriber count was hidden by the owner
/// or could not be parsed.
pub subscriber_count: Option<u64>,
/// The most popular tracks of the artist
pub tracks: Vec<TrackItem>,
/// The artist's albums
pub albums: Vec<AlbumItem>,
/// Playlists featuring the artist
pub playlists: Vec<MusicPlaylistItem>,
/// Similar artists
pub similar_artists: Vec<ArtistItem>,
/// ID of the playlist containging the artist's tracks
pub tracks_playlist_id: Option<String>,
/// ID of the playlist containging the artist's videos
pub videos_playlist_id: Option<String>,
}
/// YouTube Music search result
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
pub struct MusicSearchResult {

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View 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"),
)

View 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"),
)

View file

@ -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(

View 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,
)

View 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,
)

View file

@ -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(

View 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"),
)

View file

@ -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(

View file

@ -24,7 +24,7 @@ MusicAlbum(
TrackItem(
id: "XX0epju-YvY",
title: "Der Himmel reißt auf",
duration: 183,
duration: Some(183),
cover: [],
artists: [
ArtistId(

View file

@ -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 (Cant 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(

View file

@ -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");