fix: A/B test 19: Music artist album groups reordered

This commit is contained in:
ThetaDev 2025-01-13 03:21:51 +01:00
parent 23cd03a19d
commit 5daad1b700
No known key found for this signature in database
GPG key ID: E319D3C5148D65B6
13 changed files with 17830 additions and 460 deletions

View file

@ -15,6 +15,7 @@ tokio = { workspace = true, features = ["rt-multi-thread"] }
futures-util.workspace = true
serde.workspace = true
serde_json.workspace = true
serde_plain.workspace = true
serde_with.workspace = true
once_cell.workspace = true
regex.workspace = true

View file

@ -38,14 +38,11 @@ pub enum ABTest {
PlaylistPageHeader = 16,
ChannelPlaylistsLockup = 17,
MusicPlaylistFacepile = 18,
MusicAlbumGroupsReordered = 19,
}
/// List of active A/B tests that are run when none is manually specified
const TESTS_TO_RUN: [ABTest; 3] = [
ABTest::ChannelPageHeader,
ABTest::MusicPlaylistTwoColumn,
ABTest::CommentsFrameworkUpdate,
];
const TESTS_TO_RUN: &[ABTest] = &[ABTest::MusicAlbumGroupsReordered];
#[derive(Debug, Serialize, Deserialize)]
pub struct ABTestRes {
@ -116,6 +113,7 @@ pub async fn run_test(
ABTest::PlaylistPageHeader => playlist_page_header_renderer(&query).await,
ABTest::ChannelPlaylistsLockup => channel_playlists_lockup(&query).await,
ABTest::MusicPlaylistFacepile => music_playlist_facepile(&query).await,
ABTest::MusicAlbumGroupsReordered => music_album_groups_reordered(&query).await,
}
.unwrap();
pb.inc(1);
@ -141,10 +139,10 @@ pub async fn run_all_tests(n: usize, concurrency: usize) -> Vec<ABTestRes> {
let mut results = Vec::new();
for ab in TESTS_TO_RUN {
let (occurrences, vd_present, vd_absent) = run_test(ab, n, concurrency).await;
let (occurrences, vd_present, vd_absent) = run_test(*ab, n, concurrency).await;
results.push(ABTestRes {
id: ab as u16,
name: ab,
id: *ab as u16,
name: *ab,
tests: n,
occurrences,
vd_present,
@ -408,3 +406,18 @@ pub async fn music_playlist_facepile(rp: &RustyPipeQuery) -> Result<bool> {
.await?;
Ok(res.contains("\"facepile\""))
}
pub async fn music_album_groups_reordered(rp: &RustyPipeQuery) -> Result<bool> {
let id = "UCOR4_bSVIXPsGa4BbCSt60Q";
let res = rp
.raw(
ClientType::DesktopMusic,
"browse",
&QBrowse {
browse_id: id,
params: None,
},
)
.await?;
Ok(res.contains("\"Singles & EPs\""))
}

View file

@ -7,22 +7,35 @@ use rustypipe::{
model::AlbumType,
param::{Language, LANGUAGES},
};
use serde::Deserialize;
use serde::{Deserialize, Serialize};
use serde_with::rust::deserialize_ignore_any;
use crate::{
model::{QBrowse, TextRuns},
model::{ContentsRenderer, QBrowse, SectionList, Tab, TextRuns},
util::{self, DICT_DIR},
};
#[derive(Debug, Copy, Clone, Serialize, Deserialize, PartialEq, Eq, PartialOrd, Ord)]
#[serde(rename_all = "snake_case")]
enum AlbumTypeX {
Album,
Ep,
Single,
Audiobook,
Show,
AlbumRow,
SingleRow,
}
pub async fn collect_album_types(concurrency: usize) {
let json_path = path!(*DICT_DIR / "album_type_samples.json");
let album_types = [
(AlbumType::Album, "MPREb_nlBWQROfvjo"),
(AlbumType::Single, "MPREb_bHfHGoy7vuv"),
(AlbumType::Ep, "MPREb_u1I69lSAe5v"),
(AlbumType::Audiobook, "MPREb_gaoNzsQHedo"),
(AlbumType::Show, "MPREb_cwzk8EUwypZ"),
(AlbumTypeX::Album, "MPREb_nlBWQROfvjo"),
(AlbumTypeX::Single, "MPREb_bHfHGoy7vuv"),
(AlbumTypeX::Ep, "MPREb_u1I69lSAe5v"),
(AlbumTypeX::Audiobook, "MPREb_gaoNzsQHedo"),
(AlbumTypeX::Show, "MPREb_cwzk8EUwypZ"),
];
let rp = RustyPipe::new();
@ -32,7 +45,7 @@ pub async fn collect_album_types(concurrency: usize) {
let rp = rp.clone();
async move {
let query = rp.query().lang(lang);
let mut data: BTreeMap<AlbumType, String> = BTreeMap::new();
let mut data: BTreeMap<AlbumTypeX, String> = BTreeMap::new();
for (album_type, id) in album_types {
let atype_txt = get_album_type(&query, id).await;
@ -40,6 +53,22 @@ pub async fn collect_album_types(concurrency: usize) {
data.insert(album_type, atype_txt);
}
let (albums_txt, singles_txt) = get_album_groups(&query).await;
println!(
"collected {}-{:?} ({})",
lang,
AlbumTypeX::AlbumRow,
&albums_txt
);
println!(
"collected {}-{:?} ({})",
lang,
AlbumTypeX::SingleRow,
&singles_txt
);
data.insert(AlbumTypeX::AlbumRow, albums_txt);
data.insert(AlbumTypeX::SingleRow, singles_txt);
(lang, data)
}
})
@ -55,7 +84,7 @@ pub fn write_samples_to_dict() {
let json_path = path!(*DICT_DIR / "album_type_samples.json");
let json_file = File::open(json_path).unwrap();
let collected: BTreeMap<Language, BTreeMap<AlbumType, String>> =
let collected: BTreeMap<Language, BTreeMap<String, String>> =
serde_json::from_reader(BufReader::new(json_file)).unwrap();
let mut dict = util::read_dict();
let langs = dict.keys().copied().collect::<Vec<_>>();
@ -67,10 +96,12 @@ pub fn write_samples_to_dict() {
e_langs.push(lang);
for lang in &e_langs {
collected.get(lang).unwrap().iter().for_each(|(t, v)| {
collected.get(lang).unwrap().iter().for_each(|(t_str, v)| {
let t =
serde_plain::from_str::<AlbumType>(t_str.split('_').next().unwrap()).unwrap();
dict_entry
.album_types
.insert(v.to_lowercase().trim().to_owned(), *t);
.insert(v.to_lowercase().trim().to_owned(), t);
});
}
}
@ -80,13 +111,19 @@ pub fn write_samples_to_dict() {
#[derive(Debug, Deserialize)]
struct AlbumData {
header: Header,
contents: AlbumContents,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct Header {
music_detail_header_renderer: HeaderRenderer,
struct AlbumContents {
two_column_browse_results_renderer: ContentsRenderer<Tab<SectionList<AlbumHeader>>>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AlbumHeader {
music_responsive_header_renderer: HeaderRenderer,
}
#[derive(Debug, Deserialize)]
@ -106,8 +143,20 @@ async fn get_album_type(query: &RustyPipeQuery, id: &str) -> String {
let album = serde_json::from_str::<AlbumData>(&response_txt).unwrap();
album
.header
.music_detail_header_renderer
.contents
.two_column_browse_results_renderer
.contents
.into_iter()
.next()
.unwrap()
.tab_renderer
.content
.section_list_renderer
.contents
.into_iter()
.next()
.unwrap()
.music_responsive_header_renderer
.subtitle
.runs
.into_iter()
@ -115,3 +164,84 @@ async fn get_album_type(query: &RustyPipeQuery, id: &str) -> String {
.unwrap()
.text
}
async fn get_album_groups(query: &RustyPipeQuery) -> (String, String) {
let body = QBrowse {
browse_id: "UCOR4_bSVIXPsGa4BbCSt60Q",
params: None,
};
let response_txt = query
.clone()
.visitor_data("CgtwbzJZcS1XZWc1QSjM2JG8BjIKCgJERRIEEgAgCw%3D%3D")
.raw(ClientType::DesktopMusic, "browse", &body)
.await
.unwrap();
let artist = serde_json::from_str::<ArtistData>(&response_txt).unwrap();
let sections = artist
.contents
.single_column_browse_results_renderer
.contents
.into_iter()
.next()
.map(|c| c.tab_renderer.content.section_list_renderer.contents)
.unwrap();
let titles = sections
.into_iter()
.filter_map(|s| {
if let ItemSection::MusicCarouselShelfRenderer(r) = s {
r.header
} else {
None
}
})
.map(|h| {
h.music_carousel_shelf_basic_header_renderer
.title
.runs
.into_iter()
.next()
.unwrap()
.text
})
.collect::<Vec<_>>();
assert!(titles.len() >= 2, "too few sections");
let mut titles_it = titles.into_iter();
(titles_it.next().unwrap(), titles_it.next().unwrap())
}
#[derive(Debug, Deserialize)]
struct ArtistData {
contents: ArtistDataContents,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct ArtistDataContents {
single_column_browse_results_renderer: ContentsRenderer<Tab<SectionList<ItemSection>>>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
enum ItemSection {
MusicCarouselShelfRenderer(MusicCarouselShelf),
#[serde(other, deserialize_with = "deserialize_ignore_any")]
None,
}
#[derive(Debug, Deserialize)]
struct MusicCarouselShelf {
header: Option<MusicCarouselShelfHeader>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
struct MusicCarouselShelfHeader {
music_carousel_shelf_basic_header_renderer: MusicCarouselShelfHeaderRenderer,
}
#[derive(Debug, Deserialize)]
struct MusicCarouselShelfHeaderRenderer {
title: TextRuns,
}

View file

@ -145,7 +145,7 @@ pub struct Text {
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Channel {
pub contents: Contents,
pub contents: TwoColumnBrowseResults,
pub header: ChannelHeader,
}
@ -163,7 +163,7 @@ pub struct HeaderRenderer {
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Contents {
pub struct TwoColumnBrowseResults {
pub two_column_browse_results_renderer: TabsRenderer,
}
@ -172,24 +172,37 @@ pub struct Contents {
#[serde(rename_all = "camelCase")]
pub struct TabsRenderer {
#[serde_as(as = "VecSkipError<_>")]
pub tabs: Vec<TabRendererWrap>,
pub tabs: Vec<Tab<RichGrid>>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TabRendererWrap {
pub tab_renderer: TabRenderer,
pub struct ContentsRenderer<T> {
#[serde(alias = "tabs")]
pub contents: Vec<T>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TabRenderer {
pub content: RichGridRendererWrap,
pub struct Tab<T> {
pub tab_renderer: TabRenderer<T>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RichGridRendererWrap {
pub struct TabRenderer<T> {
pub content: T,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct SectionList<T> {
pub section_list_renderer: ContentsRenderer<T>,
}
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RichGrid {
pub rich_grid_renderer: RichGridRenderer,
}

View file

@ -1024,3 +1024,15 @@ commandContext missing).
}
}
```
## [19] Music artist album groups reordered
- **Encountered on:** 13.01.2025
- **Impact:** 🟢 Low
- **Endpoint:** browse (YTM)
- **Status:** Common (10%)
YouTube Music used to group artist albums into 2 rows: "Albums" and "Singles".
These groups were changed into "Albums" and "Singles & EPs". Now the "Album" label is omitted
for albums in their group, while singles and EPs have a label with their type.

View file

@ -5,10 +5,14 @@ use regex::Regex;
use tracing::debug;
use crate::{
client::{response::url_endpoint::NavigationEndpoint, MapRespOptions, QContinuation},
client::{
response::{music_item::map_album_type, url_endpoint::NavigationEndpoint},
MapRespOptions, QContinuation,
},
error::{Error, ExtractionError},
model::{
paginator::Paginator, traits::FromYtItem, AlbumItem, ArtistId, MusicArtist, MusicItem,
paginator::Paginator, traits::FromYtItem, AlbumItem, AlbumType, ArtistId, MusicArtist,
MusicItem,
},
param::{AlbumFilter, AlbumOrder},
serializer::MapResult,
@ -175,8 +179,7 @@ fn map_artist_page(
.contents
.into_iter()
.next()
.and_then(|tab| tab.tab_renderer.content)
.map(|c| c.section_list_renderer.contents)
.map(|c| c.tab_renderer.content.section_list_renderer.contents)
.unwrap_or_default();
let mut mapper = MusicListMapper::with_artist(
@ -207,11 +210,12 @@ fn map_artist_page(
}
}
}
mapper.album_type = AlbumType::Single;
mapper.map_response(shelf.contents);
}
response::music_item::ItemSection::MusicCarouselShelfRenderer(shelf) => {
let mut extendable_albums = false;
mapper.album_type = AlbumType::Single;
if let Some(h) = shelf.header {
if let Some(button) = h
.music_carousel_shelf_basic_header_renderer
@ -250,6 +254,12 @@ fn map_artist_page(
}
}
}
mapper.album_type = map_album_type(
h.music_carousel_shelf_basic_header_renderer
.title
.first_str(),
ctx.lang,
);
}
if !skip_extendables || !extendable_albums {
@ -415,6 +425,7 @@ mod tests {
#[case::only_singles("only_singles", "UCfwCE5VhPMGxNPFxtVv7lRw")]
#[case::no_artist("no_artist", "UCh8gHdtzO2tXd593_bjErWg")]
#[case::only_more_singles("only_more_singles", "UC0aXrjVxG5pZr99v77wZdPQ")]
#[case::grouped_albums("20250113_grouped_albums", "UCOR4_bSVIXPsGa4BbCSt60Q")]
fn map_music_artist(#[case] name: &str, #[case] id: &str) {
let json_path = path!(*TESTFILES / "music_artist" / format!("artist_{name}.json"));
let json_file = File::open(json_path).unwrap();

View file

@ -14,7 +14,7 @@ use super::{
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) struct MusicArtist {
pub contents: SingleColumnBrowseResult<Tab<Option<SectionList<ItemSection>>>>,
pub contents: SingleColumnBrowseResult<Tab<SectionList<ItemSection>>>,
pub header: Header,
}

View file

@ -21,7 +21,6 @@ use super::{
ContentsRenderer, MusicContinuationData, SimpleHeaderRenderer, Thumbnails, ThumbnailsWrap,
};
#[serde_as]
#[derive(Debug, Deserialize)]
#[serde(rename_all = "camelCase")]
pub(crate) enum ItemSection {
@ -429,6 +428,8 @@ pub(crate) struct MusicListMapper {
/// Artists list + various artists flag
artists: Option<(Vec<ArtistId>, bool)>,
album: Option<AlbumId>,
/// Default album type in case an album is unlabeled
pub album_type: AlbumType,
artist_page: bool,
search_suggestion: bool,
items: Vec<MusicItem>,
@ -449,6 +450,7 @@ impl MusicListMapper {
lang,
artists: None,
album: None,
album_type: AlbumType::Single,
artist_page: false,
search_suggestion: false,
items: Vec::new(),
@ -461,6 +463,7 @@ impl MusicListMapper {
lang,
artists: None,
album: None,
album_type: AlbumType::Single,
artist_page: false,
search_suggestion: true,
items: Vec::new(),
@ -474,6 +477,7 @@ impl MusicListMapper {
lang,
artists: Some((vec![artist], false)),
album: None,
album_type: AlbumType::Single,
artist_page: true,
search_suggestion: false,
items: Vec::new(),
@ -487,6 +491,7 @@ impl MusicListMapper {
lang,
artists: Some((artists, by_va)),
album: Some(album),
album_type: AlbumType::Single,
artist_page: false,
search_suggestion: false,
items: Vec::new(),
@ -950,7 +955,7 @@ impl MusicListMapper {
}
MusicPageType::Album => {
let mut year = None;
let mut album_type = AlbumType::Single;
let mut album_type = self.album_type;
let (artists, by_va) =
match (subtitle_p1, subtitle_p2, &self.artists, self.artist_page) {
@ -1397,13 +1402,18 @@ mod tests {
fn map_album_type_samples() {
let json_path = path!(*TESTFILES / "dict" / "album_type_samples.json");
let json_file = File::open(json_path).unwrap();
let atype_samples: BTreeMap<Language, BTreeMap<AlbumType, String>> =
let atype_samples: BTreeMap<Language, BTreeMap<String, String>> =
serde_json::from_reader(BufReader::new(json_file)).unwrap();
for (lang, entry) in &atype_samples {
for (album_type, txt) in entry {
for (album_type_str, txt) in entry {
let album_type_n = album_type_str.split('_').next().unwrap();
let album_type = serde_plain::from_str::<AlbumType>(album_type_n).unwrap();
let res = map_album_type(txt, *lang);
assert_eq!(res, *album_type, "lang: {lang}, txt: {txt}");
assert_eq!(
res, album_type,
"{album_type_str}: lang: {lang}, txt: {txt}"
);
}
}
}

View file

@ -0,0 +1,943 @@
---
source: src/client/music_artist.rs
expression: artist
---
MusicArtist(
id: "UCOR4_bSVIXPsGa4BbCSt60Q",
name: "Trailerpark",
header_image: [
Thumbnail(
url: "https://lh3.googleusercontent.com/II101BviJo-tGcGg1KKWSU8D3EZjALHQMbQ4v-7-hP4Zfk1pBESaTCLcz8eQb-hggzxq4Z1MuFkBeRE=w540-h225-p-l90-rj",
width: 540,
height: 225,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/II101BviJo-tGcGg1KKWSU8D3EZjALHQMbQ4v-7-hP4Zfk1pBESaTCLcz8eQb-hggzxq4Z1MuFkBeRE=w721-h300-p-l90-rj",
width: 721,
height: 300,
),
],
description: None,
wikipedia_url: None,
subscriber_count: Some(270000),
tracks: [
TrackItem(
id: "YvidasjVLXk",
name: "Bleib in der Schule",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/V_tvMqbuXgDgoAKuYZ-VFRru3cUb2WQvwO6vVBKY8pdFYAl1dkuIv_W2afjMUNN6uVNxet6r7mHISh0s=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/V_tvMqbuXgDgoAKuYZ-VFRru3cUb2WQvwO6vVBKY8pdFYAl1dkuIv_W2afjMUNN6uVNxet6r7mHISh0s=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: Some(AlbumId(
id: "MPREb_8PsIyll0LFV",
name: "Bleib in der Schule",
)),
view_count: Some(71000000),
track_type: track,
track_nr: None,
by_va: false,
),
TrackItem(
id: "h3T_NXRUUjM",
name: "Fledermausland",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/1fPBoTszY4e6Nf8egSwBTHWsQT8hotwhDnjArd1SHS8gZc5asCoo_3Z2WhN1IO2KMqyYly0xm7mMZ43d=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/1fPBoTszY4e6Nf8egSwBTHWsQT8hotwhDnjArd1SHS8gZc5asCoo_3Z2WhN1IO2KMqyYly0xm7mMZ43d=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: Some(AlbumId(
id: "MPREb_POeT6m0bw9q",
name: "Crackstreet Boys II X Version",
)),
view_count: Some(30000000),
track_type: track,
track_nr: None,
by_va: false,
),
TrackItem(
id: "XZfoFwWvkGQ",
name: "Sterben kannst du überall",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/eQCwnR4YLYnizEhQKeSDDE3rulSTo64cTfs8fxR1K-3iWUfC477SHV0ZOOoQa2vJuvr_9i_WDYI-wbo=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/eQCwnR4YLYnizEhQKeSDDE3rulSTo64cTfs8fxR1K-3iWUfC477SHV0ZOOoQa2vJuvr_9i_WDYI-wbo=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: Some(AlbumId(
id: "MPREb_UYdRV1nnK2J",
name: "TP4L",
)),
view_count: Some(40000000),
track_type: track,
track_nr: None,
by_va: false,
),
TrackItem(
id: "LOuVxwVFJhs",
name: "Selbstbefriedigung",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/1fPBoTszY4e6Nf8egSwBTHWsQT8hotwhDnjArd1SHS8gZc5asCoo_3Z2WhN1IO2KMqyYly0xm7mMZ43d=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/1fPBoTszY4e6Nf8egSwBTHWsQT8hotwhDnjArd1SHS8gZc5asCoo_3Z2WhN1IO2KMqyYly0xm7mMZ43d=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: Some(AlbumId(
id: "MPREb_POeT6m0bw9q",
name: "Crackstreet Boys II X Version",
)),
view_count: Some(13000000),
track_type: track,
track_nr: None,
by_va: false,
),
TrackItem(
id: "GePZUYeIQQQ",
name: "Falsche Band",
duration: None,
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/MIuap-H2LxqP5O7Dry1LdShBFBbg5YTjIPjuXOHWyrKlmnOogsO5cTk6yXH97DhI3WjZg0z3y-jkQxaM=w60-h60-l90-rj",
width: 60,
height: 60,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/MIuap-H2LxqP5O7Dry1LdShBFBbg5YTjIPjuXOHWyrKlmnOogsO5cTk6yXH97DhI3WjZg0z3y-jkQxaM=w120-h120-l90-rj",
width: 120,
height: 120,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: Some(AlbumId(
id: "MPREb_bi34SGT1xlc",
name: "Crackstreet Boys 3 (Bonus Tracks Version)",
)),
view_count: Some(13000000),
track_type: track,
track_nr: None,
by_va: false,
),
TrackItem(
id: "0mcING0Zdis",
name: "Trailerpark - TP4L (Live Abschiedskonzert)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/0mcING0Zdis/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k5JY0WRBeKNaotfUYrpbObz1mceA",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/0mcING0Zdis/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3kinVfBJUF-SDFagYKazKmS_ad75w",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(13000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "EAC-2ttHCyk",
name: "Fledermausland (Bonus Track)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/EAC-2ttHCyk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nlrgFTz_pwbBwXFbaASgklpX78vA",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/EAC-2ttHCyk/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3nHzhiahqhmIkZ0eUXD09BGak2MHQ",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(25000000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "Bret5VaVzJk",
name: "New Kids on the Blech (Bonus Track)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/Bret5VaVzJk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nFa4qUxqJzCtxr-zPdzP15Ixvu-A",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/Bret5VaVzJk/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3l1hGZVAWUwaJQbZXmbRpcbsMdTeQ",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(6900000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "EqP1_IcjW-s",
name: "Pimpulsiv feat. DNP, Sudden & Dana - Wohnwagensiedlung",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/EqP1_IcjW-s/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3lIeltSLpA_XwwZzdJfHnNZ0vqBzA",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/EqP1_IcjW-s/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3nfiByY3RfcFYGfg92C5Vlkar0GJA",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(7100000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "3EoF9Of98e4",
name: "Armut treibt Jugendliche in die Popmusik",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/3EoF9Of98e4/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3kvWHX-5mYREKEkf-CM3TLfjrLjlw",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/3EoF9Of98e4/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lItzsg6wamh_xSdpoZxTWOHHLS-g",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(5400000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "qr0eN_uIcTs",
name: "Bleib in der Schule (Live in Berlin)",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/qr0eN_uIcTs/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nspTbohIYzDFOjTg90KEmKecVVvg",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/qr0eN_uIcTs/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3n0SIeq4dPTPvbGv4STsTWNt24cig",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(56000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "McgSyiug6XE",
name: "We Are Family",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/McgSyiug6XE/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3nxe3Xz99BVFg-VOra20J682me5JQ",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/McgSyiug6XE/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lSGwKx_hnqYA-CkoLHapr1PiyX6w",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
ArtistId(
id: Some("UC5HSrFHr6lMzwAyGjlClm0A"),
name: "Timi Hendrix",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(1800000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "ioZxvVhjFs8",
name: "Schlechter Tag",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/ioZxvVhjFs8/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3ltQmZbH1DF9nmho5HLGehqLSGzTw",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/ioZxvVhjFs8/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3lsluKPeCNxP7QoOCc24tZy4jsn7Q",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(7100000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "3jyZJEcomkw",
name: "Timi Hendrix feat. Alligatoah - Schlaflos in Guantanamo ► prod. by Mantra",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/3jyZJEcomkw/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3k46-OFTCnpEJry_PNst1C11FPA1A",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/3jyZJEcomkw/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3kN1ryaQSy4M_Y9bQGh9S-tbYGqdg",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(1500000),
track_type: video,
track_nr: None,
by_va: false,
),
TrackItem(
id: "9oM-cflYhGk",
name: "Timi Hendrix - Kaiser von China (Official Video) 🐲",
duration: None,
cover: [
Thumbnail(
url: "https://i.ytimg.com/vi/9oM-cflYhGk/sddefault.jpg?sqp=-oaymwEWCJADEOEBIAQqCghqEJQEGHgg6AJIWg&rs=AMzJL3m6MksfA1NWyIMv6cTk03J21pA0NQ",
width: 400,
height: 225,
),
Thumbnail(
url: "https://i.ytimg.com/vi/9oM-cflYhGk/hq720.jpg?sqp=-oaymwEXCKAGEMIDIAQqCwjVARCqCBh4INgESFo&rs=AMzJL3n7oy_XobzQBkUVxEx08iSKNPIB0Q",
width: 800,
height: 450,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album: None,
view_count: Some(1100000),
track_type: video,
track_nr: None,
by_va: false,
),
],
albums: [
AlbumItem(
id: "MPREb_UYdRV1nnK2J",
name: "TP4L",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/eQCwnR4YLYnizEhQKeSDDE3rulSTo64cTfs8fxR1K-3iWUfC477SHV0ZOOoQa2vJuvr_9i_WDYI-wbo=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/eQCwnR4YLYnizEhQKeSDDE3rulSTo64cTfs8fxR1K-3iWUfC477SHV0ZOOoQa2vJuvr_9i_WDYI-wbo=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: album,
year: Some(2017),
by_va: false,
),
AlbumItem(
id: "MPREb_bi34SGT1xlc",
name: "Crackstreet Boys 3 (Bonus Tracks Version)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/MIuap-H2LxqP5O7Dry1LdShBFBbg5YTjIPjuXOHWyrKlmnOogsO5cTk6yXH97DhI3WjZg0z3y-jkQxaM=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/MIuap-H2LxqP5O7Dry1LdShBFBbg5YTjIPjuXOHWyrKlmnOogsO5cTk6yXH97DhI3WjZg0z3y-jkQxaM=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: album,
year: Some(2014),
by_va: false,
),
AlbumItem(
id: "MPREb_5gkbwhqC4AJ",
name: "Goldener Schluss (Live in Berlin)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/ilzR9UxpZFwHZnYOL0L504H6a0Y8k_zPk0AYOhBiBqIjq4TGnX-B1uKcNah56dmjPZoDvp9vGWyfgY8=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/ilzR9UxpZFwHZnYOL0L504H6a0Y8k_zPk0AYOhBiBqIjq4TGnX-B1uKcNah56dmjPZoDvp9vGWyfgY8=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: album,
year: Some(2024),
by_va: false,
),
AlbumItem(
id: "MPREb_HPXN9BBzFpV",
name: "TP4L",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/8Ftr5oIt1q6RbGkdiW7cefw-XGUplUXcjXXN7QntI1Nzh_6oR0euh7Lj2Ner3yXV--U-hVxJewkeq8A=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/8Ftr5oIt1q6RbGkdiW7cefw-XGUplUXcjXXN7QntI1Nzh_6oR0euh7Lj2Ner3yXV--U-hVxJewkeq8A=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: single,
year: Some(2017),
by_va: false,
),
AlbumItem(
id: "MPREb_hcK0fXETEf9",
name: "Endlich normale Leute",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/MW37LppS1rjDQIl5GaG0BxKeWk5fs4xphr6rU0z-KmJiHbvMbA3K5ZzrA9avinP2LjNrDGwB5tSLLsqe=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/MW37LppS1rjDQIl5GaG0BxKeWk5fs4xphr6rU0z-KmJiHbvMbA3K5ZzrA9avinP2LjNrDGwB5tSLLsqe=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: single,
year: Some(2017),
by_va: false,
),
AlbumItem(
id: "MPREb_R6EV2L1q0oc",
name: "Armut treibt Jugendliche in die Popmusik",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/kqKBF4JPQhKY1099AzRpJFGc2P7TFuFa2GeM7z8GGfTJ_DkfAzKTdV8gPtfVkyA5HQ0uZn3XG-VtMVj0=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/kqKBF4JPQhKY1099AzRpJFGc2P7TFuFa2GeM7z8GGfTJ_DkfAzKTdV8gPtfVkyA5HQ0uZn3XG-VtMVj0=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: single,
year: Some(2017),
by_va: false,
),
AlbumItem(
id: "MPREb_oHieBHkXn3A",
name: "Dicks Sucken",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/IVvdOUgbTECe2cVKrwhhCYmhHuipV6p0t5cLqMYWm3E_23zBEABxodGiSuX3H_AxRcEZk2-4V-k3RZw6=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/IVvdOUgbTECe2cVKrwhhCYmhHuipV6p0t5cLqMYWm3E_23zBEABxodGiSuX3H_AxRcEZk2-4V-k3RZw6=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: single,
year: Some(2014),
by_va: false,
),
AlbumItem(
id: "MPREb_8PsIyll0LFV",
name: "Bleib in der Schule",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/V_tvMqbuXgDgoAKuYZ-VFRru3cUb2WQvwO6vVBKY8pdFYAl1dkuIv_W2afjMUNN6uVNxet6r7mHISh0s=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/V_tvMqbuXgDgoAKuYZ-VFRru3cUb2WQvwO6vVBKY8pdFYAl1dkuIv_W2afjMUNN6uVNxet6r7mHISh0s=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: single,
year: Some(2014),
by_va: false,
),
AlbumItem(
id: "MPREb_POeT6m0bw9q",
name: "Crackstreet Boys II X Version",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/1fPBoTszY4e6Nf8egSwBTHWsQT8hotwhDnjArd1SHS8gZc5asCoo_3Z2WhN1IO2KMqyYly0xm7mMZ43d=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/1fPBoTszY4e6Nf8egSwBTHWsQT8hotwhDnjArd1SHS8gZc5asCoo_3Z2WhN1IO2KMqyYly0xm7mMZ43d=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: ep,
year: Some(2014),
by_va: false,
),
AlbumItem(
id: "MPREb_tdFqP579jQz",
name: "Bleib in der Schule (Live in Berlin)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/VNjspSA1Fm0yFJEKUCuetOziiET6sQG9QXQCiydknEny98Lc_MEmUp8e37FtCbDz1bQ6yvM6AqpsvL0=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/VNjspSA1Fm0yFJEKUCuetOziiET6sQG9QXQCiydknEny98Lc_MEmUp8e37FtCbDz1bQ6yvM6AqpsvL0=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: single,
year: Some(2024),
by_va: false,
),
AlbumItem(
id: "MPREb_kLvmX2AzYBL",
name: "Bleib in der Schule (Live at Wacken 2019)",
cover: [
Thumbnail(
url: "https://lh3.googleusercontent.com/dV3PCeAdRQgLOuSUdIfA4q8jVgNwSoTceeK085ZOCzEe6YBm5c9gNIvO8wGM_K2NKpip-8-PxJtWEPJo=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/dV3PCeAdRQgLOuSUdIfA4q8jVgNwSoTceeK085ZOCzEe6YBm5c9gNIvO8wGM_K2NKpip-8-PxJtWEPJo=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
artists: [
ArtistId(
id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
name: "Trailerpark",
),
],
artist_id: Some("UCOR4_bSVIXPsGa4BbCSt60Q"),
album_type: single,
year: Some(2014),
by_va: false,
),
],
playlists: [],
similar_artists: [
ArtistItem(
id: "UCVRREKn7V1Cb8qvf43dwZ6w",
name: "257ers",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/yPjiQ4ZVblOXbft1Yo2jd3uJXKJDuSWOP1MCAG6kTIwYqTWsOKRbZBnPhW4gjzvvVll7yVtjbu3e3Q=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/yPjiQ4ZVblOXbft1Yo2jd3uJXKJDuSWOP1MCAG6kTIwYqTWsOKRbZBnPhW4gjzvvVll7yVtjbu3e3Q=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(67300),
),
ArtistItem(
id: "UCuNyvmBfTzQZmWI2rsVX3QQ",
name: "Alligatoah",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/ffIVPiIldrcfp9UEoAbDid6fnAOajn_kgI4OisFoFhK28rk3HVdpYfe2h27T3d_hHfNR943PPSOhHw=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/ffIVPiIldrcfp9UEoAbDid6fnAOajn_kgI4OisFoFhK28rk3HVdpYfe2h27T3d_hHfNR943PPSOhHw=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(779000),
),
ArtistItem(
id: "UCO04sIqN7F4ff2-1ycVZSgQ",
name: "Sudden",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/TEdMt2cE-UCbnjm6AJtyasWv9-a3LFpdmh2X6w3iBwIMATHUtYIQ_F0cJ30vL5m6uJkqL3qFvNYLpYrN=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/TEdMt2cE-UCbnjm6AJtyasWv9-a3LFpdmh2X6w3iBwIMATHUtYIQ_F0cJ30vL5m6uJkqL3qFvNYLpYrN=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(3660),
),
ArtistItem(
id: "UC5k_3LEPSGchsGEGpqoF6dg",
name: "K.I.Z",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/PVaIRDAgRRyLMuFp7OTS7h3HEMoY9ejKxt7GLgfgi6aFt3bP-Edb1YU5t1IlGN0Z-qcrb86qspETNoI=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/PVaIRDAgRRyLMuFp7OTS7h3HEMoY9ejKxt7GLgfgi6aFt3bP-Edb1YU5t1IlGN0Z-qcrb86qspETNoI=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(522000),
),
ArtistItem(
id: "UCG8K_22LRSRwqhoJXBWGmbA",
name: "FiNCH",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/cofqKPsHr5dzuLexkKAYQF3vVMkKTT2FuZgIMXs6XIO3J8diK29qqfKQkqrga8NOCmwVl7x-w4z3mQ=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/cofqKPsHr5dzuLexkKAYQF3vVMkKTT2FuZgIMXs6XIO3J8diK29qqfKQkqrga8NOCmwVl7x-w4z3mQ=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(533000),
),
ArtistItem(
id: "UC5HSrFHr6lMzwAyGjlClm0A",
name: "Timi Hendrix",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/1yi83YgKDBSQ0rgsA2GuZRa0rBABPR2BH41DsuCfGMRmLdF9oR7vv7T6QGLbhNP8FfX6qVHUQci4YM8=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/1yi83YgKDBSQ0rgsA2GuZRa0rBABPR2BH41DsuCfGMRmLdF9oR7vv7T6QGLbhNP8FfX6qVHUQci4YM8=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(6410),
),
ArtistItem(
id: "UC9izv9vxcTVKA1IibcGTrNA",
name: "Pimpulsiv",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/QXuirXSQsdO1KUZCz-ZX-kRVSorZxIUC4YrxQD0IeSr1mY-42VwvAjf4TTownRVzm-02-U8kLM3VuETf9w=w226-h226-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/QXuirXSQsdO1KUZCz-ZX-kRVSorZxIUC4YrxQD0IeSr1mY-42VwvAjf4TTownRVzm-02-U8kLM3VuETf9w=w544-h544-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(985),
),
ArtistItem(
id: "UCgosMU69MpoCqhuS1JZj6Cw",
name: "Sido",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/HZpnexwxNS5FkIrpz6hdHZuNhBS-GKjs0C9NU8nDSTmHFlPaviqxV-dDLS_ubSEbpEvu0m2P2WT3kaQ=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/HZpnexwxNS5FkIrpz6hdHZuNhBS-GKjs0C9NU8nDSTmHFlPaviqxV-dDLS_ubSEbpEvu0m2P2WT3kaQ=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(1550000),
),
ArtistItem(
id: "UCAiLb3B6iCjxv7HhPf1S4ag",
name: "Marteria",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/Ms5gYOttabL03qfFYx7SNhRsx-K_Y7hxMN0WXgc7iquYAfLV5cgYZfTBn3nsi0_sN5BaqAaIr1z5iGc=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/Ms5gYOttabL03qfFYx7SNhRsx-K_Y7hxMN0WXgc7iquYAfLV5cgYZfTBn3nsi0_sN5BaqAaIr1z5iGc=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(422000),
),
ArtistItem(
id: "UCtoec88rzlhABHeo_4d-H8g",
name: "Dame",
avatar: [
Thumbnail(
url: "https://lh3.googleusercontent.com/lkbE9cB4qTxtRmzkjAaLEHrpIgeCOzeBXaL4BpBRq6wp4PlCoSIFej3ita3du8lqniIA67NRYfsVwuFj=w226-h226-p-l90-rj",
width: 226,
height: 226,
),
Thumbnail(
url: "https://lh3.googleusercontent.com/lkbE9cB4qTxtRmzkjAaLEHrpIgeCOzeBXaL4BpBRq6wp4PlCoSIFej3ita3du8lqniIA67NRYfsVwuFj=w544-h544-p-l90-rj",
width: 544,
height: 544,
),
],
subscriber_count: Some(37700),
),
],
tracks_playlist_id: Some("OLAK5uy_miHesZCUQY5S9EwqfoNP2tZR9nZ0NBAeU"),
videos_playlist_id: Some("OLAK5uy_mqbgE6T9uvusUWrAxJGiImf4_P4dM7IvQ"),
radio_id: Some("RDEM7AbogW0cCnElSU0WYm1GqA"),
)

File diff suppressed because it is too large Load diff

View file

@ -4,580 +4,746 @@
"ep": "EP",
"single": "Enkelsnit",
"audiobook": "Oudioboek",
"show": "Drama"
"show": "Drama",
"album_row": "Albums",
"single_row": "Enkelsnitte"
},
"am": {
"album": "አልበም",
"ep": "የተራዘመ አልበም",
"single": "ነጠላ",
"audiobook": "ኦዲዮ መጽሐፍ",
"show": "ትዕይንት"
"show": "ትዕይንት",
"album_row": "አልበሞች",
"single_row": "ነጠላዎች"
},
"ar": {
"album": "ألبوم",
"ep": "ألبوم قصير",
"single": "أغنية منفردة",
"audiobook": "الكتب المسموعة",
"show": "عرض"
"show": "عرض",
"album_row": "ألبومات",
"single_row": "أغانٍ منفردة"
},
"as": {
"album": "এলবাম",
"ep": "EP",
"single": "একক",
"audiobook": "অডিঅ’বুক",
"show": "শ্ব’"
"show": "শ্ব’",
"album_row": "এলবামসমূহ",
"single_row": "এককসমূহ"
},
"az": {
"album": "Albom",
"ep": "EP",
"single": "Tək",
"audiobook": "Audio kitab",
"show": "Şou"
"show": "Şou",
"album_row": "Albomlar",
"single_row": "Sinql"
},
"be": {
"album": "Альбом",
"ep": "Міні-альбом",
"single": "Сінгл",
"audiobook": "Аўдыякніга",
"show": "Шоу"
"show": "Шоу",
"album_row": "Альбомы",
"single_row": "Сінглы"
},
"bg": {
"album": "Албум",
"ep": "Миниалбум",
"single": "Сингъл",
"audiobook": "Аудиокнига",
"show": "Предаване"
"show": "Предаване",
"album_row": "Албуми",
"single_row": "Сингли"
},
"bn": {
"album": "অ্যালবাম",
"ep": "ইপি",
"single": "সিঙ্গেল",
"audiobook": "অডিওবুক",
"show": "শো"
"show": "শো",
"album_row": "অ্যালবাম",
"single_row": "সিঙ্গেলস"
},
"bs": {
"album": "Album",
"ep": "EP",
"single": "Singl",
"audiobook": "Audio knjiga",
"show": "Serija"
"show": "Serija",
"album_row": "Albumi",
"single_row": "Singlovi"
},
"ca": {
"album": "Àlbum",
"ep": "EP",
"single": "Single",
"audiobook": "Audiollibre",
"show": "Programa"
"show": "Programa",
"album_row": "Àlbums",
"single_row": "Singles"
},
"cs": {
"album": "Album",
"ep": "EP",
"single": "Singl",
"audiobook": "Audiokniha",
"show": "Zobrazit"
"show": "Zobrazit",
"album_row": "Alba",
"single_row": "Singly"
},
"da": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Lydbog",
"show": "Lyddrama"
"show": "Lyddrama",
"album_row": "Album",
"single_row": "Singler"
},
"de": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Hörbuch",
"show": "Hörspiel"
"show": "Hörspiel",
"album_row": "Alben",
"single_row": "Singles"
},
"el": {
"album": "Άλμπουμ",
"ep": "EP",
"single": "Single",
"audiobook": "Ηχητικό βιβλίο",
"show": "Εκπομπή"
"show": "Εκπομπή",
"album_row": "Άλμπουμ",
"single_row": "Σινγκλ"
},
"en": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Audiobook",
"show": "Show"
"show": "Show",
"album_row": "Albums",
"single_row": "Singles"
},
"en-GB": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Audiobook",
"show": "Show"
"show": "Show",
"album_row": "Albums",
"single_row": "Singles"
},
"en-IN": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Audiobook",
"show": "Show"
"show": "Show",
"album_row": "Albums",
"single_row": "Singles"
},
"es": {
"album": "Álbum",
"ep": "EP",
"single": "Single",
"audiobook": "Audiolibro",
"show": "Audiodrama"
"show": "Audiodrama",
"album_row": "Álbumes",
"single_row": "Sencillos"
},
"es-419": {
"album": "Álbum",
"ep": "EP",
"single": "Sencillo",
"audiobook": "Audiolibro",
"show": "Programa"
"show": "Programa",
"album_row": "Álbumes",
"single_row": "Sencillos"
},
"es-US": {
"album": "Álbum",
"ep": "EP",
"single": "Sencillo",
"audiobook": "Audiolibro",
"show": "Programa"
"show": "Programa",
"album_row": "Álbumes",
"single_row": "Sencillos"
},
"et": {
"album": "Album",
"ep": "EP",
"single": "Singel",
"audiobook": "Audioraamat",
"show": "Sari"
"show": "Sari",
"album_row": "Albumid",
"single_row": "Singlid"
},
"eu": {
"album": "Albuma",
"ep": "EP",
"single": "Singlea",
"audiobook": "Audio-liburua",
"show": "Saioa"
"show": "Saioa",
"album_row": "Albumak",
"single_row": "Singleak"
},
"fa": {
"album": "آلبوم",
"ep": "پخش فوق‌العاده",
"single": "تک آهنگ",
"audiobook": "کتاب صوتی",
"show": "نمایش"
"show": "نمایش",
"album_row": "آلبوم‌ها",
"single_row": "تک‌آهنگ‌ها"
},
"fi": {
"album": "Albumi",
"ep": "EP",
"single": "Single",
"audiobook": "Äänikirja",
"show": "Näytä"
"show": "Näytä",
"album_row": "Albumit",
"single_row": "Singlet"
},
"fil": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Audiobook",
"show": "Palabas"
"show": "Palabas",
"album_row": "Mga Album",
"single_row": "Mga Single"
},
"fr": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Livre audio",
"show": "Émission"
"show": "Émission",
"album_row": "Albums",
"single_row": "Singles"
},
"fr-CA": {
"album": "Album",
"ep": "Microalbum",
"single": "Simple",
"audiobook": "Livre audio",
"show": "Émission"
"show": "Émission",
"album_row": "Albums",
"single_row": "Simples"
},
"gl": {
"album": "Álbum",
"ep": "EP",
"single": "Single",
"audiobook": "Audiolibro",
"show": "Programa"
"show": "Programa",
"album_row": "Álbums",
"single_row": "Singles"
},
"gu": {
"album": "આલ્બમ",
"ep": "EP",
"single": "સિંગલ",
"audiobook": "ઑડિયોબુક",
"show": "શો"
"show": "શો",
"album_row": "આલ્બમ",
"single_row": "સિંગલ"
},
"hi": {
"album": "एल्‍बम",
"ep": "ईपी",
"single": "सिंगल",
"audiobook": "ऑडियो बुक",
"show": "शो"
"show": "शो",
"album_row": "एल्बम",
"single_row": "सिंगल"
},
"hr": {
"album": "Album",
"ep": "EP",
"single": "Singl",
"audiobook": "Audioknjiga",
"show": "Serija"
"show": "Serija",
"album_row": "Albumi",
"single_row": "Singlovi"
},
"hu": {
"album": "Album",
"ep": "EP",
"single": "Kislemez",
"audiobook": "Hangoskönyv",
"show": "Műsor"
"show": "Műsor",
"album_row": "Albumok",
"single_row": "Kislemezek"
},
"hy": {
"album": "Ալբոմ",
"ep": "EP",
"single": "Սինգլ",
"audiobook": "Աուդիոգիրք",
"show": "Աուդիոդրամա"
"show": "Աուդիոդրամա",
"album_row": "Ալբոմներ",
"single_row": "Սինգլներ"
},
"id": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Buku audio",
"show": "Acara"
"show": "Acara",
"album_row": "Album",
"single_row": "Single"
},
"is": {
"album": "Plata",
"ep": "EP",
"single": "Smáskífa",
"audiobook": "Hljóðbók",
"show": "Þáttur"
"show": "Þáttur",
"album_row": "Plötur",
"single_row": "Smáskífur"
},
"it": {
"album": "Album",
"ep": "EP",
"single": "Singolo",
"audiobook": "Audiolibro",
"show": "Programma"
"show": "Programma",
"album_row": "Album",
"single_row": "Singoli"
},
"iw": {
"album": "אלבום",
"ep": "מיני-אלבום",
"single": "סינגל",
"audiobook": "ספר אודיו",
"show": "תסכית"
"show": "תסכית",
"album_row": "אלבומים",
"single_row": "סינגלים"
},
"ja": {
"album": "アルバム",
"ep": "EP",
"single": "シングル",
"audiobook": "オーディオブック",
"show": "表示"
"show": "表示",
"album_row": "アルバム",
"single_row": "シングル"
},
"ka": {
"album": "ალბომი",
"ep": "მინი-ალბომი",
"single": "სინგლი",
"audiobook": "აუდიოწიგნი",
"show": "ჩვენება"
"show": "ჩვენება",
"album_row": "ალბომები",
"single_row": "სინგლები"
},
"kk": {
"album": "Альбом",
"ep": "EP",
"single": "Сингл",
"audiobook": "Аудиокітап",
"show": "Шоу"
"show": "Шоу",
"album_row": "Альбомдар",
"single_row": "Синглдер"
},
"km": {
"album": "អាល់ប៊ុម",
"ep": "EP",
"single": "ចម្រៀងទោល",
"audiobook": "សៀវភៅ​ជា​សំឡេង",
"show": "កម្មវិធីទូរទស្សន៍"
"show": "កម្មវិធីទូរទស្សន៍",
"album_row": "អាល់ប៊ុម",
"single_row": "ចម្រៀងទោល"
},
"kn": {
"album": "ಆಲ್ಬಮ್",
"ep": "EP",
"single": "ಒಂದೇ",
"audiobook": "ಆಡಿಯೋಬುಕ್",
"show": "ಶೋ"
"show": "ಶೋ",
"album_row": "ಆಲ್ಬಮ್‌ಗಳು",
"single_row": "ಸಿಂಗಲ್ಸ್"
},
"ko": {
"album": "앨범",
"ep": "EP",
"single": "싱글",
"audiobook": "오디오북",
"show": "표시"
"show": "표시",
"album_row": "앨범",
"single_row": "싱글"
},
"ky": {
"album": "Альбом",
"ep": "Чакан альбом",
"single": "Сингл",
"audiobook": "Аудиокитеп",
"show": "Шоу"
"show": "Шоу",
"album_row": "Альбомдор",
"single_row": "Синглдар"
},
"lo": {
"album": "ອະລະບໍ້າ",
"ep": "EP",
"single": "ຊິງເກິນ",
"audiobook": "ປຶ້ມສຽງ",
"show": "ສະແດງ"
"show": "ສະແດງ",
"album_row": "ອະລະບ້ຳ",
"single_row": "ຜົນງານເພງ"
},
"lt": {
"album": "Albumas",
"ep": "Mini albumas",
"single": "Singlas",
"audiobook": "Garsinė knyga",
"show": "Serialas"
"show": "Serialas",
"album_row": "Albumai",
"single_row": "Singlai"
},
"lv": {
"album": "Albums",
"ep": "EP ieraksts",
"single": "Singls",
"audiobook": "Audiogrāmata",
"show": "Pārraide"
"show": "Pārraide",
"album_row": "Albumi",
"single_row": "Singli"
},
"mk": {
"album": "Албум",
"ep": "EP",
"single": "Сингл",
"audiobook": "Аудиокнига",
"show": "Серија"
"show": "Серија",
"album_row": "Албуми",
"single_row": "Синглови"
},
"ml": {
"album": "ആല്‍‌ബം",
"ep": "EP",
"single": "സിംഗിൾ",
"audiobook": "ഓഡിയോ ബുക്ക്",
"show": "ഷോ"
"show": "ഷോ",
"album_row": "ആല്‍ബങ്ങള്‍",
"single_row": "സിംഗിൾസ്"
},
"mn": {
"album": "Цомог",
"ep": "EP",
"single": "Сингл",
"audiobook": "Аудио ном",
"show": "Жүжиг"
"show": "Жүжиг",
"album_row": "Цомог",
"single_row": "Синглүүд"
},
"mr": {
"album": "अल्बम",
"ep": "भाग",
"single": "सिंगल",
"audiobook": "ऑडिओबुक",
"show": "शो"
"show": "शो",
"album_row": "अल्बम",
"single_row": "सिंगल"
},
"ms": {
"album": "Album",
"ep": "EP",
"single": "Rekod single",
"audiobook": "Buku audio",
"show": "Rancangan"
"show": "Rancangan",
"album_row": "Album",
"single_row": "Rekod single"
},
"my": {
"album": "အယ်လ်ဘမ်",
"ep": "EP",
"single": "တစ်ကိုယ်တော်",
"audiobook": "အော်ဒီယိုစာအုပ်",
"show": "ရှိုး"
"show": "ရှိုး",
"album_row": "အယ်လ်ဘမ်များ",
"single_row": "တစ်ပုဒ်ချင်းများ"
},
"ne": {
"album": "एल्बम",
"ep": "EP",
"single": "एकल एल्बम",
"audiobook": "अडियोबुक",
"show": "टिभी सो"
"show": "टिभी सो",
"album_row": "एल्बमहरू",
"single_row": "एकल एल्बमहरू"
},
"nl": {
"album": "Album",
"ep": "Ep",
"single": "Single",
"audiobook": "Audioboek",
"show": "Aflevering"
"show": "Aflevering",
"album_row": "Albums",
"single_row": "Singles"
},
"no": {
"album": "Album",
"ep": "EP",
"single": "Singel",
"audiobook": "Lydbok",
"show": "Hørespill"
"show": "Hørespill",
"album_row": "Album",
"single_row": "Singler"
},
"or": {
"album": "ଆଲବମ୍",
"ep": "EP",
"single": "ସିଙ୍ଗଲ୍",
"audiobook": "ଅଡିଓବୁକ୍",
"show": "ଶୋ"
"show": "ଶୋ",
"album_row": "ଆଲ୍‍ବମ୍",
"single_row": "ସିଙ୍ଗଲ୍"
},
"pa": {
"album": "ਐਲਬਮ",
"ep": "EP",
"single": "ਸਿੰਗਲ",
"audiobook": "ਆਡੀਓ-ਕਿਤਾਬ",
"show": "ਸ਼ੋਅ"
"show": "ਸ਼ੋਅ",
"album_row": "ਐਲਬਮਾਂ",
"single_row": "ਸਿੰਗਲ"
},
"pl": {
"album": "Album",
"ep": "EP",
"single": "Singiel",
"audiobook": "Audiobook",
"show": "Słuchowisko"
"show": "Słuchowisko",
"album_row": "Albumy",
"single_row": "Single"
},
"pt": {
"album": "Álbum",
"ep": "EP",
"single": "Single",
"audiobook": "Audiolivro",
"show": "Programa"
"show": "Programa",
"album_row": "Álbuns",
"single_row": "Singles"
},
"pt-PT": {
"album": "Álbum",
"ep": "EP",
"single": "Single",
"audiobook": "Audiolivro",
"show": "Programa"
"show": "Programa",
"album_row": "Álbuns",
"single_row": "Singles"
},
"ro": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Carte audio",
"show": "Emisiune"
"show": "Emisiune",
"album_row": "Albume",
"single_row": "Single-uri"
},
"ru": {
"album": "Альбом",
"ep": "EP",
"single": "Сингл",
"audiobook": "Аудиокнига",
"show": "Аудиошоу"
"show": "Аудиошоу",
"album_row": "Альбомы",
"single_row": "Синглы"
},
"si": {
"album": "ඇල්බමය",
"ep": "දීවා",
"single": "තනි",
"audiobook": "ශ්‍රව්‍යපොත",
"show": "සංදර්ශනය"
"show": "සංදර්ශනය",
"album_row": "ඇල්බම",
"single_row": "ඒකල"
},
"sk": {
"album": "Album",
"ep": "EP",
"single": "Singel",
"audiobook": "Audiokniha",
"show": "Relácia"
"show": "Relácia",
"album_row": "Albumy",
"single_row": "Single"
},
"sl": {
"album": "Album",
"ep": "EP",
"single": "Singel",
"audiobook": "Zvočna knjiga",
"show": "Oddaja"
"show": "Oddaja",
"album_row": "Albumi",
"single_row": "Singli"
},
"sq": {
"album": "Album",
"ep": "EP",
"single": "Single",
"audiobook": "Libër me audio",
"show": "Shfaq"
"show": "Shfaq",
"album_row": "Albume",
"single_row": "Individuale"
},
"sr": {
"album": "Албум",
"ep": "EP",
"single": "Сингл",
"audiobook": "Аудио-књига",
"show": "Серија"
"show": "Серија",
"album_row": "Албуми",
"single_row": "Синглови"
},
"sr-Latn": {
"album": "Album",
"ep": "EP",
"single": "Singl",
"audiobook": "Audio-knjiga",
"show": "Serija"
"show": "Serija",
"album_row": "Albumi",
"single_row": "Singlovi"
},
"sv": {
"album": "Album",
"ep": "EP",
"single": "Singel",
"audiobook": "Ljudbok",
"show": "Ljuddrama"
"show": "Ljuddrama",
"album_row": "Album",
"single_row": "Singlar"
},
"sw": {
"album": "Albamu",
"ep": "EP",
"single": "Singo",
"audiobook": "Kitabu cha kusikiliza",
"show": "Kipindi"
"show": "Kipindi",
"album_row": "Albamu",
"single_row": "Singo"
},
"ta": {
"album": "ஆல்பம்",
"ep": "EP",
"single": "சிங்கிள்",
"audiobook": "ஆடியோ புத்தகம்",
"show": "ஆடியோ ஷோ"
"show": "ஆடியோ ஷோ",
"album_row": "ஆல்பங்கள்",
"single_row": "சிங்கிள்ஸ்"
},
"te": {
"album": "ఆల్బమ్",
"ep": "EP",
"single": "సింగిల్",
"audiobook": "ఆడియోబుక్",
"show": "చూపించు"
"show": "చూపించు",
"album_row": "ఆల్బమ్‌లు",
"single_row": "సింగిల్స్"
},
"th": {
"album": "อัลบั้ม",
"ep": "EP",
"single": "ซิงเกิล",
"audiobook": "หนังสือเสียง",
"show": "รายการ"
"show": "รายการ",
"album_row": "อัลบั้ม",
"single_row": "ซิงเกิล"
},
"tr": {
"album": "Albüm",
"ep": "EP",
"single": "Single",
"audiobook": "Sesli kitap",
"show": "Program"
"show": "Program",
"album_row": "Albümler",
"single_row": "Single'lar"
},
"uk": {
"album": "Альбом",
"ep": "Мініальбом",
"single": "Сингл",
"audiobook": "Аудіокнига",
"show": "Аудіодрама"
"show": "Аудіодрама",
"album_row": "Альбоми",
"single_row": "Сингли"
},
"ur": {
"album": "البم",
"ep": "EP",
"single": "واحد",
"audiobook": "آڈیو بک",
"show": "شو"
"show": "شو",
"album_row": "البمز",
"single_row": "سنگلز"
},
"uz": {
"album": "Albom",
"ep": "EP",
"single": "Singl",
"audiobook": "Audiokitob",
"show": "Shou"
"show": "Shou",
"album_row": "Albomlar",
"single_row": "Singllar"
},
"vi": {
"album": "Đĩa nhạc",
"ep": "Đĩa nhạc mở rộng (EP)",
"single": "Đĩa đơn",
"audiobook": "Sách nói",
"show": "Chương trình"
"show": "Chương trình",
"album_row": "Đĩa nhạc",
"single_row": "Đĩa đơn"
},
"zh-CN": {
"album": "专辑",
"ep": "迷你专辑",
"single": "单曲",
"audiobook": "有声读物",
"show": "广播剧"
"show": "广播剧",
"album_row": "专辑",
"single_row": "单曲"
},
"zh-HK": {
"album": "專輯",
"ep": "EP",
"single": "單曲",
"audiobook": "有聲書",
"show": "節目"
"show": "節目",
"album_row": "專輯",
"single_row": "單曲"
},
"zh-TW": {
"album": "專輯",
"ep": "EP",
"single": "單曲",
"audiobook": "有聲書",
"show": "節目"
"show": "節目",
"album_row": "專輯",
"single_row": "單曲"
},
"zu": {
"album": "I-albhamu",
"ep": "I-EP",
"single": "I-Single",
"audiobook": "I-audiobook",
"show": "Bonisa"
"show": "Bonisa",
"album_row": "Ama-albhamu",
"single_row": "Ama-single"
}
}

View file

@ -71,10 +71,12 @@
},
"album_types": {
"album": "album",
"albums": "album",
"oudioboek": "audiobook",
"ep": "ep",
"drama": "show",
"enkelsnit": "single"
"enkelsnit": "single",
"enkelsnitte": "single"
},
"chan_prefix": "deur",
"chan_suffix": ""
@ -152,10 +154,12 @@
},
"album_types": {
"አልበም": "album",
"አልበሞች": "album",
"ኦዲዮ መጽሐፍ": "audiobook",
"የተራዘመ አልበም": "ep",
"ትዕይንት": "show",
"ነጠላ": "single"
"ነጠላ": "single",
"ነጠላዎች": "single"
},
"chan_prefix": "በ",
"chan_suffix": ""
@ -240,9 +244,11 @@
},
"album_types": {
"ألبوم": "album",
"ألبومات": "album",
"الكتب المسموعة": "audiobook",
"ألبوم قصير": "ep",
"عرض": "show",
"أغانٍ منفردة": "single",
"أغنية منفردة": "single"
},
"chan_prefix": "بواسطة",
@ -310,10 +316,12 @@
},
"album_types": {
"এলবাম": "album",
"এলবামসমূহ": "album",
"অডিঅ’বুক": "audiobook",
"ep": "ep",
"শ্ব’": "show",
"একক": "single"
"একক": "single",
"এককসমূহ": "single"
},
"chan_prefix": "",
"chan_suffix": "ৰ দ্বাৰা"
@ -381,9 +389,11 @@
},
"album_types": {
"albom": "album",
"albomlar": "album",
"audio kitab": "audiobook",
"ep": "ep",
"şou": "show",
"sinql": "single",
"tək": "single"
},
"chan_prefix": "by",
@ -479,10 +489,12 @@
},
"album_types": {
"альбом": "album",
"альбомы": "album",
"аўдыякніга": "audiobook",
"міні-альбом": "ep",
"шоу": "show",
"сінгл": "single"
"сінгл": "single",
"сінглы": "single"
},
"chan_prefix": "ад",
"chan_suffix": ""
@ -551,9 +563,11 @@
},
"album_types": {
"албум": "album",
"албуми": "album",
"аудиокнига": "audiobook",
"миниалбум": "ep",
"предаване": "show",
"сингли": "single",
"сингъл": "single"
},
"chan_prefix": "от",
@ -627,7 +641,8 @@
"অডিওবুক": "audiobook",
"ইপি": "ep",
"শো": "show",
"সিঙ্গেল": "single"
"সিঙ্গেল": "single",
"সিঙ্গেলস": "single"
},
"chan_prefix": ",",
"chan_suffix": "দ্বারা"
@ -715,10 +730,12 @@
},
"album_types": {
"album": "album",
"albumi": "album",
"audio knjiga": "audiobook",
"ep": "ep",
"serija": "show",
"singl": "single"
"singl": "single",
"singlovi": "single"
},
"chan_prefix": "od",
"chan_suffix": ""
@ -793,10 +810,12 @@
},
"album_types": {
"àlbum": "album",
"àlbums": "album",
"audiollibre": "audiobook",
"ep": "ep",
"programa": "show",
"single": "single"
"single": "single",
"singles": "single"
},
"chan_prefix": "de:",
"chan_suffix": ""
@ -875,11 +894,13 @@
},
"number_nd_tokens": {},
"album_types": {
"alba": "album",
"album": "album",
"audiokniha": "audiobook",
"ep": "ep",
"zobrazit": "show",
"singl": "single"
"singl": "single",
"singly": "single"
},
"chan_prefix": "autor:",
"chan_suffix": ""
@ -958,7 +979,8 @@
"lydbog": "audiobook",
"ep": "ep",
"lyddrama": "show",
"single": "single"
"single": "single",
"singler": "single"
},
"chan_prefix": "af",
"chan_suffix": ""
@ -1022,11 +1044,13 @@
"keine": 0
},
"album_types": {
"alben": "album",
"album": "album",
"hörbuch": "audiobook",
"ep": "ep",
"hörspiel": "show",
"single": "single"
"single": "single",
"singles": "single"
},
"chan_prefix": "von",
"chan_suffix": ""
@ -1111,7 +1135,8 @@
"ηχητικό βιβλίο": "audiobook",
"ep": "ep",
"εκπομπή": "show",
"single": "single"
"single": "single",
"σινγκλ": "single"
},
"chan_prefix": "από το χρήστη",
"chan_suffix": ""
@ -1204,10 +1229,12 @@
},
"album_types": {
"album": "album",
"albums": "album",
"audiobook": "audiobook",
"ep": "ep",
"show": "show",
"single": "single"
"single": "single",
"singles": "single"
},
"chan_prefix": "by",
"chan_suffix": ""
@ -1285,9 +1312,11 @@
"number_nd_tokens": {},
"album_types": {
"álbum": "album",
"álbumes": "album",
"audiolibro": "audiobook",
"ep": "ep",
"audiodrama": "show",
"sencillos": "single",
"single": "single"
},
"chan_prefix": "de",
@ -1369,10 +1398,12 @@
},
"album_types": {
"álbum": "album",
"álbumes": "album",
"audiolibro": "audiobook",
"ep": "ep",
"programa": "show",
"sencillo": "single"
"sencillo": "single",
"sencillos": "single"
},
"chan_prefix": "de",
"chan_suffix": ""
@ -1449,10 +1480,12 @@
},
"album_types": {
"album": "album",
"albumid": "album",
"audioraamat": "audiobook",
"ep": "ep",
"sari": "show",
"singel": "single"
"singel": "single",
"singlid": "single"
},
"chan_prefix": "kanalilt",
"chan_suffix": ""
@ -1521,10 +1554,12 @@
},
"album_types": {
"albuma": "album",
"albumak": "album",
"audio-liburua": "audiobook",
"ep": "ep",
"saioa": "show",
"singlea": "single"
"singlea": "single",
"singleak": "single"
},
"chan_prefix": "egilea:",
"chan_suffix": ""
@ -1585,10 +1620,12 @@
},
"album_types": {
"آلبوم": "album",
"آلبوم‌ها": "album",
"کتاب صوتی": "audiobook",
"پخش فوق‌العاده": "ep",
"نمایش": "show",
"تک آهنگ": "single"
"تک آهنگ": "single",
"تک‌آهنگ‌ها": "single"
},
"chan_prefix": "توسط",
"chan_suffix": ""
@ -1659,10 +1696,12 @@
},
"album_types": {
"albumi": "album",
"albumit": "album",
"äänikirja": "audiobook",
"ep": "ep",
"näytä": "show",
"single": "single"
"single": "single",
"singlet": "single"
},
"chan_prefix": "tekijä:",
"chan_suffix": ""
@ -1732,9 +1771,11 @@
},
"album_types": {
"album": "album",
"mga album": "album",
"audiobook": "audiobook",
"ep": "ep",
"palabas": "show",
"mga single": "single",
"single": "single"
},
"chan_prefix": "ni/ng",
@ -1816,12 +1857,15 @@
},
"album_types": {
"album": "album",
"albums": "album",
"livre audio": "audiobook",
"ep": "ep",
"microalbum": "ep",
"émission": "show",
"simple": "single",
"single": "single"
"simples": "single",
"single": "single",
"singles": "single"
},
"chan_prefix": "de",
"chan_suffix": ""
@ -1896,10 +1940,12 @@
},
"album_types": {
"álbum": "album",
"álbums": "album",
"audiolibro": "audiobook",
"ep": "ep",
"programa": "show",
"single": "single"
"single": "single",
"singles": "single"
},
"chan_prefix": "de",
"chan_suffix": ""
@ -2033,6 +2079,7 @@
"नहीं": 0
},
"album_types": {
"एल्बम": "album",
"एल्‍बम": "album",
"ऑडियो बुक": "audiobook",
"ईपी": "ep",
@ -2125,10 +2172,12 @@
},
"album_types": {
"album": "album",
"albumi": "album",
"audioknjiga": "audiobook",
"ep": "ep",
"serija": "show",
"singl": "single"
"singl": "single",
"singlovi": "single"
},
"chan_prefix": "omogućio kanal",
"chan_suffix": ""
@ -2208,10 +2257,12 @@
},
"album_types": {
"album": "album",
"albumok": "album",
"hangoskönyv": "audiobook",
"ep": "ep",
"műsor": "show",
"kislemez": "single"
"kislemez": "single",
"kislemezek": "single"
},
"chan_prefix": "",
"chan_suffix": "csatornától"
@ -2285,10 +2336,12 @@
},
"album_types": {
"ալբոմ": "album",
"ալբոմներ": "album",
"աուդիոգիրք": "audiobook",
"ep": "ep",
"աուդիոդրամա": "show",
"սինգլ": "single"
"սինգլ": "single",
"սինգլներ": "single"
},
"chan_prefix": "հեղինակ՝",
"chan_suffix": ""
@ -2448,10 +2501,12 @@
},
"album_types": {
"plata": "album",
"plötur": "album",
"hljóðbók": "audiobook",
"ep": "ep",
"þáttur": "show",
"smáskífa": "single"
"smáskífa": "single",
"smáskífur": "single"
},
"chan_prefix": "eftir",
"chan_suffix": ""
@ -2537,6 +2592,7 @@
"audiolibro": "audiobook",
"ep": "ep",
"programma": "show",
"singoli": "single",
"singolo": "single"
},
"chan_prefix": "di",
@ -2624,10 +2680,12 @@
},
"album_types": {
"אלבום": "album",
"אלבומים": "album",
"ספר אודיו": "audiobook",
"מיני-אלבום": "ep",
"תסכית": "show",
"סינגל": "single"
"סינגל": "single",
"סינגלים": "single"
},
"chan_prefix": "מאת",
"chan_suffix": ""
@ -2743,10 +2801,12 @@
"არ": 0
},
"album_types": {
"ალბომები": "album",
"ალბომი": "album",
"აუდიოწიგნი": "audiobook",
"მინი-ალბომი": "ep",
"ჩვენება": "show",
"სინგლები": "single",
"სინგლი": "single"
},
"chan_prefix": "",
@ -2822,10 +2882,12 @@
},
"album_types": {
"альбом": "album",
"альбомдар": "album",
"аудиокітап": "audiobook",
"ep": "ep",
"шоу": "show",
"сингл": "single"
"сингл": "single",
"синглдер": "single"
},
"chan_prefix": "қосқан",
"chan_suffix": ""
@ -2963,10 +3025,12 @@
},
"album_types": {
"ಆಲ್ಬಮ್": "album",
"ಆಲ್ಬಮ್‌ಗಳು": "album",
"ಆಡಿಯೋಬುಕ್": "audiobook",
"ep": "ep",
"ಶೋ": "show",
"ಒಂದೇ": "single"
"ಒಂದೇ": "single",
"ಸಿಂಗಲ್ಸ್": "single"
},
"chan_prefix": "",
"chan_suffix": "ಚಾನಲ್‌ನಿಂದ"
@ -3083,10 +3147,12 @@
},
"album_types": {
"альбом": "album",
"альбомдор": "album",
"аудиокитеп": "audiobook",
"чакан альбом": "ep",
"шоу": "show",
"сингл": "single"
"сингл": "single",
"синглдар": "single"
},
"chan_prefix": "",
"chan_suffix": "каналы аркылуу"
@ -3164,10 +3230,12 @@
},
"album_types": {
"ອະລະບໍ້າ": "album",
"ອະລະບ້ຳ": "album",
"ປຶ້ມສຽງ": "audiobook",
"ep": "ep",
"ສະແດງ": "show",
"ຊິງເກິນ": "single"
"ຊິງເກິນ": "single",
"ຜົນງານເພງ": "single"
},
"chan_prefix": "ໂດຍ",
"chan_suffix": ""
@ -3250,10 +3318,12 @@
"nėra": 0
},
"album_types": {
"albumai": "album",
"albumas": "album",
"garsinė knyga": "audiobook",
"mini albumas": "ep",
"serialas": "show",
"singlai": "single",
"singlas": "single"
},
"chan_prefix": "pridėjo",
@ -3337,10 +3407,12 @@
"nav": 0
},
"album_types": {
"albumi": "album",
"albums": "album",
"audiogrāmata": "audiobook",
"ep ieraksts": "ep",
"pārraide": "show",
"singli": "single",
"singls": "single"
},
"chan_prefix": "autors:",
@ -3408,10 +3480,12 @@
},
"album_types": {
"албум": "album",
"албуми": "album",
"аудиокнига": "audiobook",
"ep": "ep",
"серија": "show",
"сингл": "single"
"сингл": "single",
"синглови": "single"
},
"chan_prefix": "од",
"chan_suffix": ""
@ -3478,10 +3552,12 @@
},
"album_types": {
"ആല്‍‌ബം": "album",
"ആല്‍ബങ്ങള്‍": "album",
"ഓഡിയോ ബുക്ക്": "audiobook",
"ep": "ep",
"ഷോ": "show",
"സിംഗിൾ": "single"
"സിംഗിൾ": "single",
"സിംഗിൾസ്": "single"
},
"chan_prefix": "",
"chan_suffix": "മുഖേന"
@ -3544,7 +3620,8 @@
"аудио ном": "audiobook",
"ep": "ep",
"жүжиг": "show",
"сингл": "single"
"сингл": "single",
"синглүүд": "single"
},
"chan_prefix": "сувгийн нэр:",
"chan_suffix": ""
@ -3769,10 +3846,12 @@
},
"album_types": {
"အယ်လ်ဘမ်": "album",
"အယ်လ်ဘမ်များ": "album",
"အော်ဒီယိုစာအုပ်": "audiobook",
"ep": "ep",
"ရှိုး": "show",
"တစ်ကိုယ်တော်": "single"
"တစ်ကိုယ်တော်": "single",
"တစ်ပုဒ်ချင်းများ": "single"
},
"chan_prefix": "",
"chan_suffix": "မှ"
@ -3830,10 +3909,12 @@
},
"album_types": {
"एल्बम": "album",
"एल्बमहरू": "album",
"अडियोबुक": "audiobook",
"ep": "ep",
"टिभी सो": "show",
"एकल एल्बम": "single"
"एकल एल्बम": "single",
"एकल एल्बमहरू": "single"
},
"chan_prefix": "",
"chan_suffix": "द्वारा"
@ -3907,10 +3988,12 @@
},
"album_types": {
"album": "album",
"albums": "album",
"audioboek": "audiobook",
"ep": "ep",
"aflevering": "show",
"single": "single"
"single": "single",
"singles": "single"
},
"chan_prefix": "door",
"chan_suffix": ""
@ -3993,7 +4076,8 @@
"lydbok": "audiobook",
"ep": "ep",
"hørespill": "show",
"singel": "single"
"singel": "single",
"singler": "single"
},
"chan_prefix": "av",
"chan_suffix": ""
@ -4062,6 +4146,7 @@
},
"album_types": {
"ଆଲବମ୍": "album",
"ଆଲ୍‍ବମ୍": "album",
"ଅଡିଓବୁକ୍": "audiobook",
"ep": "ep",
"ଶୋ": "show",
@ -4134,6 +4219,7 @@
},
"album_types": {
"ਐਲਬਮ": "album",
"ਐਲਬਮਾਂ": "album",
"ਆਡੀਓ-ਕਿਤਾਬ": "audiobook",
"ep": "ep",
"ਸ਼ੋਅ": "show",
@ -4230,10 +4316,12 @@
},
"album_types": {
"album": "album",
"albumy": "album",
"audiobook": "audiobook",
"ep": "ep",
"słuchowisko": "show",
"singiel": "single"
"singiel": "single",
"single": "single"
},
"chan_prefix": "autor:",
"chan_suffix": ""
@ -4313,10 +4401,12 @@
},
"album_types": {
"álbum": "album",
"álbuns": "album",
"audiolivro": "audiobook",
"ep": "ep",
"programa": "show",
"single": "single"
"single": "single",
"singles": "single"
},
"chan_prefix": "por",
"chan_suffix": ""
@ -4381,10 +4471,12 @@
"number_nd_tokens": {},
"album_types": {
"álbum": "album",
"álbuns": "album",
"audiolivro": "audiobook",
"ep": "ep",
"programa": "show",
"single": "single"
"single": "single",
"singles": "single"
},
"chan_prefix": "de",
"chan_suffix": ""
@ -4463,10 +4555,12 @@
},
"album_types": {
"album": "album",
"albume": "album",
"carte audio": "audiobook",
"ep": "ep",
"emisiune": "show",
"single": "single"
"single": "single",
"single-uri": "single"
},
"chan_prefix": "de",
"chan_suffix": ""
@ -4557,10 +4651,12 @@
"number_nd_tokens": {},
"album_types": {
"альбом": "album",
"альбомы": "album",
"аудиокнига": "audiobook",
"ep": "ep",
"аудиошоу": "show",
"сингл": "single"
"сингл": "single",
"синглы": "single"
},
"chan_prefix": "",
"chan_suffix": ""
@ -4624,10 +4720,12 @@
"නැත": 0
},
"album_types": {
"ඇල්බම": "album",
"ඇල්බමය": "album",
"ශ්‍රව්‍යපොත": "audiobook",
"දීවා": "ep",
"සංදර්ශනය": "show",
"ඒකල": "single",
"තනි": "single"
},
"chan_prefix": "",
@ -4708,10 +4806,12 @@
},
"album_types": {
"album": "album",
"albumy": "album",
"audiokniha": "audiobook",
"ep": "ep",
"relácia": "show",
"singel": "single"
"singel": "single",
"single": "single"
},
"chan_prefix": "Autori:",
"chan_suffix": ""
@ -4807,10 +4907,12 @@
},
"album_types": {
"album": "album",
"albumi": "album",
"zvočna knjiga": "audiobook",
"ep": "ep",
"oddaja": "show",
"singel": "single"
"singel": "single",
"singli": "single"
},
"chan_prefix": "kanal",
"chan_suffix": ""
@ -4882,9 +4984,11 @@
},
"album_types": {
"album": "album",
"albume": "album",
"libër me audio": "audiobook",
"ep": "ep",
"shfaq": "show",
"individuale": "single",
"single": "single"
},
"chan_prefix": "nga",
@ -4956,10 +5060,12 @@
},
"album_types": {
"албум": "album",
"албуми": "album",
"аудио-књига": "audiobook",
"ep": "ep",
"серија": "show",
"сингл": "single"
"сингл": "single",
"синглови": "single"
},
"chan_prefix": "са канала",
"chan_suffix": ""
@ -5030,10 +5136,12 @@
},
"album_types": {
"album": "album",
"albumi": "album",
"audio-knjiga": "audiobook",
"ep": "ep",
"serija": "show",
"singl": "single"
"singl": "single",
"singlovi": "single"
},
"chan_prefix": "sa kanala",
"chan_suffix": ""
@ -5111,7 +5219,8 @@
"ljudbok": "audiobook",
"ep": "ep",
"ljuddrama": "show",
"singel": "single"
"singel": "single",
"singlar": "single"
},
"chan_prefix": "från",
"chan_suffix": ""
@ -5262,11 +5371,13 @@
"இல்லை": 0
},
"album_types": {
"ஆல்பங்கள்": "album",
"ஆல்பம்": "album",
"ஆடியோ புத்தகம்": "audiobook",
"ep": "ep",
"ஆடியோ ஷோ": "show",
"சிங்கிள்": "single"
"சிங்கிள்": "single",
"சிங்கிள்ஸ்": "single"
},
"chan_prefix": "வழங்கியவர்:",
"chan_suffix": ""
@ -5344,10 +5455,12 @@
},
"album_types": {
"ఆల్బమ్": "album",
"ఆల్బమ్‌లు": "album",
"ఆడియోబుక్": "audiobook",
"ep": "ep",
"చూపించు": "show",
"సింగిల్": "single"
"సింగిల్": "single",
"సింగిల్స్": "single"
},
"chan_prefix": "",
"chan_suffix": "ఛానెల్ ద్వారా"
@ -5505,10 +5618,12 @@
},
"album_types": {
"albüm": "album",
"albümler": "album",
"sesli kitap": "audiobook",
"ep": "ep",
"program": "show",
"single": "single"
"single": "single",
"single'lar": "single"
},
"chan_prefix": "",
"chan_suffix": "tarafından"
@ -5604,10 +5719,12 @@
},
"album_types": {
"альбом": "album",
"альбоми": "album",
"аудіокнига": "audiobook",
"мініальбом": "ep",
"аудіодрама": "show",
"сингл": "single"
"сингл": "single",
"сингли": "single"
},
"chan_prefix": "власник:",
"chan_suffix": ""
@ -5684,9 +5801,11 @@
},
"album_types": {
"البم": "album",
"البمز": "album",
"آڈیو بک": "audiobook",
"ep": "ep",
"شو": "show",
"سنگلز": "single",
"واحد": "single"
},
"chan_prefix": "منجانب",
@ -5754,10 +5873,12 @@
"number_nd_tokens": {},
"album_types": {
"albom": "album",
"albomlar": "album",
"audiokitob": "audiobook",
"ep": "ep",
"shou": "show",
"singl": "single"
"singl": "single",
"singllar": "single"
},
"chan_prefix": "muallif:",
"chan_suffix": ""
@ -6030,10 +6151,12 @@
"akukho": 0
},
"album_types": {
"ama-albhamu": "album",
"i-albhamu": "album",
"i-audiobook": "audiobook",
"i-ep": "ep",
"bonisa": "show",
"ama-single": "single",
"i-single": "single"
},
"chan_prefix": "ka-",

File diff suppressed because it is too large Load diff