97 lines
1.7 KiB
TypeScript
97 lines
1.7 KiB
TypeScript
export interface SpotifyArtist {
|
|
external_urls: {
|
|
spotify: string;
|
|
};
|
|
href: string;
|
|
id: string;
|
|
name: string;
|
|
type: string;
|
|
uri: string;
|
|
}
|
|
|
|
export interface SpotifyAlbum {
|
|
album_type: string;
|
|
total_tracks: number;
|
|
available_markets: string[];
|
|
external_urls: {
|
|
spotify: string;
|
|
};
|
|
href: string;
|
|
id: string;
|
|
images: Array<{
|
|
url: string;
|
|
height: number;
|
|
width: number;
|
|
}>;
|
|
name: string;
|
|
release_date: string;
|
|
release_date_precision: string;
|
|
type: string;
|
|
uri: string;
|
|
artists: SpotifyArtist[];
|
|
is_playable?: boolean;
|
|
}
|
|
|
|
export interface SpotifyTrack {
|
|
album: SpotifyAlbum;
|
|
artists: SpotifyArtist[];
|
|
available_markets: string[];
|
|
disc_number: number;
|
|
duration_ms: number;
|
|
explicit: boolean;
|
|
external_ids: {
|
|
isrc?: string;
|
|
};
|
|
external_urls: {
|
|
spotify: string;
|
|
};
|
|
href: string;
|
|
id: string;
|
|
is_playable?: boolean;
|
|
name: string;
|
|
popularity: number;
|
|
preview_url: string | null;
|
|
track_number: number;
|
|
type: string;
|
|
uri: string;
|
|
is_local: boolean;
|
|
}
|
|
|
|
export interface SpotifySearchResponse {
|
|
tracks: {
|
|
href: string;
|
|
limit: number;
|
|
next: string | null;
|
|
offset: number;
|
|
previous: string | null;
|
|
total: number;
|
|
items: SpotifyTrack[];
|
|
};
|
|
}
|
|
|
|
export interface SearchResultTrack {
|
|
id: string;
|
|
name: string;
|
|
artists: Array<{
|
|
id: string;
|
|
name: string;
|
|
spotify_url: string;
|
|
}>;
|
|
album: {
|
|
id: string;
|
|
name: string;
|
|
release_date: string;
|
|
images: Array<{
|
|
url: string;
|
|
height: number;
|
|
width: number;
|
|
}>;
|
|
spotify_url: string;
|
|
};
|
|
duration_ms: number;
|
|
popularity: number;
|
|
preview_url: string | null;
|
|
spotify_url: string;
|
|
explicit: boolean;
|
|
available_markets: string[];
|
|
}
|