Skip to content

Instantly share code, notes, and snippets.

@enjikaka
Created December 8, 2021 11:56
Show Gist options
  • Save enjikaka/55db678a4a8c432e86aebc63134b5a96 to your computer and use it in GitHub Desktop.
Save enjikaka/55db678a4a8c432e86aebc63134b5a96 to your computer and use it in GitHub Desktop.
export interface Root {
selfLink: any
id: string
title: string
rows: Row[]
}
export interface Row {
modules: Module[]
}
export interface Module {
id: string
type: string
width: number
title: string
description: string
preTitle?: string
showMore?: ShowMore
supportsPaging: boolean
quickPlay: boolean
layout: any
playlistStyle?: string
highlights?: Highlight[]
scroll?: string
pagedList?: PagedList
listFormat?: string
showTableHeaders?: boolean
header?: Header
}
export interface ShowMore {
title: string
apiPath: string
}
export interface Highlight {
title: string
item: Item
}
export interface Item {
type: string
item: Item2
}
export interface Item2 {
id: any
title: string
subTitle?: string
graphic?: Graphic
images?: Images
sharingImages: any
mixType?: string
contentBehavior?: string
cover?: string
vibrantColor?: string
videoCover?: string
url?: string
artists?: Artist[]
explicit?: boolean
streamReady?: boolean
streamStartDate?: string
allowStreaming?: boolean
numberOfTracks?: number
numberOfVideos?: number
audioQuality?: string
audioModes?: string[]
releaseDate?: string
duration?: number
uuid?: string
type?: string
image?: string
squareImage?: string
lastItemAddedAt?: string
promotedArtists?: PromotedArtist[]
creators?: any[]
description?: string
version: any
editable?: boolean
trackNumber?: number
volumeNumber?: number
mixes?: Mixes
album?: Album
popularity?: number
replayGain?: number
}
export interface Graphic {
type: string
text: string
images: Image[]
}
export interface Image {
id: string
vibrantColor: string
type: string
}
export interface Images {
SMALL: Small
MEDIUM: Medium
LARGE: Large
}
export interface Small {
width: number
height: number
url: string
}
export interface Medium {
width: number
height: number
url: string
}
export interface Large {
width: number
height: number
url: string
}
export interface Artist {
picture: string
name: string
id: number
type: string
}
export interface PromotedArtist {
picture: any
name: string
id: number
type: string
}
export interface Mixes {
MASTER_TRACK_MIX: string
TRACK_MIX: string
}
export interface Album {
id: number
title: string
cover: string
vibrantColor: string
videoCover: any
url: string
releaseDate: string
}
export interface PagedList {
limit: number
offset: number
totalNumberOfItems: number
items: Item3[]
dataApiPath: string
}
export interface Item3 {
id: any
title?: string
cover?: string
vibrantColor?: string
videoCover?: string
url?: string
artists?: Artist2[]
explicit?: boolean
streamReady?: boolean
streamStartDate?: string
allowStreaming?: boolean
numberOfTracks?: number
numberOfVideos?: number
audioQuality?: string
audioModes?: string[]
releaseDate?: string
duration?: number
subTitle?: string
graphic?: Graphic2
images?: Images2
sharingImages?: SharingImages
mixType?: string
contentBehavior?: string
uuid?: string
type?: string
image?: string
squareImage?: string
lastItemAddedAt?: string
promotedArtists?: PromotedArtist2[]
creators?: Creator[]
description?: string
item?: Item4
version: any
editable?: boolean
trackNumber?: number
volumeNumber?: number
mixes?: Mixes2
album?: Album2
popularity?: number
replayGain?: number
}
export interface Artist2 {
picture?: string
name: string
id: number
type: string
}
export interface Graphic2 {
type: string
text: string
images: Image2[]
}
export interface Image2 {
id: string
vibrantColor: string
type: string
}
export interface Images2 {
SMALL: Small2
MEDIUM: Medium2
LARGE: Large2
}
export interface Small2 {
width: number
height: number
url: string
}
export interface Medium2 {
width: number
height: number
url: string
}
export interface Large2 {
width: number
height: number
url: string
}
export interface SharingImages {
PORTRAIT: Portrait
LANDSCAPE: Landscape
}
export interface Portrait {
width: number
height: number
url: string
}
export interface Landscape {
width: number
height: number
url: string
}
export interface PromotedArtist2 {
picture: any
name: string
id: number
type: string
}
export interface Creator {
id: number
name: string
}
export interface Item4 {
id: any
title: string
subTitle?: string
graphic?: Graphic3
images?: Images3
sharingImages: any
mixType?: string
contentBehavior?: string
uuid?: string
type?: string
url?: string
image?: string
squareImage?: string
duration?: number
numberOfTracks?: number
numberOfVideos?: number
lastItemAddedAt?: string
promotedArtists?: PromotedArtist3[]
creators?: Creator2[]
description?: string
cover?: string
vibrantColor?: string
videoCover?: string
artists?: Artist3[]
explicit?: boolean
streamReady?: boolean
streamStartDate?: string
allowStreaming?: boolean
audioQuality?: string
audioModes?: string[]
releaseDate?: string
}
export interface Graphic3 {
type: string
text: string
images: Image3[]
}
export interface Image3 {
id: string
vibrantColor: string
type: string
}
export interface Images3 {
SMALL: Small3
MEDIUM: Medium3
LARGE: Large3
}
export interface Small3 {
width: number
height: number
url: string
}
export interface Medium3 {
width: number
height: number
url: string
}
export interface Large3 {
width: number
height: number
url: string
}
export interface PromotedArtist3 {
picture: any
name: string
id: number
type: string
}
export interface Creator2 {
id: number
name?: string
}
export interface Artist3 {
picture?: string
name: string
id: number
type: string
}
export interface Mixes2 {
MASTER_TRACK_MIX?: string
TRACK_MIX?: string
}
export interface Album2 {
id: number
title: string
cover: string
vibrantColor: string
videoCover: any
url: string
releaseDate: string
}
export interface Header {
type: string
item: Item5
}
export interface Item5 {
id: number
title: string
cover: string
vibrantColor: string
videoCover: any
url: string
artists: Artist4[]
explicit: boolean
streamReady: boolean
streamStartDate: string
allowStreaming: boolean
numberOfTracks: number
numberOfVideos: number
audioQuality: string
audioModes: string[]
releaseDate: string
duration: number
}
export interface Artist4 {
picture?: string
name: string
id: number
type: string
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment