113 lines
2.4 KiB
TypeScript
113 lines
2.4 KiB
TypeScript
export class ReplayGain {
|
|
trackReplayGain: number;
|
|
albumReplayGain: number;
|
|
trackPeakAmplitude: number;
|
|
albumPeakAmplitude: number;
|
|
}
|
|
|
|
export class Track {
|
|
accessType: string;
|
|
adSupportedStreamReady: boolean;
|
|
album: TrackAlbum;
|
|
allowStreaming: true;
|
|
artist: Artist;
|
|
artists: Artist[];
|
|
audioModes: string[];
|
|
audioQuality: string;
|
|
bpm: number;
|
|
copyright: string;
|
|
djReady: boolean;
|
|
duration: number;
|
|
explicit: boolean;
|
|
id: number;
|
|
isrc: string;
|
|
key: string;
|
|
keyScale?: string;
|
|
mediaMetadata: MediaMetadata;
|
|
mixes: Record<string, string>;
|
|
payToStream: boolean;
|
|
peak: number;
|
|
popularity: number;
|
|
premiumStreamingOnly: boolean;
|
|
replayGain: number;
|
|
spotlighted: boolean;
|
|
stemReady: boolean;
|
|
streamStartDate: string;
|
|
title: string;
|
|
trackNumber: number;
|
|
type?: string;
|
|
upload: boolean;
|
|
url: string;
|
|
version?: string;
|
|
volumeNumber: number;
|
|
}
|
|
|
|
export class PlaybackInfo extends ReplayGain {
|
|
trackId: number;
|
|
assetPresentation: string;
|
|
audioMode: string;
|
|
audioQuality: string;
|
|
manifestMimeType: string;
|
|
manifestHash: string;
|
|
manifest: string;
|
|
bitDepth: number;
|
|
sampleRate: number;
|
|
}
|
|
|
|
export class MediaMetadata {
|
|
tags: string[];
|
|
}
|
|
|
|
export class Artist {
|
|
handle: any;
|
|
id: number;
|
|
name: string;
|
|
picture: string;
|
|
type: string;
|
|
}
|
|
|
|
export class EnrichedTrack extends Track {
|
|
declare album: TrackAlbum | EnrichedAlbum;
|
|
declare replayGain: any | ReplayGain;
|
|
}
|
|
|
|
export class TrackAlbum {
|
|
cover: string;
|
|
id: number;
|
|
title: string;
|
|
vibrantColor: string;
|
|
videoCover?: string;
|
|
}
|
|
|
|
export class Album extends TrackAlbum {
|
|
adSupportedStreamReady: boolean;
|
|
allowStreaming: boolean;
|
|
artist: Artist;
|
|
artists: Artist[];
|
|
audioModes: string[];
|
|
audioQuality: string;
|
|
copyright: string;
|
|
djReady: boolean;
|
|
duration: number;
|
|
explicit: boolean;
|
|
mediaMetadata: MediaMetadata;
|
|
numberOfTracks: number;
|
|
numberOfVideos: number;
|
|
numberOfVolumes: number;
|
|
popularity: number;
|
|
premiumStreamingOnly: boolean;
|
|
releaseDate?: string;
|
|
stemReady: boolean;
|
|
streamReady: boolean;
|
|
streamStartDate: string;
|
|
type: string;
|
|
upc: string;
|
|
upload: boolean;
|
|
url: string;
|
|
version?: string;
|
|
}
|
|
|
|
export class EnrichedAlbum extends Album {
|
|
totalDiscs?: number;
|
|
numberOfTracksOnDisc?: number;
|
|
}
|